通过“编写 C 编译器”进行工作

主要观点:作者决定为《nand2tetris》书中的 Hack 处理器创建 C 编译器,找到《Writing a C Compiler | No Starch Press》这本书并决定按其步骤学习,还会写博客记录过程,书中按步骤逐步添加功能,有大型测试套件,作者与作者联系并得到及时回复,书中未实现一些 C 特性但作为“额外加分”,Nora 有两个相关 GitHub 仓库,作者也有两个,作者将按章写博客,最后强调这是本好书。
关键信息:

  • 找到的书:Writing a C Compiler | No Starch Press,封面为具体图片链接
  • 学习方式:按章学习,每章添加功能,如第 1 章只能处理int main(void){ return <constant>; },第 2 章添加一元运算符。
  • 测试套件:有大型测试套件,可测试额外加分功能、词法分析器通过、词法和语法分析通过、语义分析、所有内容等,第 1 章的简单编译器就有 24 个测试。
  • 仓库:Nora 的两个仓库为具体链接 1(测试套件)、具体链接 2(OCaml 实现的编译器),作者的两个仓库为具体链接 3(测试套件的 fork 及修改)、具体链接 4(Rust 实现的编译器)。
  • 博客:可能按章写博客,之前未写博客,到第 8 章额外加分部分才开始,之前的会是完成工作的过去时态,之后会更随意。
    重要细节:
  • 作者给作者发邮件得到及时回复表示感谢。
  • 书中未实现一些特性且未涵盖,之后会说明。
  • 运行测试的示例命令及结果。
  • 不同仓库的功能和特点。
阅读 26
0 条评论