外观
编译原理精读
《编译原理》(原书第 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.1 | 6 节 | ⬜ |
| 第2章 一个简单的语法制导翻译器 | p.24 | 8 节 | ⬜ |
| 第3章 词法分析 | p.68 | 9 节 | ⬜ |
| 第4章 语法分析 | p.127 | 9 节 | ⬜ |
| 第5章 语法制导的翻译 | p.194 | 5 节 | ⬜ |
| 第6章 中间代码生成 | p.229 | 9 节 | ⬜ |
| 第7章 运行时刻环境 | p.280 | 8 节 | ⬜ |
| 第8章 代码生成 | p.326 | 11 节 | ⬜ |
| 第9章 机器无关优化 | p.370 | 8 节 | ⬜ |
| 第10章 指令级并行性 | p.450 | 5 节 | ⬜ |
| 第11章 并行性和局部性优化 | p.487 | 11 节 | ⬜ |
| 第12章 过程间分析 | p.573 | 7 节 | ⬜ |
阅读建议
原书的前 8 章是本科课程的主干(词法 → 语法 → 语法制导翻译 → 中间代码 → 运行时刻环境 → 代码生成), 第 9–12 章偏研究生与优化方向。若目标是理解编译器全貌,按章节顺序读到第 8 章即可; 若目标是做代码优化,第 9 章(数据流分析)是后面三章的共同地基,值得慢读。
维护
章节页由目录数据生成,已存在的页面不会被覆盖:
bash
node tools/gen-compilers.mjs小节标题若与原书有出入,改 tools/compilers-toc.mjs 后重新运行即可(只刷新总览表,不动已有笔记)。