跳转至

Engineering a Compiler: 编译器设计

教材简介

  • 来源:Keith Cooper、Linda Torczon(Rice University)
  • 先修要求:数据结构、计算机体系结构基础
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:80 小时 +

《Engineering a Compiler》(编译器设计)是 Rice University 的 Keith Cooper 和 Linda Torczon 编写的编译器教材,与"龙书"(Compilers: Principles, Techniques, and Tools)齐名。

与龙书偏重理论不同,这本书更注重工程实践。它关注的是:如何在实际的编译器中实现各种优化?如何权衡编译时间和生成代码的质量?

教材资源

核心内容

第一部分:前端

  • 词法分析、语法分析、语义分析
  • 符号表管理
  • 中间表示(IR)

第二部分:优化

  • 局部优化:常量折叠、代数化简、死代码消除
  • 全局优化:数据流分析、循环优化
  • 过程间优化:内联、逃逸分析

第三部分:后端

  • 指令选择、寄存器分配、指令调度
  • 代码生成

自学建议

先读龙书或上完 CS143。 这本书适合有一定编译基础的人深入学习。

重点关注优化部分。 优化是编译器最复杂也最有价值的部分,也是这本书的精华。

备注

这本书是编译器进阶的最佳教材之一。如果你想深入理解 GCC、LLVM 等现代编译器的实现,这本书是必读的。