8

我正在构建一个面向 .NET 的编译器,并且我之前直接生成了 CIL,但是生成 DLR 树将使我的生活变得更加轻松。我支持一些动态特性,即运行时函数创建和鸭式,但绝大多数代码是完全静态的。

既然已经解释了,我有以下问题:

  • 除了 MSDN 博客上的小示例之外,DLR 是否已用于静态编译?
  • 如果是这样,实现了什么样的性能?
  • 如果没有,有什么从根本上阻止这种情况吗?
  • 有没有比使用 DLR 或直接发出 IL 更好的代码生成机制?

对此的任何见解或对博客/代码/谈话的引用将不胜感激。

4

1 回答 1

7

我还不知道有人以这种方式使用 DLR,尽管这绝对是它的预期用例之一。要考虑的一件有趣的事情是 DLR 的表达式树已与 LINQ 表达式树合并,因此在一些尚未宣布的 Visual Studio 未来版本中为 LINQ 生成的 IL 将使用 DLR 代码。

将 DLR 作为开源发布的一个巧妙方面是,我们不知道公司以外的人可能会用它做什么有趣的事情:)。

于 2008-09-13T13:30:49.893 回答