11

我正在使用 ANTLR 为 .NET 构建一个简单的 DSL,将字符串中的脚本转换为动态方法,我正在玩和学习很少。我的第一个想法是转换为 IL 操作码,但现在我正在阅读有关创建 DM 的表达式树。似乎我可以使用表达式树生成任何方法,就像 IL 代码一样?

谢谢!

代码:https ://github.com/ricardoborges/NPortugol2

4

1 回答 1

9

IL Code 给你更多的力量。例如,您可以使用它来发出适合 .NET CLR 的代码,但不一定是您可以用 C# 或 VB.NET 编写的代码。

但总的来说,是的,你应该能够用表达式树做任何你想做的事情,而且它们更容易让你理解。

发出 IL 代码可能会比编译表达式树快一些。我不会担心这个(过早的优化),但值得注意。请参阅动态变量如何影响性能?对于一些性能规格。

于 2013-02-01T00:41:42.173 回答