Size: a a a

Compiler Development

2020 May 20

AK

Andrei Kurosh in Compiler Development
Peter Sovietov
ADT "идеальны" лишь в том смысле, что похожи на БНФ-нотацию. Остальные тезисы, скорее, напоминают о желании поставить "телегу впереди лошади". Это в духе нашего прошлого спора на тему подходящего ЯП для разработки компиляторов. Кажется, никто всерьез не пробовал начать с выбора ключевых околокомпиляторных нотаций и алгоритмов.
Есть такой проект - Nitra. Создателя языка Nemerle пригласили в Jetbrains для того, чтобы он запилил некий тулчейн, упрощающий поддержку новых языков в IDE. И вот там есть, кажется, штук 5 отдельных DSL для различных аспектов языка - грамматика, семантика, и так далее. Я был на выступлении автора, выглядело весьма впечатляюще. Жаль, что в итоге «не взлетело»
источник

PS

Peter Sovietov in Compiler Development
Andrei Kurosh
Есть такой проект - Nitra. Создателя языка Nemerle пригласили в Jetbrains для того, чтобы он запилил некий тулчейн, упрощающий поддержку новых языков в IDE. И вот там есть, кажется, штук 5 отдельных DSL для различных аспектов языка - грамматика, семантика, и так далее. Я был на выступлении автора, выглядело весьма впечатляюще. Жаль, что в итоге «не взлетело»
Я, естественно, не претендую на новизну. Те же MPS, Rascal, Spoofax, DMS... вполне "взлетели" в своей нише. По поводу Nitra я что-то читал, но подробностей уже не помню. Спасибо, освежу в памяти!
источник

АГ

Алексей Герасимов... in Compiler Development
Andrei Kurosh
Есть такой проект - Nitra. Создателя языка Nemerle пригласили в Jetbrains для того, чтобы он запилил некий тулчейн, упрощающий поддержку новых языков в IDE. И вот там есть, кажется, штук 5 отдельных DSL для различных аспектов языка - грамматика, семантика, и так далее. Я был на выступлении автора, выглядело весьма впечатляюще. Жаль, что в итоге «не взлетело»
Да, Nemerle прикольный язык, в нем, на мой взгляд, самая мощная система макросов (после лиспов конечно)
источник

ГК

Григорий Кулаков... in Compiler Development
так в Nemerle система макросов же гигиеничная, тогда почему у Лиспов лучше?
источник

АГ

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

AT

Alexander Tchitchigi... in Compiler Development
Григорий Кулаков
так в Nemerle система макросов же гигиеничная, тогда почему у Лиспов лучше?
Если в понятие "Лиспов" включать Scheme, то там тоже гигиеническая. А если ещё и Racket включить — то с ним в этой части фиг посоревнуешься.
источник

DS

Doge Shibu in Compiler Development
Алексей Герасимов
потому что без этой оговорки на меня бы набросились адепты лиспа) а так в расте тоже декларативные макросы гигиеничны, но вряд ли вы скажете что они лучше лисповых
В расте можно нормально жить с процедурными макросами после появления syn и quote, но да, UX их использования совершенно никакой. В особенности по сравнению с лиспами.

Из последнего, что я пробовал, понравились новые макросы в дотти, они относительно ограничены в плане выразительной силы, но зато просты и удобны в написании и дружественны к IDE.
источник

АГ

Алексей Герасимов... in Compiler Development
Doge Shibu
В расте можно нормально жить с процедурными макросами после появления syn и quote, но да, UX их использования совершенно никакой. В особенности по сравнению с лиспами.

Из последнего, что я пробовал, понравились новые макросы в дотти, они относительно ограничены в плане выразительной силы, но зато просты и удобны в написании и дружественны к IDE.
что мне понравилось в Nemerle касательно макросов так это то что метаинфа о типах доступна через апи компилятора и можно этими типами манипулировать как объектами первого класса (в расте тоже, только типов нет, что существенно сокращает возможности конечно)
источник

А⚙

Антон ⚙️ in Compiler Development
polunin.ai
Хехе. Учитывая что гайд по с# полный 1100 страниц, а укороченный 200 (туда попали все фичи, просто урезали объяснения), то можно. И мне кажется такой формат самый лучший. Когда даётся краткое объяснение и общая концепция, а если непонятно то даются линки на полные объяснения. Не знаю как вам, мне практически всегда достаточно пару предложений чтобы вникнуть в тему. Ещё пара чтобы понять зачем, и примерно полстраницы-страница как это на практике реализовывается. Лучше писать меньше предложений но загружать больше смысла в них.
Судя по твоим сообщениям, Rust ты именно так и учил
источник

DS

Doge Shibu in Compiler Development
Алексей Герасимов
что мне понравилось в Nemerle касательно макросов так это то что метаинфа о типах доступна через апи компилятора и можно этими типами манипулировать как объектами первого класса (в расте тоже, только типов нет, что существенно сокращает возможности конечно)
В дотти это тоже доступно, что мне и понравилось в том числе. Очень просто делать быструю сериализацию на макросах и т.п. вещи.
источник

SP

Stanislav Popov in Compiler Development
Антон ⚙️
Судя по твоим сообщениям, Rust ты именно так и учил
альфачи учат раст не читая вообще ничего
источник

OK

Oleg Kovalov in Compiler Development
odnako
источник

AT

Alexander Tchitchigi... in Compiler Development
По сообщениям компилятора об ошибках, ага. 😊
источник

А⚙

Антон ⚙️ in Compiler Development
Alexander Tchitchigin
По сообщениям компилятора об ошибках, ага. 😊
А потом код обмазан клонами
источник

AD

Artyom Drozdov in Compiler Development
а что советуете по расту читать?
источник

А⚙

Антон ⚙️ in Compiler Development
Artyom Drozdov
а что советуете по расту читать?
источник

p

polunin.ai in Compiler Development
Антон ⚙️
Судя по твоим сообщениям, Rust ты именно так и учил
да в беггинерсах половину вопросов ответ я знаю но перестраховіваюсь
источник

AT

Alexander Tchitchigi... in Compiler Development
Антон ⚙️
А потом код обмазан клонами
источник

p

polunin.ai in Compiler Development
Антон ⚙️
А потом код обмазан клонами
что вы имеете против клонов?
источник

SP

Stanislav Popov in Compiler Development
Антон ⚙️
А потом код обмазан клонами
а как иначе?
источник