Использование DLR для (прежде всего) статической компиляции языка - PullRequest
8 голосов
/ 13 сентября 2008

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

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

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

Любое понимание этого или ссылки на блоги / код / ​​переговоры будет принята с благодарностью.

1 Ответ

7 голосов
/ 13 сентября 2008

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

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

...