Size: a a a

Compiler Development

2020 May 04

E

Eugene in Compiler Development
Victor Miasnikov
Есть "кузен Оберонов" - Modula-3.
Ещё не проверял, но там должны были уцелеть.

( там многое из Modula-2 уцелело)
это такой же кузен, как паскаль, к оберону примерно такое же отношение имеет
источник

E

Eugene in Compiler Development
Модула-3 ближе к аде, чем к оберону...
источник

VM

Victor Miasnikov in Compiler Development
Eugene
Модула-3 ближе к аде, чем к оберону...
По циклу FOR - 100% да.

--

В одной из статей 90х есть таблица. M3 тогда был мощнее и TP , и C++ того времени.

Впрочем, и в недавней ( относительно) статье Boehm о RAII  с Modula-3 сравниваются конкуренты.

--

Anti-oftopic:

 В экосистеме Modula-3 есть Yacc /Lex ( Bison и Flex , точнее), Coco/R
источник

VS

Vasily Shapenko in Compiler Development
Ну с 90-х годов внезапно прошло 25+ лет, многое поменялось
источник

V

Vlad in Compiler Development
Vasily Shapenko
Ну с 90-х годов внезапно прошло 25+ лет, многое поменялось
Да, иметь в 90-е статически типизированный, компилируемый язык с GC - это вполне себе осязаемое конкурентное преимущество. Особенно если есть возможность сделать под себя инфраструктуру и допилить компилятор.
источник

PS

Peter Sovietov in Compiler Development
Vlad
Да, иметь в 90-е статически типизированный, компилируемый язык с GC - это вполне себе осязаемое конкурентное преимущество. Особенно если есть возможность сделать под себя инфраструктуру и допилить компилятор.
Кстати говоря, в 90-е для Оберона еще и писали передовые оптимизирующие компиляторы. Академисты-компиляторщики добились очень впечатляющих успехов в области SSA-компиляции и в качестве модельного языка ими использовался именно Оберон. Но, к сожалению, основная масса поздних поклонников-тусовщиков восприняла только идею, что можно самому написать простенький однопроходный компилятор "на коленке" и для этого никаких особенных компиляторных премудростей знать не нужно.
источник

VM

Victor Miasnikov in Compiler Development
Vasily Shapenko
Ну с 90-х годов внезапно прошло 25+ лет, многое поменялось
Увы, меньше, чем хотелось бы...
И не факт, что абсолютно все изменения были к лучшему.

--

На деле, Modula-3 экосистема, "как артифакт", стала лучше.

Т.е. всевозможные мелочи - "дожали". В теоретическом плане ЯП поменялся мало. На практике заметно улучшился.

 И в 90е годы 6 мегабайт ОЗУ в ЭВМ были немыслимой роскошью.
Теперь - "с этим веселее".

Итого: почему бы "не устроить ренесанс"?
источник

AK

Andrei Kurosh in Compiler Development
Vlad
Да, иметь в 90-е статически типизированный, компилируемый язык с GC - это вполне себе осязаемое конкурентное преимущество. Особенно если есть возможность сделать под себя инфраструктуру и допилить компилятор.
Любопытно, что как раз в девяностые был бум популярности динамически типизированных языков...
источник

МБ

Михаил Бахтерев... in Compiler Development
Igor Sam
Gc там отключают, насколько слышал. Вообще. Т.е мусор не собирается в принципе. И это не работает для систем жесткого реального времени
В системах жёсткого реального времени избегают динамического выделения памяти для задач реального времени, потому что запрос памяти - недетерминированный по времени побочный эффект. Максимум, что делают - это арены. Опять же, это всё ортогонально способу аллокации и чистки памяти.
источник

M

MaxGraey in Compiler Development
Фронтенд фреймворк для Хаскеля (точнее для Asterius компилятора)
https://github.com/meeshkan/plzwrk
источник

МБ

Михаил Бахтерев... in Compiler Development
Сергей Лапынин
А есть умники, которые управлять АЭС желают из джавы? Или может спутником?
NASA: lisp и javascript летают на спутниках. Об АЭС не знаю.
источник

M

MaxGraey in Compiler Development
Вообще в космической индустрии виртуальные машины и интерпретаторы в почете и это логично, ведь пока спутник на орбите или пока марсоход летит до марса можно его еще 10050 раз удаленно пропатчить если вдуг в процессе вылезет какая то бага =) Плюс ели упадет VM то можно легко ее перезаппустить с сохранением состояния
источник

AN

Alexander Nasonov in Compiler Development
Михаил Бахтерев
В системах жёсткого реального времени избегают динамического выделения памяти для задач реального времени, потому что запрос памяти - недетерминированный по времени побочный эффект. Максимум, что делают - это арены. Опять же, это всё ортогонально способу аллокации и чистки памяти.
Two-Level Segregated Fit memory allocator вроде без циклов вообще и очень простой
источник

AN

Alexander Nasonov in Compiler Development
источник

M

MaxGraey in Compiler Development
Alexander Nasonov
Two-Level Segregated Fit memory allocator вроде без циклов вообще и очень простой
Да, он как раз для real-time систем был создан и имеет O(1) сложность на все операции. Кстати, тспользуем в AssemblyScript его адаптированную версию
источник

СЛ

Сергей Лапынин... in Compiler Development
MaxGraey
Вообще в космической индустрии виртуальные машины и интерпретаторы в почете и это логично, ведь пока спутник на орбите или пока марсоход летит до марса можно его еще 10050 раз удаленно пропатчить если вдуг в процессе вылезет какая то бага =) Плюс ели упадет VM то можно легко ее перезаппустить с сохранением состояния
Можно и на более низком уровне получить снепшоты, состояния и патчи.
источник

M

MaxGraey in Compiler Development
Сергей Лапынин
Можно и на более низком уровне получить снепшоты, состояния и патчи.
Можно, дампить / журналировать состояния тоже можно. Вопрос в том, что перезапустить VM намного быстрее и надежнее чем всю операционную систему при краше / горячем патчинге)
источник

СЛ

Сергей Лапынин... in Compiler Development
А ничего, что виртуальная машина будет гораздо сложнее в этом случае и шансов ее краха больше? И как вы тогда это исправите?
источник

M

MaxGraey in Compiler Development
Сергей Лапынин
А ничего, что виртуальная машина будет гораздо сложнее в этом случае и шансов ее краха больше? И как вы тогда это исправите?
Что исправлю? Сложность?
источник

СЛ

Сергей Лапынин... in Compiler Development
баг в виртуальной машине
источник