Наткнулся на интересное поведение инструмента grun в Antlr. Для того, чтобы визуализация правильно заработала, потребовалось наложить дополнительные ограничения на грамматку.
Третьего дня прислал интерн задачу на проверку, а в ней интересная проблема.
Интересный вопрос намедни задали, а сколько же надо параметров функции, чтобы она хорошо читалась и с ней было удобно работать?
Да практически ничего. Мы видим, что среда времени выполнения языка имеет средства для обращения с консолью и способ обратиться к операционной системе. Языковые конструкции почти не используются. С другой стороны, если смотреть на это как разработчик компилятора, то это говорит о многом. Работает пара парсер/лексер, работает обработка типов, какой бы она ни была в языке, работает генерация кода. Исходные тексты (а даже однострочник — это исходный текст!) и модули обрабатываются. Кроме того, работает сборочный конвейер, причём он может бы быть весьма нетривиальным, но при этом быть невидимым. А если ещё включить «болтливый» (verbose) режим, то же самое будет гораздо более подробно. Много всего интересного можно увидеть в простом...
Одно из самых сильных воспоминаний из детства — полёт с дедом в соседнюю деревню на самолёте Ан-2. 25 километров по прямой, лететь полчаса или около того, человек десять пассажиров, дед рядом ещё живой и молодой, и непередаваемый детский восторг.