Microsoft CCI – 资源,编写编译器的参考资料

前段时间,我正在研究编译器,我使用System.Reflection从我的AST生成代码(IL)。 现在,我已经想到了另一个我想要处理的编译器(它将是另一个宠物项目,没有任何将在生产代码中使用,至少,现在不是)。

如您所知,宠物项目比生产代码有一个很大的优势:您可以尝试并失败。 所以,我决定尝试使用微软的CCI编写编译器。

我发现的唯一好的参考是基本语言的示例编译器(这是CCI在codeplex上的一部分),但是,我更喜欢有一些其他资源,更像是教程,书籍,文章,我可以获得除了学习代码之外的更多信息(这并不总是最好的学习方法,因为你看到了一个解决方案,但你不知道你有什么替代品,或者为什么这样的代码有效)。

那么:在编写编译器和处理AST的背景下,你有关于CCI的任何资源(教程,书籍)吗?

首先,对于那些不熟悉CCI的人,我会抛出一些链接:

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