4

前段时间,我正在研究编译器,我曾经System.Reflection从我的 AST 生成代码 (IL)。现在,我对另一个我想开发的编译器有了一个想法(这将是另一个宠物项目,不会在生产代码中使用任何东西,至少现在不会)。

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

我发现的唯一好的参考是基本语言的示例编译器(这是 codeplex 上 CCI 的一部分),但是,我更希望有一些其他资源,更像是教程、书籍、文章,我可以在其中获得除了学习代码之外的更多信息(这并不总是学习某些东西的最佳方法,因为您看到了解决方案,但您不知道您有哪些替代方案,或者此类代码为何有效)。

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

4

1 回答 1

2

首先,我将为那些不熟悉 CCI 的人提供几个链接:

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