我在哪里可以了解到C#编译器的功能?

我在哪里可以了解到C#编译器的功能?,c#,compiler-construction,C#,Compiler Construction,在这个网站上,我经常看到人们用这样的答案回答问题:“它是这样工作的,因为编译器用[其他东西]替换了[东西]”,所以我的问题是,人们是如何知道/了解这一点的?我在哪里可以学到这些东西?关于C编译器如何解释代码的最权威的来源是C语言规范 下面的博客也提供了对C语言的更多了解。任何想成为语言专家的人都必须阅读 一种技术是编译代码,然后使用以下工具对其进行反编译:。使用这样的工具,您可以查看原始IL并亲自查看编译器生成的内容。除了检查中间语言和阅读语言规范之外,请允许我添加Jeffrey R

在这个网站上,我经常看到人们用这样的答案回答问题:“它是这样工作的,因为编译器用[其他东西]替换了[东西]”,所以我的问题是,人们是如何知道/了解这一点的?我在哪里可以学到这些东西?

关于C编译器如何解释代码的最权威的来源是C语言规范

下面的博客也提供了对C语言的更多了解。任何想成为语言专家的人都必须阅读


一种技术是编译代码,然后使用以下工具对其进行反编译:。使用这样的工具,您可以查看原始IL并亲自查看编译器生成的内容。

除了检查中间语言和阅读语言规范之外,请允许我添加Jeffrey Richter的“CLR via C””。微软出版社国会图书馆控制号:2009943026。这篇参考文章非常精彩,并且详细介绍了封面下发生的事情

Niklaus Wirth的书介绍了编译器构造的理论和技术。它让您大致了解了什么是编译器以及它的功能。

除了其他答案之外,我想提到的是,这是我最喜欢的检查IL快速代码片段的工具

您可以键入一段代码,然后立即看到IL。

这是迄今为止最容易使用的工具,您可以进行更改并立即看到结果。

您需要了解秘密握手。ildasm将让您了解C#编译器产生的大量内容,因为您可以轻松地进行实验并查看它发出的IL。您还可以查看Roslyn,它的API揭示了编译器查看C#代码的角度@GSerg我经常认为C#lang规范是“编译器正在做什么”,Eric的博客是“为什么编译器在做它正在做的事情”