2009-09-04 75 views
4

前段时间,我在编译器上工作,我用System.Reflection从AST生成代码(IL)。现在,我对另一个编译器有了一个想法,我希望这个编译器能够工作(这将是另一个宠物项目,至少在现在,不会用在生产代码中)。如您所知,宠物项目比生产代码有一大优势:您可以尝试并失败。所以,我决定尝试使用Microsoft's CCI编写编译器。我发现的唯一很好的参考是一个基本语言的示例编译器(这是Codeplex上的CCI的一部分),但是,我更喜欢拥有其他一些资源,更像是教程,书籍,文章和其他资源,在那里我可以获得更多的信息,而不是学习代码(这并不总是最好的学习方法,当你看到一个解决方案,但你不知道你有什么替代方案,或者为什么这样的代码工作)。微软CCI - 资源,编写编译器的参考文献

因此:在编写编译器和处理AST时,您是否有关于CCI的任何资源(教程,书籍)?

回答

2

对于一开始,我会扔几个环节,对于那些,谁不熟悉CCI:

  1. CCI-AST项目生成和编译抽象语法树。
  2. CCI-Metadata用于读取/写入clr程序集的元数据的项目,还支持读取/写入pdb。
  3. CCI-Samples项目包含我在第一篇文章中提到的小型基本编译器。
  4. Lang.Net关于CCI的介绍,有点“为什么以及如何?”
  5. VCC - CCI之上的并发c编译器。我还没有深入研究,但我期望它是另一个大的项目,没有任何解释,从一开始就学习构建编译器不太好(除此之外,它主要是用F#编写的)。