第一章 高级语言与编译 1
1.1 编译程序概论 1
1.2 高级程序语言概述 3
1.2.1 程序语言的定义 3
1.2.2 名字、类型、表达式与语句 3
1.2.3 程序段 5
1.2.4 参数传递 5
1.3 过程与函数执行的分析方法 6
1.3.1 动态图描述规则 6
1.3.2 过程与函数执行描述示例 7
1.4 典型范例解析 9
1.5 练习题 13
第二章 词法分析 15
2.1 内容与要点 15
2.1.1 状态转换图 15
2.1.2 正规表达式与有限自动机 16
2.1.3 正规式到有限自动机的变换 18
2.2 典型范例解析 21
2.3 练习题 36
第三章 语法分析 39
3.1 内容与要点 39
3.1.1 上下文无关文法 39
3.1.2 自下而上分析 41
3.1.3 算符优先分析法 42
3.1.4 自上而下分析 46
3.2 典型范例解析 50
3.3 练习题 73
第四章 语法分析器的自动构造 76
4.1 内容与要点 76
4.1.1 LR分析器基本知识 76
4.1.2 LR(0)分析表的构造 78
4.1.3 SLR分析表的构造 80
4.1.4 规范LR分析表的构造 82
4.1.5 LALR分析表的构造 84
4.1.6 二义文法的应用 85
4.2 典型范例解析 86
4.3 练习题 110
第五章 中间代码生成 115
5.1 内容与要点 115
5.1.1 中间语言简介 115
5.1.2 布尔表达式与典型语句翻译 117
5.2 典型范例解析 119
5.3 练习题 144
第六章 程序运行时存贮空间组织 147
6.1 内容与要点 147
6.1.1 静态存贮分配 147
6.1.2 简单的栈式存贮分配 148
6.1.3 嵌套过程语言的栈式分配 151
6.1.4 分程序结构的存贮管理 156
6.2 典型范例解析 160
6.3 练习题 169
第七章 代码优化 175
7.1 内容与要点 175
7.1.1 局部优化 176
7.1.2 循环查找 178
7.1.3 到达—定值与引用—定值链 182
7.1.4 循环优化 185
7.2 典型范例解析 188
7.3 练习题 211
第八章 符号表与错误处理 215
8.1 符号表 215
8.1.1 符号表的组织和使用 216
8.1.2 分程序结构语言的符号表建立 216
8.1.3 非分程序结构语言的符号表建立 218
8.1.4 符号表内容 219
8.2 错误处理 219
8.2.1 语法错误的校正 220
8.2.2 语义错误的校正 223
8.3 典型范例解析 225
8.4 练习题 231
附录:研究生入学考试试题 232
研究生入学考试试题(一) 232
研究生入学考试试题(二) 234
研究生入学考试试题(三) 236
研究生入学考试试题(四) 237
参考文献 241