我在哪里可以了解C#编译器的工作原理?

6

在这个网站上,我经常看到人们用“编译器将[某物]替换为[其他东西]”这样的答案回答问题,那么我的问题是,人们是怎么知道/学习这些的呢?我可以在哪里学到这些内容?


11
你需要知道秘密握手。 - ChaosPandion
http://www.dotnetperls.com/compiler - D Stanley
3
好的,我会尽力进行翻译。以下是您需要翻译的内容:C# Language SpecificationReflectorsC#语言规范是C#语言的官方规范文档,涵盖了该语言的语法、类型系统、代码组织和执行模型等方面的内容。反编译器是一种工具,允许程序员查看已编译的代码并将其转换回源代码形式。这些工具通常用于理解现有代码、学习新语言或框架以及确保代码安全性。开源的反编译器包括ILSpy、dnSpy和JustDecompile等。 - Tim Schmelter
1
使用ildasm,您可以轻松地实验和查看C#编译器生成的IL代码,从中学习很多。 您还可以查看Roslyn,其API显示编译器从C#代码的角度看待它的视角。 http://blogs.msdn.com/b/csharpfaq/archive/2011/10/19/introducing-the-microsoft-roslyn-ctp.aspx - Dan Bryant
5个回答

13

3
我通常把C#语言规范视为"编译器在做什么",而将Eric的博客视为"为什么编译器要这样做"。 - JaredPar

2

一种技术是编译代码,然后使用工具(如ILSpy)进行反编译。使用这样的工具,您可以查看原始IL代码,并自己了解编译器生成了什么。


1
除了其他答案,我想提一下 LINQPad 是我用来快速检查 IL 片段的最喜爱工具。
你可以输入代码片段,立即查看 IL。 这绝对是使用最简单的工具,你可以即时进行更改并查看结果。

0
除了检查中间语言和阅读语言规范之外,请允许我补充《CLR via C#》一书,作者是Jeffrey Richter。这本参考书非常棒,详细介绍了底层发生的一切。Microsoft Press图书馆控制号:2009943026。

-1
Niklaus Wirth的书 Compiler Construction (PDF) 是一本介绍编译器构造理论和技术的入门书籍。它能让你对编译器是什么以及它的作用有一个大致的了解。

更新了PDF文档的链接到新版本。 - Olivier Jacot-Descombes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接