使用 DLR(主要)进行静态语言编译
-
09-06-2019 - |
题
我正在构建一个针对 .NET 的编译器,并且之前已经直接生成了 CIL,但是生成 DLR 树将使我的生活变得更加轻松。我支持一些动态功能,即运行时函数创建和鸭子类型,但绝大多数代码是完全静态的。
既然已经解释了,我有以下问题:
- 除了 MSDN 博客上的小示例之外,DLR 是否已用于静态编译?
- 如果是的话,取得了什么样的表现?
- 如果不是,有什么从根本上阻止这种情况发生吗?
- 是否有比使用 DLR 或直接发出 IL 更好的生成代码机制?
对此的任何见解或对博客/代码/演讲的引用将不胜感激。
解决方案
我还不知道有人以这种方式使用 DLR,尽管这绝对是它的预期用例之一。需要考虑的一件有趣的事情是,DLR 的表达式树已与 LINQ 表达式树合并,因此在某些尚未公布的 Visual Studio 未来版本中为 LINQ 生成的 IL 将使用 DLR 代码。
将 DLR 作为开源发布的一个好处是,我们不知道公司外部的人可能会用它做什么样的有趣的事情:)。
不隶属于 StackOverflow