Dynamic Language Runtime (DLR) - позволяет создавать свои динамические языки на платформе .NET. Сейчас самыми популярными из них являются IronPython и IronRuby. Также на просторах CodePlex существует IronLisp и другие динамические языки. Последняя версия DLR имеет номер 0.9 и была выпущена 10 декабря 2008 года.
Кроме того, что DLR позволяет создавать динамические языки, она также позволяет добавлять динамические элементы в уже сеществующие языки: C# 4.0 уже использует DLR - смотрите в сторону IDynamicObject. Если я правильно понял документ DLR Overview, то DLR 1.0 будет частью Common Language Runtime (CLR), выход которой уже не за горами.
Dynamic Language Runtime состоит из трех основных частей:
- Common Hosting - оперирует со скриптами (компиляция, парсинг, загрузка), включает в себя всю необходимую функциональность для работы со скриптами динамических языков.
- Runtime - как видно из названия отвечает за выполнение скриптов, взаимодействие с COM, CLR.
- Language Implementation - отвечает за механизмы, необходимые для реализации скриптовых языков.
Все это очень хорошо подробно описано в документации (DLR Overview и DLR Spec), которую можно скачать со страницы проекта.
Если у вас будет желания (не будет желания читать официальную, англоязычную, документацию), то в следующих постах я рассмотрю более подробнее работу DLR.