C#编译器是用C ++编写的吗?

时间:2009-03-10 16:20:13

标签: c# .net compiler-construction roslyn

C#编译器是用C ++编写的吗?

5 个答案:

答案 0 :(得分:35)

是的,但有计划用C#编写C#编译器,我相信在this podcast中已经讨论过。

答案 1 :(得分:22)

Mono C#编译器是用C#编写的。

答案 2 :(得分:18)

.NET框架是用Simple Managed C(SMC)编写的

历史

  

在.NET Framework的开发过程中,类库最初是使用名为Simple Managed C(SMC)的托管代码编译器系统编写的。1999年1月,Anders Hejlsberg成立了一个团队,在当时构建一种新语言酷,代表“C型面向对象语言”。[16]微软曾考虑将名称“酷”作为该语言的最终名称,但出于商标原因选择不这样做。当.NET项目在2000年7月的专业开发人员大会上公开宣布时,该语言已被重命名为C#,类库和ASP.NET运行时已被移植到C#。

来自:http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29

答案 3 :(得分:9)

有一个新的(截至2011年底)由Microsoft编写的名为Roslyn的C#和VB编译器,它们分别用C#和VB.NET编写。项目页面为here。 Roslyn编译器被编写为一个公开丰富的公共API的库。 InfoWorld上有一篇关于它的新闻文章here

更新: 截至2014年4月3日,Roslyn是Apache License 2.0下的开源软件。

答案 4 :(得分:8)

是的 - 作为CLR的大部分。如果你想看到CLR和/或编译器的内部,我强烈建议微软的共享源CLI(又名Rotor):

但是,实际上有一个用C#编写的编译器。我相信Mono是这样写的。下载Mono sources并自行查找。