第1章 预备知识 1
1.1 基本内容 1
1.1.1 程序设计语言与程序的翻译 1
1.1.2 程序设计语言的语法描述 1
1.1.3 程序的执行 2
1.2 基本题 2
1.2.1 填空题 2
1.2.2 单项选择题 2
1.3 习题解析 3
第2章 编译程序概述 4
2.1 基本内容 4
2.1.1 程序的翻译 4
2.1.2 编译程序的组成 5
2.2 基本题 6
2.2.1 填空题 6
2.2.2 单项选择题 7
2.3 习题解析 11
3.1.1 符号串 13
3.1 基本内容 13
第3章 文法和语言的形式定义 13
3.1.2 文法和语言的形式定义 14
3.1.3 与文法有关的一些关系和集合 15
3.1.4 文法的分类 15
3.1.5 语法树和二义性 16
3.1.6 文法的实用限制和文法变换 17
3.2 基本题 18
3.2.1 填空题 18
3.2.2 单项选择题 19
3.3.1 文法、语言的形式定义 25
3.3 习题解析 25
3.3.2 短语、简单短语、句柄 28
3.3.3 文法的递归 31
3.3.4 文法捕述的语言和构造语言的文法 33
3.3.5 文法的分类 39
3.3.6 规范推导与规范归约 42
3.3.7 语法树与二义性 44
3.3.8 文法变换 47
4.1.1 词法分析程序的任务 49
4.1.2 状态(转换)图 49
4.1 基本内容 49
第4章 词法分析与有穷自动机 49
4.1.3 正则表达式和有穷自动机 50
4.1.4 词法分析程序的设计 54
4.2 基本题 55
4.2.1 填空题 55
4.2.2 单项选择题 55
4.3 习题解析 56
4.3.1 词法分析 56
4.3.2 正则式与正则语言 57
4.3.3 有穷自动机 58
第5章 自顶向下语法分析 88
5.1 基本内容 88
5.1.1 自顶向下语法分析 88
5.1.2 递归子程序法 89
5.1.3 LL(1)方法(预测分析技术) 91
5.2 基本题 92
5.2.1 填空题 92
5.2.2 单项选择题 92
5.3.1 自顶向下语法分析 96
5.3 习题解析 96
5.3.2 递归子程序法 98
5.3.3 LL(1)分析法 102
第6章 自底向上语法分析 110
6.1 基本内容 110
6.1.1 自底向上语法分析概述 110
6.1.2 简单优先分析算法 111
6.1.3 算符优先分析算法 113
6.1.4 LR(k)分析程序 115
6.1.5 LR(0)分析表的构造 116
6.1.7 LR(1)分析表的构造 119
6.1.6 SLR(1)分析表的构造 119
6.1.8 LALR(1)分析表 121
6.2 基本题 121
6.2.1 填空题 121
6.2.2 单项选择题 122
6.3 习题解析 127
6.3.1 自底向上语法分析 127
6.3.2 优先分析法 127
6.3.3 LR(k)分析法 139
7.1.2 符号表的内容 174
7.1.1 符号表的作用与生存期 174
7.1 基本内容 174
第7章 符号表 174
7.1.3 符号表的数据结构与符号表的组织 175
7.1.4 符号表的结构与符号表的操作 175
7.1.5 FORTRAN的符号表 176
7.1.6 PASCAL的符号表 176
7.2 基本题 177
7.2.1 填空题 177
7.2.2 单项选择题 177
7.3 习题解析 179
第8章 运行阶段的存储组织与分配 187
8.1 基本内容 187
8.1.1 概述 187
8.1.2 静态存储分配 188
8.1.3 动态存储分配 188
8.1.4 简单的栈式存储分配 189
8.1.5 以过程为单位的栈式动态存储分配方案 190
8.1.6 堆存储分配 192
8.1.8 关于本章的学习 193
8.1.7 形实参数结合 193
8.2 基本题 194
8.2.1 填空题 194
8.2.2 单项选择题 194
8.3 习题解析 197
8.3.1 存储分配 197
8.3.2 参数传递 207
9.1.2 四元式表示 221
9.1.4 伪(抽象机器)代码 221
9.1.3 三元式表示 221
9.1.1 逆波兰表示 221
9.1 基本内容 221
第9章 中间语言 221
9.1.5 PL/O抽象机器的伪代码指令 222
9.1.6 形成中间形式的注意事项 223
9.2 基本题 223
9.2.1 填空题 223
9.2.2 单项选择题 223
9.3 习题解析 228
10.1.2 属性文法 236
10.1.1 语义分析概述 236
10.1 基本内容 236
第10章 语法制导翻译 236
10.1.3 语义分析方法 237
10.1.4 语义分析的翻译过程 238
10.2 基本题 238
10.2.1 填空题 238
10.3 习题解析 239
11.1.2 目标代码结构 251
11.1.1 概述 251
11.1 基本内容 251
第11章 代码生成 251
11.2 基本题 252
11.2.1 填空题 252
11.2.2 单项选择题 252
11.3 习题解析 253
第12章 代码优化 260
12.1 基本内容 260
12.1.1 优化的原则 260
12.1.2 代码优化的基本方法 260
12.1.3 基本块内的局部优化 260
12.1.4 基于循环的优化 264
12.1.5 窥孔优化 266
12.2 基本题 267
12.2.1 填空题 267
12.2.2 单项选择题 267
12.3 习题解析 269
13.1.1 错误的种类 292
13.1.2 对错误的处理方法 292
13.1.3 词法分析阶段的错误检测与处理 292
13.1 基本内容 292
第13章 错误的检测与处理 292
13.1.4 语法分析阶段的错误检测与处理 293
13.1.5 语义错误的检测与处理 293
13.2 基本题 294
13.2.1 填空题 294
13.2.2 单项选择题 294
第14章 综合题 296
14.1 基本题 296
14.1.1 选择题 296
14.2 习题解析 301
参考文献 313