我正在使用ANTLR玩耍和学习,为.NET构建一个简单的DSL,将脚本字符串转换为动态方法。我的第一个想法是将其翻译成IL操作码,但现在我正在阅读关于表达式树用于DM创建的内容。看起来我可以使用表达式树生成任何方法,就像IL代码一样? 谢谢! 代码: https://github.com/ricardoborges/NPortugol2
IL代码提供了更多的功能。例如,您可以使用它来发出针对.NET CLR正确的代码,但不一定是您可以用C#或VB.NET编写的代码。但总的来说,您应该能够使用表达式树做任何想做的事情,并且它们更容易理解。发出IL代码可能比编译表达式树稍微快一些。我不会担心这个(过早优化),但值得注意。请参阅使用动态变量会如何影响性能?以获取一些性能规格。