Size: a a a

Compiler Development

2020 May 04

M

MaxGraey in Compiler Development
Артур Ефимов
Ни на какой Яве такое не напишешь. Ява не гарантирует, что она не отключится в какой-то момент для сборки мусора или ещё чего-то. Язык и компилятор таких языков настолько сложен, что его нельзя назвать обозримыми. А закрытость кода исключает «прозрачность сверху донизу» — одно из требований к такому ПО.

На Ростовской АЭС требования были ещё жёстче: программа должна быть не просто реального времени, но и детерминирована. То есть для каждого момента времени надо, чтобы можно было заранее определить, что будет делать программа (на какой фазе находиться) в этот момент.

«Если у программиста не кривые руки, то можно и на Java такое писать...»
- - - -
Можно и яму ложкой копать, но зачем? Вероятность успешно выполнить задачу снижается прости до нуля.
Так вы (или докладчик?) же говорили, что отклоючили сборку мусора в обероне. В Java это давно практикуется и называется Epsilon GC =) Так что все тоже самое
источник

АЕ

Артур Ефимов... in Compiler Development
Сергей Лапынин
Писал, и делал даже компилятор асма для виртуального проца с виртуальной памятью - это была модель в виде курсовой работы.
Я тоже «писал». Вопрос в другом: почему не пишете?
источник

VM

Victor Miasnikov in Compiler Development
"Господа, смиритесь": можно на многом, было написано на Обероне.
источник

СЛ

Сергей Лапынин... in Compiler Development
Артур Ефимов
Я тоже «писал». Вопрос в другом: почему не пишете?
Зачем? Сканер исходных кодов писать на асме? Или может по работе платформу обучения на микросервисах на асме мучить? Может еще и СУБД самому написать тогда?
источник

СЛ

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

АЕ

Артур Ефимов... in Compiler Development
MaxGraey
Так вы (или докладчик?) же говорили, что отклоючили сборку мусора в обероне. В Java это давно практикуется и называется Epsilon GC =) Так что все тоже самое
В программах, используемых АЭС, насколько я понимаю, лишнего кода быть не должно. Из ОС А2, написанной на Обероне, любую часть можно вырезать (убрать кусок кода), затем полностью проанализировать то, что получилось.

Для Явы это неподъёмно, потому что даже описание языка Ява занимает пару толстых томов. Для Оберона весь компилятор занимает порядка 3500 строк Виртовского кода на Обероне. Описание языка — 17 страниц.
источник

СЛ

Сергей Лапынин... in Compiler Development
Сделать простое, которое будет универсальным - нереально.
Вы пишите специализированные вещи, но делать это желаете на универсальном ЯП.
источник

АЕ

Артур Ефимов... in Compiler Development
Есть такой язык. Оберон.
источник

M

MaxGraey in Compiler Development
Victor Miasnikov
"Господа, смиритесь": можно на многом, было написано на Обероне.
Да никто же не против) Просто я не вижу никакой исключительности в Обероне.
источник

СЛ

Сергей Лапынин... in Compiler Development
Артур Ефимов
Есть такой язык. Оберон.
Оберон - это обычный дельфи. +- сахар
источник

СЛ

Сергей Лапынин... in Compiler Development
И вообще от вас отдает холиварщиком "А лучше Б"
источник

АЕ

Артур Ефимов... in Compiler Development
MaxGraey
Да никто же не против) Просто я не вижу никакой исключительности в Обероне.
Это потому что вы пытаетесь всю отрицаемую вами исключительность свести к количественным факторам.

Как бы такой ход рассуждения получается крайне недиалектичным, отчего неверным: «Подумаешь, та 700 страниц, а тут 17. Подумаешь, тут 3500 строк кода, а там 100000. Это только разница в количестве».
источник

VM

Victor Miasnikov in Compiler Development
Сергей Лапынин
Оберон - это обычный дельфи. +- сахар
Нет: кузен.

И изменения радикальнее. Т.е. не с. сахар точно.
источник

СЛ

Сергей Лапынин... in Compiler Development
Victor Miasnikov
Нет: кузен.

И изменения радикальнее. Т.е. не с. сахар точно.
Ок, схожи так же как С и С++.
источник

СЛ

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

АЕ

Артур Ефимов... in Compiler Development
И ещё есть «динамическая природа Явы», про которую плачут разработчики компиляторов. Оберон — язык, компилируемый напрямую в машинный код любого процессора за один проход. А если сравнивать с Си и Си++, это язык, позволяющий делать множество точных статических и динамических проверок на вылеты за рамки массива и прочее. (Исследование показало, что около 90% ошибок в программах на Си вызваны вылетом за рамки массива.)
источник

VM

Victor Miasnikov in Compiler Development
Сергей Лапынин
И вообще от вас отдает холиварщиком "А лучше Б"
Лично я просто с полгода назад изучал вопрос.

И раз это вызывает интерес...
источник

E

Eugene in Compiler Development
Артур Ефимов
В программах, используемых АЭС, насколько я понимаю, лишнего кода быть не должно. Из ОС А2, написанной на Обероне, любую часть можно вырезать (убрать кусок кода), затем полностью проанализировать то, что получилось.

Для Явы это неподъёмно, потому что даже описание языка Ява занимает пару толстых томов. Для Оберона весь компилятор занимает порядка 3500 строк Виртовского кода на Обероне. Описание языка — 17 страниц.
вот только А2 написана не на виртовском обероне, а на языке, для которого даже не существует полного актуального описания в одном документе.
источник

СЛ

Сергей Лапынин... in Compiler Development
Артур Ефимов
И ещё есть «динамическая природа Явы», про которую плачут разработчики компиляторов. Оберон — язык, компилируемый напрямую в машинный код любого процессора за один проход. А если сравнивать с Си и Си++, это язык, позволяющий делать множество точных статических и динамических проверок на вылеты за рамки массива и прочее. (Исследование показало, что около 90% ошибок в программах на Си вызваны вылетом за рамки массива.)
Если вам нужна именно компиляция в машинный код и дальше вы работаете только на этой машине.
Ява про кроссплатформенность
источник

АЕ

Артур Ефимов... in Compiler Development
Сергей Лапынин
Оберон - это обычный дельфи. +- сахар
От Дельфи Оберон сильно отличается.
Как динозавр от голубя.
В Обероне есть расширяемые записи, которые играют роль «классов» (в других языках).
источник