Size: a a a

Compiler Development

2020 May 02

АЕ

Артур Ефимов... in Compiler Development
Ошибки, как считается, есть в любой программе. «Программа без ошибок — это такой гипотетический объект».
Дело состоит в том, чтобы ошибок было как можно меньше. Если выбран язык Си, то этого добиться очень сложно. И теоретически это выведено, и доказано на практике.

Оберон — прекрасный в этом отношении язык. При его создании Н. Виртом ставилась цель сделать язык «как можно проще, но не проще того». То есть оставить в нём действительно необходимые элементы, и убрать те, которые, как говорится, «было бы неплохо иметь». Поэтому Оберон претендует на некоторую универсальность — он максимально простой, но при этом обладает всей полнотой императивного языка программирования, позволяет использовать так называемые методы ООП.
источник

А

Алексей in Compiler Development
Артур Ефимов
Ошибки, как считается, есть в любой программе. «Программа без ошибок — это такой гипотетический объект».
Дело состоит в том, чтобы ошибок было как можно меньше. Если выбран язык Си, то этого добиться очень сложно. И теоретически это выведено, и доказано на практике.

Оберон — прекрасный в этом отношении язык. При его создании Н. Виртом ставилась цель сделать язык «как можно проще, но не проще того». То есть оставить в нём действительно необходимые элементы, и убрать те, которые, как говорится, «было бы неплохо иметь». Поэтому Оберон претендует на некоторую универсальность — он максимально простой, но при этом обладает всей полнотой императивного языка программирования, позволяет использовать так называемые методы ООП.
Ну простота и ООП далеко не самые передовые методы борьбы с ошибками.
источник

АЕ

Артур Ефимов... in Compiler Development
Это основа
источник

А

Алексей in Compiler Development
нет
источник

АЕ

Артур Ефимов... in Compiler Development
Есть ещё испытание и верификация.
источник

А

Алексей in Compiler Development
я не большой фанат, но для подобных задач как раз подошло бы ФП с завтипами и формальной верификацией
источник

AN

Alexander Nasonov in Compiler Development
CompCert вроде уже считается готовым для продакшена. Он не подойдёт? Там правда бяка с undefined behaviour вроде, если оно есть в программе, то все формальные методы идут лесом.
источник

АЕ

Артур Ефимов... in Compiler Development
Пятиминутка пропаганды Оберона закончена. Всем спасибо :)
источник

M

MaxGraey in Compiler Development
Кстати а о каком Обероне идет речь? Об Oberon-07 (которому всего то 13 лет а то и меньше). Или Oberon-2?
источник

CC

Chris Calvin in Compiler Development
Alex
Нужны конкретные или в целом? Просто так то про планирование следует читать, потому что именно на кодогенерации уже не так много места для оптимизаций. Или всё-таки машиннозависимые до кодогенерации?
В целом. Overview какой-то. Ведь кажется что со времен книги дракона там наверняка что-то добавилось, хотелось бы актуализировать знания по этой теме
источник

АЕ

Артур Ефимов... in Compiler Development
MaxGraey
Кстати а о каком Обероне идет речь? Об Oberon-07 (которому всего то 13 лет а то и меньше). Или Oberon-2?
Там разница небольшая. Оберон-07 в 2016 году последний раз менялся.
Недавно придумали Revised Oberon-2 (2019 г.)
ООП возможен во всех, только форма разная.
источник

A

Alex in Compiler Development
Chris Calvin
В целом. Overview какой-то. Ведь кажется что со времен книги дракона там наверняка что-то добавилось, хотелось бы актуализировать знания по этой теме
Если ставить вопрос "со времён книги дракона", то сначала идти в Мучника (Advanced compiler design and implemetnation), потом надо понимать в какую сторону оптимизаций смотреть (там больше про общие оптимизации), потом можно смотреть в "Optimizing Compilers for Modern Architectures" от Аллена и Кеннеди. Для актуализации более чем достаточно
источник

CC

Chris Calvin in Compiler Development
Alex
Если ставить вопрос "со времён книги дракона", то сначала идти в Мучника (Advanced compiler design and implemetnation), потом надо понимать в какую сторону оптимизаций смотреть (там больше про общие оптимизации), потом можно смотреть в "Optimizing Compilers for Modern Architectures" от Аллена и Кеннеди. Для актуализации более чем достаточно
Понял, благодарю, книги сохранил
источник

V

Vlad in Compiler Development
Артур Ефимов
Там разница небольшая. Оберон-07 в 2016 году последний раз менялся.
Недавно придумали Revised Oberon-2 (2019 г.)
ООП возможен во всех, только форма разная.
В O7 нет банальных виртуальных методов. Так что говорить о нормальной поддержке ООП не приходится.
источник

АЕ

Артур Ефимов... in Compiler Development
Приходится :)
У Вирта всё расписано
источник

АЕ

Артур Ефимов... in Compiler Development
Не стоит путать методологию ООП с «синтаксическим сахаром»
источник

АЕ

Артур Ефимов... in Compiler Development
Не нравится — можно взять Revised Oberon-2, там всё есть в обычном стиле
источник

АЕ

Артур Ефимов... in Compiler Development
ну или классический Оберон-2
источник

AK

Andrei Kurosh in Compiler Development
Алексей
я не большой фанат, но для подобных задач как раз подошло бы ФП с завтипами и формальной верификацией
уложить основные столпы ФП (ленивость, неизменяемость) вместе со строгими ограничениями по памяти\времени исполнения должно быть крайне сложно
источник

АЕ

Артур Ефимов... in Compiler Development
Только на Ростовской АЭС это всё не нужно
источник