Отражение (рефлексия, reflection) куда встанет в списке? или, оно не важно?
Недавно я вспоминал тот же модуль ast в Питоне — вещь хорошая, но сама по себе недостаточная. Это как в Форте — все можно расширить, но сделать это придется руками :)
Недавно я вспоминал тот же модуль ast в Питоне — вещь хорошая, но сама по себе недостаточная. Это как в Форте — все можно расширить, но сделать это придется руками :)
Справедливости ради, reflection, в отличие от AST, скорее семантический механизм, чем синтаксический...
Ну Вы же помните, как было сделано в учебнике Аппеля? А еще можно, все-таки, ввести новый вариант IR, но сделать это изящно, без многословия, то есть как в Nanopass :)
у аппеля подход, который дальше в кок уехал - условные рефайнменты, т.е. доказательства таскаем не в индуктивном виде, а предикатом
В каком-то смысле это действительно отличная замена заурядным макросам из того же лиспа. Но с точки зрения компиляторщика это очень удобный метаязык. И, кстати говоря, корректность там обеспечивается на уровне спецификаций.