Microsoft CCI - 编写编译器的资源和参考

发布于 2024-08-04 02:23:43 字数 467 浏览 10 评论 0原文

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

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

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

那么:在编写编译器和处理 AST 方面,你们有关于 CCI 的资源(教程、书籍)吗?

Some time ago, I was working on compiler, I've used System.Reflection to generate code (IL) from my AST. Now, I've an idea for another compiler that I'd like to work on (it will be another pet project, nothing that will be used in production code, at least, not now).

As you know, pet projects have one big advantage over production code: you can experiment and fail. So, I've decided to try to write compiler using Microsoft's CCI.

The only good reference I've found is a sample compiler of basic language (that is a part of CCI on codeplex), but, I'd prefer to have some other resources, more like tutorials, books, articles, where I could get more information other than studying code (which isn't always the best method to learn something, as you see a solution, but you don't know what alternatives you have, or why such code works).

So: Do you have any resources (tutorials, books) about CCI, in context of writing compilers and handling AST?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哑剧 2024-08-11 02:23:43

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

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

For the start, I'll throw few links, for those, who aren't familiar with CCI:

  1. CCI-AST project for generating and compiling abstract syntax trees.
  2. CCI-Metadata project for reading / writing meta data of clr assemblies, supports also reading / writing pdb.
  3. CCI-Samples project contains small basic compiler, which I was referring to in 1st post.
  4. Lang.Net presentation about CCI, a little "why and how?"
  5. VCC - concurrent c compiler, on top of CCI. I haven't dug into it yet, but I expect it to be another big project, without any explanations, not that good for learning constructing compilers from the beginning (beside this, it's mainly written in F#).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文