第一章引论 1
1.1 编程语言 1
1.2 翻译程序 2
1.3 编译程序的结构 3
1.4 编译程序与其它软件工具的关系 4
第二章源语言的定义 7
2.1 语言及其表示法 7
2.2 文法的基本概念 8
2.3 文法的分类 11
2.4 对实用文法的限制与扩充 13
2.5 样板语言的语法描述 17
3.1 扫描器 22
第三章词法分析 22
3.2 单词的定义及识别 23
3.3 样板语言的扫描器 27
3.4 *有穷自动机及其与正则文法的等价性 35
3.5 *正则式及其与正则文法、有穷自动机的关系 40
3.6 *扫描器的自动生成 46
第四章语法分析 50
4.1 上下文无关文法及其分析 50
4.2 自顶向下分析与自底向上分析 55
4.3 递归子程序法 61
4.4 LL分析法 84
4.5 状态矩阵法 93
4.6 *LR分析法 98
4.7 *优先方法 110
5.1 符号表的内容及结构 117
第五章符号表 117
5.2 作用域规则与符号表的操作 119
5.3 符号表的实现 123
第六章存贮分配 135
6.1 静态存贮分配策略 135
6.2 动态存贮分配策略 138
6.3 样板语言运行时的存贮组织 142
第七章语义分析与代码生成 150
7.1 语法制导翻译 150
7.2 目标机 152
7.3 说明部分的处理 164
7.4 语句部分的处理 171
第八章中间语言与代码优化 195
8.1 编译程序的分遍 195
8.2 中间语言 197
8.3 *优化的基本概念 201
8.4 *可优数元的递归地址计算 207
第九章错误处理 213
9.1 错误处理的分类 213
9.2 拼写错误的处理 215
9.3 语义错误的处理 217
9.4 语法错误的处理 218
第十章编译程序的开发 220
10.1 自编译 220
10.2 交叉编译 221
10.3 自展 222
10.4 移植 222
10.5 编译程序的编译程序 224
参考文献 225