我正在构建一个针对.NET的编译器,我以前直接生成了CIL,但生成DLR树将使我的生活更容易.我支持一些动态功能,即运行时函数创建和ducktyping,但绝大多数代码都是完全静态的.
所以现在已经解释过,我有以下问题:
除了MSDN博客上的小例子之外,DLR是否已用于静态编译?
如果是这样,取得了什么样的表现?
如果没有,有什么从根本上阻止这种情况?
有没有比使用DLR或直接发射IL更好的生成代码的机制?
任何对此的见解或对博客/代码/会谈的参考将不胜感激.
我不知道有人以这种方式使用DLR,尽管这绝对是它的预期用例之一.一个有趣的事情是DLR的表达式树已经与LINQ表达式树合并,因此在一些尚未宣布的Visual Studio未来版本中为LINQ生成的IL将使用DLR代码.
将DLR作为开源发布的一个巧妙方面是我们不知道公司外部人员可能会做些什么样的有趣事情:).