当用C#编写C#编译器时,是否可以修改它?

Joa*_*nge 7 .net c# compiler-construction

我想知道它是否可以为方便起见实现一些新功能.

当它出局时,这是可能的吗?

C#5.0:编译器即服务:

http://www.matthewlefevre.com/blog/entry.php/c-40-and-c-50/368

Ric*_*ein 11

Anders Hejlsberg说:

这是我们正在考虑的未来C#版本的方向之一.实际上,我认为元编程是我们更大的"编译器即服务"主题的一部分,我们正在为将来的版本而努力.我们想要打开我们的编译器,使它成为一个API,你可以调用它来编译一段代码并获取表达式树和/或IL.这使得一系列场景成为可能,例如应用程序可编程性,交互式提示,用户编写的重构以及嵌入了C#的小岛的特定于域的语言.
资源

他还在其他地方(在Channel9的采访中)说,他们正在将C#编译器的核心移植到托管代码,以实现这一点.

有一个演示这可从去年的PDC.C#编译器确实是托管代码.


Jar*_*Par 5

这真的取决于很多不同的事情.包括但不限于......

  1. Microsoft会在C#中编写C#编译器吗?
  2. 编译器是以源代码和二进制形式提供还是只是二进制?
  3. 您想编写二进制扩展名还是只修改源代码?
  4. 下载源和二进制文件的许可证是什么?
  5. 你想在商业或爱好项目中使用二进制文件吗?

至于这些问题的答案是什么,我不知道.我也不相信对基本问题#1有一个明确的答案.所以整体答案是一个很大的"不知道"

  • 1的答案是肯定的.请参阅我的回答以获取信息 2的答案是二进制.3 - 不知道.4 - 可能与当前许可证相同.5 - 不知道.元编程是可能的,但不能直接添加到C#语言和编译器. (2认同)