Посмотрите на это:
http://bracha.org/Site/Talks.html
Говорят о рефлексии, что, вероятно, вам и нужно - рефлексия касается не только самоанализа (который большинство разработчиков уже знает), но и об изменении значения языковых конструкций и манипуляции с кодом во время выполнения.
Лучшими языками для такого рода вещей, вероятно, являются ruby и smalltalk.
Если ваш язык не поддерживает эти возможности, у вас все еще есть возможность использовать генерацию кода - что возможно почти на любом языке программирования, но намного проще в динамических с поддержкой eval. Например, такие вещи возможны даже в C / C ++, но ваше приложение должно встраивать компилятор.
Java - хороший выбор (спасибо загрузчикам классов и множеству библиотек для манипулирования байт-кодом)
О, я почти забыл, взгляните на метафизику и оценки на шумиху.