Допустим, я хотел создать динамический языковой компилятор / интерпретатор, возможно интерпретатор Scheme, на платформе .NET, как он существует сегодня. Будет ли мне лучше использовать Dynamic Language Runtime (DLR) или использовать C # 4.0 для реализации динамических функций моего языка? Или мне нужны оба?
Я знаю, что в этой области была проделана другая работа, в частности с IronScheme и IronPython . Оба этих языка используют DLR; Я считаю, что IronPython использует самую последнюю версию DLR (которой около года), в то время как IronScheme использует раннюю, сильно модифицированную ветвь ранней версии DLR. Но C # 4.0 не был доступен, когда были созданы эти компиляторы.
Я видел работу Роба Конери с Massive, используя динамические возможности C # 4.0; это довольно впечатляет. Но выдержит ли C # полномасштабную работу динамического языкового компилятора / интерпретатора? Есть ли функции в DLR, которые отсутствуют в C #, или DLR по существу свернут в C # 4.0? Буду ли я упускать какие-либо важные функции DLR, если я буду использовать исключительно C # 4.0?