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

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

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

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

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top