Использование DLR для (в первую очередь) компиляции статического языка.

StackOverflow https://stackoverflow.com/questions/60474

Вопрос

Я создаю компилятор, ориентированный на .NET, и ранее я напрямую генерировал CIL, но создание деревьев DLR значительно облегчит мою жизнь.Я поддерживаю несколько динамических функций, а именно создание функций во время выполнения и утиную типизацию, но подавляющее большинство кода полностью статично.

Итак, теперь, когда это объяснено, у меня возникли следующие вопросы:

  • Использовалась ли DLR для статической компиляции, за исключением небольших примеров в блогах MSDN?
  • Если да, то какие результаты были достигнуты?
  • Если нет, то есть ли что-то принципиально препятствующее этому?
  • Существуют ли какие-либо лучшие механизмы генерации кода, чем использование DLR или непосредственная передача IL?

Мы будем очень признательны за любую информацию об этом или ссылки на блоги/код/обсуждения.

Это было полезно?

Решение

Я пока не знаю, чтобы кто-нибудь использовал DLR таким образом, хотя это определенно один из предполагаемых вариантов использования.Стоит учитывать одну интересную вещь: деревья выражений DLR были объединены с деревьями выражений LINQ, поэтому IL, создаваемый для LINQ в какой-то еще необъявленной будущей версии Visual Studio, будет использовать код DLR.

Интересным аспектом выпуска DLR с открытым исходным кодом является то, что мы понятия не имеем, какие интересные вещи могут делать с ним люди за пределами компании :).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top