Size: a a a

Compiler Development

2020 May 04

AT

Alexander Tchitchigi... in Compiler Development
Vladimir Kazanov
а мне нравилось... Кто теперь будет так ярко обращать внимание на простейшие правила ("never break userspace", "Nividia, fuck you", etc)?
"...for the times they are a-changing..." 😔
источник

A

Antonio in Compiler Development
Vladimir Kazanov
а мне нравилось... Кто теперь будет так ярко обращать внимание на простейшие правила ("never break userspace", "Nividia, fuck you", etc)?
бота напишут
источник

МБ

Михаил Бахтерев... in Compiler Development
MaxGraey
Питону почти что 30 лет. Ничего себе современный ЯП) Ну и подобные неоднозначности присущи в основном динамически типизированным языкам скорее. Возраст тут точно не причем.
Так и динамическая дипизация тут ни при чём. В приведённых примерах проблему вызывает изменяемость и передача параметров по ссылке.
источник

МБ

Михаил Бахтерев... in Compiler Development
Артур Ефимов
Для этого берётся несколько компиляторов (на Ростовской АЭС так и делают) и компилируют под несколько ОС, и программа должна везде работать одинаково.
А компилятор Оберона хотя бы можно в теории написать без ошибок, так что почему бы и нет.
Что мешает то же самое делать с произвольным языком X? Напомню, кстати, realtime-приложения - это не те, которые вот прям за наносекунду всё обсчитывают, а те, для которых гарантированы временные ограничения на работу участков кода. Если у программиста не кривые руки, то можно и на Java такое писать, если кривые, то и на Си он ничего не напишет. Множество раз видел, как люди устраивали инверсии приоритетов, как алгоритмы писали кривые и т.д. и т.п. и считали при этом, что Си/Си++ им автоматически даст какой-то realtime.
источник

МБ

Михаил Бахтерев... in Compiler Development
Алексей
я не большой фанат, но для подобных задач как раз подошло бы ФП с завтипами и формальной верификацией
На текущем уровне развития не подошёл бы. Проблема представления аппаратных чисел актуальна. И основные проблемы в такого рода софте - это какие-нибудь косяки с рациональной арифметикой. То есть, мы бы получлили семантический шум в коде, где стоит полно rewrite-ов и явных передач доказательств, и это усложнило бы вычитку кода и поиск не структурных, а арифметических ошибок. Как с этим бороться сейчас - никто мне ответить не может, к кому бы я ни приставал.
источник

ИЧ

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

МБ

Михаил Бахтерев... in Compiler Development
MaxGraey
При том что он весьма нишевой и стало быть информации мало, комьюнити небольшое, библиотек не много. Взять тот же непопулярный Dlang. Так там хотя бы есть нормальная интеграция со всеми современными БД, фреймворками и вообще более не менее нормальный FFI
А зачем это для управления АЭС? В ответственных задачах, обычно, всё делают inhouse и специально под конкретный проект. Если БД какие-то и есть или интеграция с какими-то библиотеками, то очень и очень далеко от ядра системы. Поэтому, можно и Oberon взять. Не самый плохой выбор, действительно.
источник

AN

Alexander Nasonov in Compiler Development
Vladimir Kazanov
а мне нравилось... Кто теперь будет так ярко обращать внимание на простейшие правила ("never break userspace", "Nividia, fuck you", etc)?
А мне больше стиль Theo de Raadt нравился. И да, он тоже уже не торт.
источник

МБ

Михаил Бахтерев... in Compiler Development
Илья Чистяков
любопытно посмотреть на подобный код
Так любые более или менее практичные примеры на Idris.
источник

AT

Alexander Tchitchigi... in Compiler Development
Михаил Бахтерев
На текущем уровне развития не подошёл бы. Проблема представления аппаратных чисел актуальна. И основные проблемы в такого рода софте - это какие-нибудь косяки с рациональной арифметикой. То есть, мы бы получлили семантический шум в коде, где стоит полно rewrite-ов и явных передач доказательств, и это усложнило бы вычитку кода и поиск не структурных, а арифметических ошибок. Как с этим бороться сейчас - никто мне ответить не может, к кому бы я ни приставал.
Для рил-тайма и прочих вычислительных задач же, наверное, нужны не действительные числа, а формализация машинных IEEE float'ов? В каком-нибудь CompCert должно быть? Но я не смотрел какой там ужас с машинными числами. 😊
источник

МБ

Михаил Бахтерев... in Compiler Development
Артур Ефимов
Есть сравнение по количеству ключевых слов. Оно позволяет увидеть развитие языков. Например, Алгол-60 — Паскаль — Модула-2 — Оберон — это единственная линейка языков, которые постоянно упрощались.
А чего тогда не Lisp? В котором сколько ключевых слов? По-моему, четыре всего: lambda, rec и cond (:
источник

AT

Alexander Tchitchigi... in Compiler Development
Михаил Бахтерев
А чего тогда не Lisp? В котором сколько ключевых слов? По-моему, четыре всего: lambda, rec и cond (:
Да нет, в Лисп, помнится, побольше нужно, car и cdr как минимум ещё. По этому критерию Smalltalk как раз почти всех уделает. Ну или Forth. 😊
источник

M

MaxGraey in Compiler Development
Михаил Бахтерев
Так и динамическая дипизация тут ни при чём. В приведённых примерах проблему вызывает изменяемость и передача параметров по ссылке.
Ссылки там не при чем в C#, JS и других managed ЯП тоже везде ссылки генераторы / итераторы есть, но такого не будет. В Python генераторы просто ленивые и выполняются только тогда когда все это преврашается явно в список.
источник

МБ

Михаил Бахтерев... in Compiler Development
Alexander Tchitchigin
Да нет, в Лисп, помнится, побольше нужно, car и cdr как минимум ещё. По этому критерию Smalltalk как раз почти всех уделает. Ну или Forth. 😊
Можно кодировкой воспользоваться и в lambd-ы всё упихать. Я просто к тому, что критерий по ключевым словам странный, как минимум.
источник

M

MaxGraey in Compiler Development
Михаил Бахтерев
А зачем это для управления АЭС? В ответственных задачах, обычно, всё делают inhouse и специально под конкретный проект. Если БД какие-то и есть или интеграция с какими-то библиотеками, то очень и очень далеко от ядра системы. Поэтому, можно и Oberon взять. Не самый плохой выбор, действительно.
Проблема с Обероном в том, что через лет десять он может превратиться в следующий COBOL то бишь найти программистов будет невероятно сложно и стоять они будут заоблачно дорого
источник

AT

Alexander Tchitchigi... in Compiler Development
MaxGraey
Ссылки там не при чем в C#, JS и других managed ЯП тоже везде ссылки генераторы / итераторы есть, но такого не будет. В Python генераторы просто ленивые и выполняются только тогда когда все это преврашается явно в список.
Тут даже ленивость не особо при чём — в самом ленивом Haskell такого тоже не будет. 😊
Проблема, по-видимому, в небрежной реализации call-by-name и использовании динамического скоупа вместо лексического.
источник

AT

Alexander Tchitchigi... in Compiler Development
Михаил Бахтерев
Можно кодировкой воспользоваться и в lambd-ы всё упихать. Я просто к тому, что критерий по ключевым словам странный, как минимум.
Это-то и так понятно. 😊
источник

AT

Alexander Tchitchigi... in Compiler Development
Кстати, а есть какая-нибудь вменяемая мера (сложности) для семантики ЯП?
источник

AT

Alexander Tchitchigi... in Compiler Development
MaxGraey
Проблема с Обероном в том, что через лет десять он может превратиться в следующий COBOL то бишь найти программистов будет невероятно сложно и стоять они будут заоблачно дорого
Во-первых, "коболизация" может "внезапно" случиться почти с любым языком — именно поэтому хорошо брать простой язык, которому можно сравнительно быстро обучить.
Во-вторых, не хотелось бы, чтобы экономили на программистах и прочих специалистах для АЭС. 😊
источник

AT

Alexander Tchitchigi... in Compiler Development
Не хочется лишний раз приводить в пример несчастный Боинг, но вон Тойота, по-видимому, тоже поэкономила на программистах и разработке в целом, с не многим менее плачевными результатами. 😞
источник