C#编译器是用哪种语言编写的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

C#语言编译器是用C#编写的吗?还是我漏掉了什么明显的东西?如果C#编译器是用C#编写的,那么它是如何工作的呢?

提问于
用户回答回答于

最初的C#编译器不是用C#编写的,而是用C和C++编写的。新的Roslyn编译器是用C#编写的,但最初是用旧编译器编译的。一旦完成了新编译器,它就能够编译自己的源代码。

用户回答回答于

编译器是实用程序--它们将编程语言文本转换为机器代码。如果编程语言描述的软件恰好是一个编译

编译器还可以为其他体系结构生成机器代码。例如,苹果使用英特尔服务器的机架来编译iOS。编译器不必运行它生成的ARM代码,只需将其写入磁盘即可。

编译器2.0必须用编译器1.0可以处理的语言编写,但它肯定可以创建编译器2.0,并具有新的特性,如优化。然后,您可以使用编译器2.0重新编译源代码,并对其自身做出更好的版本。同样,编译器也不知道自己正在做另一个版本。

如果我们回到时间的迷雾中,那么我们确实达到了一个没有编译器的地步--一种高级语言的第一次迭代。然后,我们必须拿出铅笔和操作码书,并写出第一个在组装。我们是怎么写第一个汇编程序的?直接输入机器代码,可能在穿孔的纸带上,或者在前面板上翻转开关。

扫码关注云+社区