October 19th, 2010

Book

Типизированный eval с хорошим динамическим кодогенератором

В ленте Russian Lambda Planet промеклькнули сообщения с общим подтекстом: "Будущее высокопроизводительных вычислений за динамической кодогенерацией". В связи с этим вопрос: как умные люди оную динамическую кодогенерацию делают? В частности, что из себя представляет интерфейс ультрасовременной функции eval?

Протухшие от старости решения - оба нетипизированы. Это eval :: String -> Value и  eval :: SExpression -> SExpression

От типизированного решения хочется, чтобы гарантированно не падала не только программа, генерирующая другую программу, но и эта новая сгенерированная программа. Сами эти типизированные решения известны - например, на Хаскелевских GADT любой крестьянин может за 10 минут написать какой-нибудь маленький EDSL. Меня интересует другое - есть ли какие-нибудь крупномасштабные решения с типизированной динамической кодогенерацией? Типа типизированного SBCL.