第十一卷:编译原理与形式语言
这一卷把源文本逐步变成 token、语法树、IR 和机器码,同时保住语义。每个 pass 都有前置条件和验证点,否则优化只会更快地产生错误答案。
先修知识
覆盖内容
第 1–4 章从文法、自动机走到可计算性与复杂度;第 5–8 章沿编译过程讨论扫描、解析、名称与类型、中间表示、优化和代码生成。
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
学完能做什么
- 为简单语言定义文法与识别器,说明正则、上下文无关和可判定问题的区别。
- 跟踪源位置、作用域和类型信息从字符流进入 AST 与 IR 的过程。
- 解释一项优化为什么保持程序语义,以及目标平台的 ABI 和寄存器约束怎样影响生成代码。
怎样使用这份目录
希望补理论时,从第 1 章按顺序阅读。希望动手做小语言时,可以先从第 5–6 章写扫描器和表达式解析器,再回补相关理论。每加入一个阶段,都保留输入、输出和错误位置;先用正确而简单的实现作参照,再检查优化版本的结果。