Давай подойдём с другой стороны. Как ты собираешься использовать это понятие?
Но любая узкоспециализированная активность развивает узкие навыки рассуждения. Учит ли программироване декомпозиции? Да!
Да, кстати, а какого размера грамматика, и как быстро генерится лексер?
А если Drop не переопределен, то по факту будет ли его вызов? P.S. это я к чему, ибо Drop - это просто событие, на которое программист может подписаться и что-то сделать. Инач...
Как компиляторы выглядели в 90-х? Есть ли какие-нибудь сорцы тех времён?
Вот я и спрашиваю: а написал ли кто-то годный DSL?
А где удобно прототипировать переписывания графов? Лиспы удобны для деревьев, но я хочу экспериментировать с графовым представлением.
Кстати, а когда динамические массивы стали популярной структурой данных? В старых текстах скорее упоминание связных списком увидишь.
Так что если язык, для которого ты пишешь компилятор это не С++, так ли нужен генератор лексеров?
Больше того, что автор говорил, и больше того, что автор в принципе мог бы сказать?
Топологическая сортировка и поиск компонент сильной связности, построение дерева доминаторов, что ещё?
А есть пейперы/статьи на тему того, как сохранять отладочную информацию при компиляции?
А есть ли аналоги SAT-решателей для линейных и аффинных логик?
А что за странная привязанность к моноиду в категории эндофункторов? Как будто на этих моноидах мир клином сошёлся.
Что ты используешь в качестве архитектуры команд? Risc-v или что-то своё?
Или фасм это таргет компиляции?
А есть ли список основных алгоритмов на графах для оптимизирующих компиляторов?
Где есть хороший референс Modula-2? Хочу попробовать написать свой компилятор.
Забавно. Никто тут не пытался учить кого-нибудь прогать?
> (и не порождающих грамматик, кстати — разве в самом принципе есть что-то плохое?) Да, это достаточно противоестественный подход к описанию языков.