Ami*_*ira 5 c# compiler-construction compilation roslyn
我开始阅读关于"Roslyn"的新C#编译器,并想知道Roslyn编译器是如何编译的?
我明白为了拥有"自托管编译器"需要使用boostrapping,我想知道Roslyn编译器是如何"自举"的?
如果尚未存在该语言的现有实现,则引导只是一个问题.在这种情况下,这很容易.
根据Eric Lippert的说法,这就是C#团队实际上(不是猜测)完成的事情:
C#1.0到5.0编译器是用C++编写的.很长一段时间 - 超过一年 - 我们用C#编写了Roslyn C#编译器并用C#4.0编译它.(C#5.0是由一个姐妹团队并行开发的.)我们可以编译Roslyn编译器,然后右转并使用我们刚刚构建的编译器再次编译它,这是一个快乐的日子.
一件漂亮的商业案例提供引导通过的Mads托格森编译:
"在这里,最后是我们的价值主张:让它成为世界上只需要一个理解C#的代码库,由想要在代码上构建工具的每个人共享!"