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

时间:2008-09-30 22:21:15

标签: c# .net code-generation cil

我是一名专家C#3 / .NET 3.5程序员,希望使用System.Reflection.Emit.DynamicMethod开始运行一些运行时代码。我很想通过熟悉IL来提升到一个新的水平。

任何指针(双关语)?

5 个答案:

答案 0 :(得分:6)

除了Darren的回答,我建议选择或发明一种玩具语言,并为它编写一个简单的编译器。选择需要很少解析的东西,比如BF或基于堆栈的语言,你会发现编写编译器实际上比它看起来更简单。

答案 1 :(得分:5)

学习它的最好方法是写下你理解的东西,然后看看它创造的IL。另外,根据你正在做的事情,你可以使用表达式树而不是发出IL,然后当你编译表达式树时,那些在microsoft的聪明人会为你创建IL。

答案 2 :(得分:5)

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

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

答案 3 :(得分:5)

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

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

答案 4 :(得分:3)

Expert .NET 2.0 IL Assembler.虽然这本书现在可能有点陈旧,但对我来说仍然是一个很好的概述。