什么是学习CIL(MSIL)的最佳资源

时间:2020-03-06 14:57:04  来源:igfitidea点击:

我是一位资深的C3 / .NET 3.5程序员,希望开始使用System.Reflection.Emit.DynamicMethod进行一些运行时代码生成。我希望通过与IL紧密熟悉,将自己提升到一个新的水平。

任何指针(双关语意图)?

解决方案

学习它的最好方法是写一些我们理解的东西,然后查看它创建的IL。另外,根据操作,我们可以使用表达式树而不是发出IL,然后在编译表达式树时,Microsoft的那些聪明人会为我们创建IL。

专家.NET 2.0 IL汇编器。尽管这本书可能过时了,但对我来说仍然是一个很好的概述。

.NET Reflector非常适合检查C#/ VB.NET产生的IL。

这是一个很棒的学习工具。

ECMA 335规范可从此处免费下载:
http://www.ecma-international.org/publications/standards/Ecma-335.htm

分区III与处理MSIL最相关,但是我强烈建议所有.NET开发人员也建议使用分区I,因为它将大大巩固对该平台的理解。

除了Darren的答案,我建议我们选择或者发明一种玩具语言,并为此编写一个简单的编译器。选择一些几乎不需要解析的东西,例如BF或者基于堆栈的语言,我们会发现编写编译器实际上比看起来简单。