LINUX.ORG.RU

Заместо Си


0

1

В этом треде прошу перечислить языки которые пытаются или пытались быть заменителем Си. (Например Cyclone)

Ручное управление памятью обязательно.

Паскаль и потомки

unC0Rr ★★★★★
()

Почему ещё никто не назвал Come'on LISP?

CARS ★★★★
()
Ответ на: комментарий от staseg

> C++?

Это тот же Си, только приправленный сверху кучей всего лишнего.

vladimir-vg ★★
() автор топика
Ответ на: комментарий от papochka

> python/perl?

Ручное управление памятью обязательно.

vladimir-vg ★★
() автор топика

Ada!

Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages. It has strong built-in language support for explicit concurrency, offering tasks, synchronous message passing (via guarded task entries), protected objects (a monitor-like construct with additional guards as in conditional critical regions) and nondeterminism (via select statements).

anonymous
()
Ответ на: комментарий от s0L

> а можно поинтересоваться для чего вам заменитель Си? =)

Просто хочу увидеть как должен выглядить его более безопасный вариант. Интересно что можно было сделать лучше с точки зрения дизайна языка.

vladimir-vg ★★
() автор топика
Ответ на: комментарий от vladimir-vg

>Просто хочу увидеть как должен выглядить его более безопасный вариант. безопасность и ручное управление памятью как то совсем бредово звучит, если отталкиваться именно от Си

s0L
()
Ответ на: комментарий от s0L

> > Просто хочу увидеть как должен выглядить его более безопасный вариант.

безопасность и ручное управление памятью как то совсем бредово звучит, если отталкиваться именно от Си

Окей, переформулирую, мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора.

Поэтому ручная работа с памятью необходима.

vladimir-vg ★★
() автор топика
Ответ на: комментарий от vladimir-vg

>мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора. хм, если сама цель - написать свой сборщик, то может...Mono? шарп безопасен, а сборщик можно в виртуальной машине переписать по своему

s0L
()
Ответ на: комментарий от vladimir-vg

Objective C v2.0 ! не думаю что вам помешают написать свой сборщик мусора в нем ;o)

hizel ★★★★★
()

Assembler :)

Ну а если серьёзно, то с такими запросами ничего лучше С не найдёте наверное.

ur
()

Наследники Си разделились по трем направлениям: Динамические возможности - Objective C Параллельные возможности - Alef, Go ООП-возможности - С++, D (ну и многие фичи C#, не связанные со сборкой мусора, тоже хороши и вполне могли бы быть в низкоуровневом языке типа Си) Но в одном языке все это до сих пор не собрано.

x-code
()
Ответ на: комментарий от vladimir-vg

мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора.

Обращаю на это внимание. Мне кажется - это бред.

bk_ ★★
()
Ответ на: комментарий от ur

У Assembler компиляторов(fasm, masm) отличная поддержка макросов! Если даже if, while. struct и т.д. Почему нет?

ur
()
Ответ на: комментарий от vladimir-vg

мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора

да хоть на Haskell, было бы желание

jtootf ★★★★★
()
Ответ на: комментарий от vladimir-vg

черт, у меня инвертное восприятие какое-то... я почему то прочел что не обязательно... тупак 6)

Jetty ★★★★★
()
Ответ на: комментарий от jtootf

> да хоть на Haskell, было бы желание

Не понимаю.

Сборщик мусора это такая хреновина, которая запрашивает кусок побольше у ОС и выдаёт её порциями для нужд программы, следит за использованием, переиспользует ставшие ненужными участки.

Всё правильно?

Если да, то как это будет выглядеть на Haskell?

vladimir-vg ★★
() автор топика
Ответ на: комментарий от bk_

>Обращаю на это внимание. Мне кажется - это бред.

Вам не кажется. Просто большинству разработчикам под С кажется, что сборщики мусора от скуки пишутся.

А по сабжу - да, асм, что еще надо?

mopsene ★★★
()

Помимо вышеперечисленных, Forth и его производные.

Из принципа язык на котором можно написать GC для него-же - Внезапно smalltalk - в теории, машина(вместе с GC) под новую архитектуру может быть сделана на самом smalltalk`е. Аналогично lisp и иже с ним. И так далее..

MKuznetsov ★★★★★
()
Ответ на: комментарий от vladimir-vg

Если да, то как это будет выглядеть на Haskell?

точно так же. посмотри на House, например,- у них менеджер кучи есть

jtootf ★★★★★
()

PreScheme посмотри, на нем написан GC для Scheme48.

Vadim_Z
()
Ответ на: комментарий от MKuznetsov

Плюсую Forth, однако он не С-подобный. Ну и Ада, конечно же.

buddhist ★★★★★
()

Язык програмирования ада.

минус только один - будет медленее работать. Для создания gc почва уже есть, имхо.

mi_estas
()

я бы все таки выделил тут прежде всего D и разумеется Vala, причем Vala не пытается заменить Си, а скорее обвкусняшить его, только более современным способом нежели C++...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от vladimir-vg

Окей, переформулирую, мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора. Поэтому ручная работа с памятью необходима.

мне кажется все таки Vala тут подходит, там если не ошибаюсь можно и вручную памятью рулить или автоматом, низкоуровневей не бывает

I-Love-Microsoft ★★★★★
()

а смысл? Или хочется из принципа написать GC именно не на C? Из предложенного имеет смысл использовать разве что Forth и Ada. Ну и вместо ассемблера я бы взял LLVM, но всё таки это уже попахивает мазохизмом.

anonymous
()
Ответ на: комментарий от vladimir-vg

> а можно поинтересоваться для чего вам заменитель Си? =)

Просто хочу увидеть как должен выглядить его более безопасный вариант.

купи коробку с дистрибутивом и поверх натяни презеватив

//вот людям нефиг делать по жизни бывает

shty ★★★★★
()
Ответ на: комментарий от vladimir-vg

ничего. C почти идеален в своей нише и более безопасный вариант был бы ущербен. Не хватает разве что ручного управления элайнментом, но это вроде как обещают в следующий стандарт добавить.

anonymous
()
Ответ на: комментарий от vladimir-vg

>Окей, переформулирую, мне нужен язык досточно низкоуровневый, чтобы можно было написать сборщик мусора.

ассемблер

Zhbert ★★★★★
()

Запомни, школота, ни один язык не может сравниться с Си по части низкоуровневости и портируемости.

gandjubas
()
#include <stdlib.h>
int main() {
    // простой и понятный, без лишнего неинформалитвоного кала, ога
    int* a;
    a = (int*)malloc(sizeof(int) * 100);
    free((void*)a);
    // о б-же, как тут всё сложно, это же плюсы
    int* b;
    b = new int[100];
    delete[] b;
}
anonymous
()
Ответ на: комментарий от anonymous

> int* a;

a = (int*)malloc(sizeof(int) * 100);

free((void*)a);

Это какой язык? В Си++ глупо использовать malloc и free, а в Си не нужны преобразования типов.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.