Size: a a a

Compiler Development

2020 May 04

IJ

Igor 🐱 Jirkov in Compiler Development
Может быть, я невнимательно просмотрел, но это же про обучение?
источник

IJ

Igor 🐱 Jirkov in Compiler Development
я имел в виду скорее уже программиста не первой свежести :))
источник

PS

Peter Sovietov in Compiler Development
У этого же преподавателя есть курс про конструирование компиляторов и проч. В обучающем процессе он использует собственный вариант Оберона на Ocaml: https://spivey.oriel.ox.ac.uk/corner/Design_overview_for_OBC
источник

PS

Peter Sovietov in Compiler Development
Я видел несколько подобных проектов (в том числе на Haskell). Оберон здесь является простым императивным ЯП на котором демонстрируются возможности ФП-подхода по созданию компиляторов.
источник

PS

Peter Sovietov in Compiler Development
А по поводу "программиста не первой свежести" — Оберон здесь является примером того, что ниша простых низкоуровневых системных ЯП далеко не заполнена. Ее не заполнили Rust, Zig и проч.
источник

M

MaxGraey in Compiler Development
Peter Sovietov
А по поводу "программиста не первой свежести" — Оберон здесь является примером того, что ниша простых низкоуровневых системных ЯП далеко не заполнена. Ее не заполнили Rust, Zig и проч.
Из недавнего ZZ: https://github.com/zetzit/zz
источник

PS

Peter Sovietov in Compiler Development
А это ведь немного другое. Порождение кода на Си легко делается и на Haskell или Python, просто обычно это имеет смысл делать для своих же DSL.
источник

AT

Alexander Tchitchigi... in Compiler Development
Peter Sovietov
А по поводу "программиста не первой свежести" — Оберон здесь является примером того, что ниша простых низкоуровневых системных ЯП далеко не заполнена. Ее не заполнили Rust, Zig и проч.
Вообще-то, наличие такой ниши вовсе не очевидно. Несколько Свидетелей Оберона — ещё не ниша (у них всё равно денег нет). 🤷‍♀️
источник

M

MaxGraey in Compiler Development
Peter Sovietov
А это ведь немного другое. Порождение кода на Си легко делается и на Haskell или Python, просто обычно это имеет смысл делать для своих же DSL.
Nim тоже транспайлится в C. Это не суть важно. Я впомнил это в продолжение темы про незаполненность ниши
источник

V

Vlad in Compiler Development
Igor 🐱 Jirkov
А чем условный программист на хаскеле  или расте может соблазниться в обероне?
Программисту имеющему опыт за рамками паскального семейства средств разработки (ну Дельфи, короче)  практически нечем соблазниться. Не ищите там рационального зерна, это религия. Или как хобби (у меня, например :) Основные "жертвы" оберона - это школьники или люди из других профессий (не профессионалы в программировании), которые наслушались про "16 страниц, супер язык". Есть, как всегда, единичные исключения осмысленного применения на практике, но надо искать...
источник

А

Алексей in Compiler Development
а ведь весь день оберон обсуждаем же
источник

KR

K R in Compiler Development
Vlad
Программисту имеющему опыт за рамками паскального семейства средств разработки (ну Дельфи, короче)  практически нечем соблазниться. Не ищите там рационального зерна, это религия. Или как хобби (у меня, например :) Основные "жертвы" оберона - это школьники или люди из других профессий (не профессионалы в программировании), которые наслушались про "16 страниц, супер язык". Есть, как всегда, единичные исключения осмысленного применения на практике, но надо искать...
SML - это 40 страниц расслабленного текста, кстати.
источник

PS

Peter Sovietov in Compiler Development
MaxGraey
Nim тоже транспайлится в C. Это не суть важно. Я впомнил это в продолжение темы про незаполненность ниши
Да, пример вполне в тему. Просто это, скорее, в духе совершенно иного направления. Мы не связываемся с системными языками вообще. Брезгуем писать на них напрямую. Мы берем удобные и привычные нам  высокоуровневые инструменты и занимаемся DSL-кодогенерацией в Си.
источник

PS

Peter Sovietov in Compiler Development
Я, например, подобным образом генерировал Си-код симуляторов для спецпроцессоров. У меня, к примеру, порождался код с оперированием отдельными битовыми полями широкой (100+ бит) команды. Менялся формат команды — код перестраивался. А на Си это привело бы к совершенно непродуктивной и чреватой ошибками возне.
источник

KR

K R in Compiler Development
Peter Sovietov
А по поводу "программиста не первой свежести" — Оберон здесь является примером того, что ниша простых низкоуровневых системных ЯП далеко не заполнена. Ее не заполнили Rust, Zig и проч.
А zig чем плох? Простой, в отличие от Rust.
источник

AK

Andrei Kurosh in Compiler Development
K R
А zig чем плох? Простой, в отличие от Rust.
Zig из той же весовой категории, что и Си, а не Rust
источник

PS

Peter Sovietov in Compiler Development
Это как раз хорошо, что по простоте он ближе к Си. Просто он не выглядит пока зрелым решением. Мне так показалось.
источник

KR

K R in Compiler Development
Andrei Kurosh
Zig из той же весовой категории, что и Си, а не Rust
Я к тому, что "ниша простых низкоуровневых системных ЯП далеко не заполнена." Понятно, что Rust в неё не лезет. Oberon лезет, Zig тоже.
источник

KR

K R in Compiler Development
Peter Sovietov
Это как раз хорошо, что по простоте он ближе к Си. Просто он не выглядит пока зрелым решением. Мне так показалось.
Да:

"SIMD
TODO Zig's SIMD abilities are just beginning to be fleshed out."

Собственно, чтобы быть полезнее С, нужно быть серьёзно лучше С в любом применении.
источник

PS

Peter Sovietov in Compiler Development
Rust, понятное дело, не из этой категории. У меня во всех проектах для микроконтроллеров и ПЛИС память выделяется статически на этапе компиляции. Ну и зачем мне тогда терпеть borrow checker? :)
источник