关于.net:使用DLR(主要)进行静态语言编译

关于.net:使用DLR(主要)进行静态语言编译

Using the DLR for (primarily) static language compilation

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

因此,现在已经解释了,我有以下问题:

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

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


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

将DLR发布为开源的一个整洁的方面是,我们不知道公司外部的人可能会使用哪种有趣的东西:)。


推荐阅读