第1章 编译引论 1
1.1 编译程序 1
1.2 编译程序的结构 2
1.3 编译过程 3
1.4 与编译程序有关的概念和技术 5
1.5 编译程序的开发 7
习题1 8
第2章 高级程序语言及其语法描述 9
2.1 高级程序语言的定义 9
2.2 文法和语言 10
2.3 推导和归约 16
2.4 语法树与文法的二义性 18
2.5 文法的实用限制 21
2.6 文法的等价变换 22
习题2 25
第3章 词法分析 27
3.1 词法分析程序的功能 27
3.2 单词的种类及词法分析的输出 28
3.3 词法分析的手工设计 29
3.4 正规式与正规集 35
3.5 有限自动机 36
3.6 正规文法与有限自动机的等价性 46
3.7 正规式与有限自动机的等价性 50
3.8 词法分析程序的自动生成 52
习题3 57
第4章 语法分析——自顶向下分析 59
4.1 自顶向下分析面临的问题 59
4.2 LL(1)文法 60
4.3 递归下降分析法 67
4.4 预测分析法 71
习题4 77
第5章 语法分析——自底向上分析 78
5.1 自底向上的语法分析概述 78
5.2 算符优先分析法 80
5.3 LR分析法 89
5.4 语法分析器的自动生成工具YACC 117
习题5 124
第6章 符号表 126
6.1 符号表的作用 126
6.2 符号表的内容 127
6.3 符号表的总体组织 130
6.4 符号表的构建与查找 132
习题6 135
第7章 运行时存储空间的组织与管理 136
7.1 目标程序运行时的活动 136
7.2 目标程序运行时存储器的组织 139
7.3 静态存储分配 143
7.4 栈式动态存储分配策略 144
7.5 堆式动态存储分配策略 145
习题7 146
第8章 语法制导翻译和中间代码生成 147
8.1 语法制导翻译概述 147
8.2 属性文法与属性翻译文法 149
8.3 中间语言 156
8.4 常见语句的语法制导翻译 162
习题8 183
第9章 代码优化 185
9.1 代码优化概述 185
9.2 局部优化 188
9.3 循环优化 195
习题9 206
第10章 目标代码的生成 209
10.1 目标代码的形式 209
10.2 虚拟计算机模型 211
10.3 一个简单代码生成器 213
习题10 218
参考文献 219