第1章 引言
1. 1 从面向机器的语言到面向人类的语言
1. 2 语言之间的翻译
1. 3 编译器与解释器
1. 4 编译器的工作原理与基本组成
1. 4. 1 通用程序设计语言的主要成份
1. 4. 2 以阶段划分编译器
1. 4. 3 编译器各阶段的工作
1. 4. 4 编译器的分析/综合模式
1. 4. 5 编译器扫描的遍数
1. 5 编译器的编写
1. 6 本章小结
习题
第2章 词法分析
2. 1 词法分析中的若干问题
2. 1. 1 记号. 模式与单词
2. 1. 2 记号的属性
2. 1. 3 词法分析器的作用与工作方式
2. 1. 4 输入缓冲区
2. 2 模式的形式化描述
2. 2. 1 字符串与语言
2. 2. 2 正规式与正视集
2. 2. 3 记号的说明
2. 3 记号的识别--有限自动机
2. 3. 1 不确定的有限自动机(Nondeterministic Finite Automata,NFA)
2. 3. 2 确定的有限自动机(Deterministic Finite Automata,DFA)
2. 3. 3 有限自动机的等价
2. 4 从正规式到词法分析器
2. 4. 1 从正规式到NFA
2. 4. 2 从NFA到DFA
2. 4. 3 最小化DFA
2. 4. 4 由DFA构造词法分析器
2. 4. 5 词法分析器生成器简介
2. 5 本章小结
习题
第3章 语法分析
3. 1 语法分析的若干问题
3. 1. 1 语法分析器的作用
3. 1. 2 语法错误的处理原则
3. 2 上下文无关文法(Context Free Grammar,CFG)
3. 2. 1 CFG的定义与表示
3. 2. 2 CFG产生语言的基本方法--推导
3. 2. 3 推导. 分析树与语法树
3. 2. 4 二义性与二义性的消除
3. 2. 4. 1 二义性(Ambiguity)
3. 2. 4. 2 二义性的消除
3. 3 语言与文法简介
3. 3. 1 正规式与上下文无关文法
3. 3. 2 上下文有关语言(Context Sensitive Language, CSL)
3. 3. 3 形式语言与自动机简介
3. 4 自上而下语法分析
3. 4. 1 自上而下分析的一般方法
3. 4. 2 消除左递归
3. 4. 3 提取左因子
3. 4. 4 通归下降分析
3. 4. 5 预测分析器
3. 4. 5. 1 非递归预测分析器的工作模式
3. 4. 5. 2 构造预测分析表
3. 4. 5. 3 LL(1)文法
3. 5 自下而上语法分析
3. 5. 1 自下而上分析的基本方法
3. 5. 1. 1 规范归约与"剪句柄"
3. 5. 1. 2 移进-归约分析器的工作模式
3. 5. 2 LR分析
3. 5. 2. 1 LR分析与LR文法
3. 5. 2. 2 构造SLR(1)分析器
3. 5. 2. 3 非SLR(1)文法
3. 5. 2. 4 基于LR分析的语法分析器生成器简介
3. 6 本章小结
习题
第4章 语法制导翻译生成中间代码
4. 1 语法制导翻译简介
4. 1. 1 语法与语义
4. 1. 2 属性与语义规则
4. 1. 3 语义规则的两种形式
4. 1. 4 LR分析翻译方案的设计
4. 1. 5 递归下降分析翻译方案的设计
4. 2 中间代码简介
4. 2. 1 后缀式
4. 2. 2 三地址码
4. 2. 2. 1 三地址码的直观表示
4. 2. 2. 2 三地址码的实现:三元式与四元式
4. 2. 3 图形表示
4. 3 符号表简介
4. 3. 1 符号表条目
4. 3. 2 构成名字的字符串
4. 3. 3 名字的作用域
4. 3. 4 线性表
4. 3. 5 散列表
4. 4 声明语句的翻译
4. 4. 1 变量的声明
4. 4. 2 数组变量的声明
4. 4. 3 过程的定义与声明
4. 4. 3. 1 左值与右值
4. 4. 3. 2 参数传递
4. 4. 3. 3 作用域信息的保存
4. 4. 4 记录的域名
4. 5 简单算术表达式与赋值句
4. 5. 1 简单变量的语法制导翻译
4. 5. 2 变量的类型转换
4. 6 数组元素的引用
4. 6. 1 数组元素的地址计算
4. 6. 2 数组元素引用的语法制导翻译
4. 7 布尔表达式
4. 7. 1 布尔表达式的作用与结构
4. 7. 2 布尔表达式的计算方法
4. 7. 3 数值表示与直接计算的语法制导翻译
4. 7. 4 短路计算的语法制导翻译
4. 7. 5 拉链与回填
4. 8 控制语句
4. 8. 1 标号与无条件转移
4. 8. 2 条件转移
4. 9 过程调用
4. 10 本章小结
习题
第5章 运行环境
5. 1 过程的动态特性
5. 1. 1 过程与活动
5, 1. 2 控制栈与活动记录
5. 1. 3 名字的绑定
5. 2 运行时数据空间的组织
5. 2. 1 运行时内存的划分与数据空间的存储分配策略
5. 2. 2 静态与动态分配简介
5. 3 栈式动态分配
5. 3. 1 控制栈中的活动记录
5. 3. 2 调用序列与返回序列
5. 3. 3 栈式分配中对非本地名字的访问
5. 3. 4 参数传递的实现
5. 4 本章小结
习题
第6章 代码生成
6. 1 代码生成的相关问题
6. 2 简单的计算机模型
6. 3 简单的代码生成器
6. 3. 1 基本块与程序流图
6. 3. 2 寄存器分配原则
6. 3. 3 代码生成算法
6. 4 本章小结
习题
参考书目