Skip to content

编译原理精读 ​

《编译原理》(原书第 2 版)的个人读书笔记专栏:按原书章节顺序记录要点梳理、算法直觉、习题与踩坑。

项值
原书Compilers: Principles, Techniques, and Tools, Second Edition
作者Alfred V. Aho · Monica S. Lam · Ravi Sethi · Jeffrey D. Ullman
中译本机械工业出版社(Pearson Education 授权引进),2009
篇幅12 章

这个专栏是什么 ​

一份按原书结构组织的读书笔记,不是原书的电子版:

  • 章节骨架与原书目录一致——每章一页,页内按原书小节顺序排列,方便对着纸质书逐节推进;
  • 每节留出笔记位,写自己的理解、直觉与疑问;
  • 章末汇总小结与习题记录。

之所以按原书目录来搭,是因为读书笔记的价值在于定位:复习时能直接翻到「第 4 章 4.6 简单 LR」对应的那几行字,而不用重新翻书找。

关于版权

原书文字、图表与习题的著作权归 Pearson Education 与机械工业出版社所有。 本专栏只记录个人学习笔记,不复制原书正文、图表或题目原文; 小节标题仅作为阅读索引使用。

全书结构 ​

章原书起始页小节数进度
第1章 引论p.16 节⬜
第2章 一个简单的语法制导翻译器p.248 节⬜
第3章 词法分析p.689 节⬜
第4章 语法分析p.1279 节⬜
第5章 语法制导的翻译p.1945 节⬜
第6章 中间代码生成p.2299 节⬜
第7章 运行时刻环境p.2808 节⬜
第8章 代码生成p.32611 节⬜
第9章 机器无关优化p.3708 节⬜
第10章 指令级并行性p.4505 节⬜
第11章 并行性和局部性优化p.48711 节⬜
第12章 过程间分析p.5737 节⬜

阅读建议 ​

原书的前 8 章是本科课程的主干(词法 → 语法 → 语法制导翻译 → 中间代码 → 运行时刻环境 → 代码生成), 第 9–12 章偏研究生与优化方向。若目标是理解编译器全貌,按章节顺序读到第 8 章即可; 若目标是做代码优化,第 9 章(数据流分析)是后面三章的共同地基,值得慢读。

维护 ​

章节页由目录数据生成,已存在的页面不会被覆盖:

bash
node tools/gen-compilers.mjs

小节标题若与原书有出入,改 tools/compilers-toc.mjs 后重新运行即可(只刷新总览表,不动已有笔记)。