第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.3 习题解析 3
1.2.2 单项选择题 3
第2章 编译程序概述 5
2.1 基本内容 5
2.1.1 程序的翻译 5
2.1.2 编译程序的组成 6
2.2 基本题 8
2.2.1 填空题 8
2.2.2 单项选择题 8
2.3 习题解析 13
3.1.1 符号串和符号串集合 15
第3章 文法和语言的形式定义 15
3.1 基本内容 15
3.1.2 文法和文法的分类 16
3.1.3 语言的形式定义 17
3.1.4 与语法分析有关的概念 18
3.1.5 语法树和二义性 18
3.1.6 文法的实用限制和文法变换 19
3.2 基本题 20
3.2.1 填空题 20
3.2.2 单项选择题 22
3.3 习题解析 30
3.3.1 文法、语言的形式定义 30
3.3.2 短语、直接短语(简单短语)、句柄 33
3.3.3 文法的递归 36
3.3.4 文法描述的语言和语言文法的构造 38
3.3.5 文法的分类 44
3.3.6 规范推导与规范归约 47
3.3.7 语法树与二义性 49
3.3.8 文法变换 52
4.1 基本内容 54
4.1.1 词法分析程序的任务 54
4.1.2 状态转换图 54
第4章 词法分析与有穷自动机 54
4.1.3 正规表达式和有穷自动机 55
4.1.4 词法分析程序的设计 59
4.2.1 填空题 60
4.2.2 单项选择题 60
4.2 基本题 60
4.3 习题解析 62
4.3.1 词法分析 62
4.3.2 正规表达式的构造 62
4.3.3 正规文法的构造 66
4.3.4 DFA的构造 71
第5章 自上而下语法分析 103
5.1 基本内容 103
5.1.1 自上而下语法分析 103
5.1.2 递归子程序法 104
5.1.3 LL(1)方法(预测分析方法) 106
5.2 基本题 107
5.2.1 填空题 107
5.2.2 单项选择题 107
5.3 习题解析 111
5.3.1 自上而下语法分析 111
5.3.2 递归子程序法 114
5.3.3 LL(1)分析法 116
6.1.1 自下而上语法分析概述 125
第6章 自下而上语法分析 125
6.1 基本内容 125
6.1.2 简单优先分析算法 126
6.1.3 算符优先分析算法 128
6.1.4 LR(k)分析程序 130
6.1.5 LR(0)分析表的构造 131
6.1.6 SLR(1)分析表的构造 134
6.1.7 LR(1)分析表的构造 134
6.2.2 单项选择题 136
6.2.1 填空题 136
6.2 基本题 136
6.1.8 LALR(1)分析表 136
6.3 习题解析 143
6.3.1 优先分析方法 143
6.3.2 LR(k)分析方法 160
第7章 语法制导翻译 200
7.1 基本内容 200
7.1.1 语义分析概述 200
7.1.2 中间语言 200
7.1.3 目标代码结构的设计 202
7.1.4 语法制导翻译 203
7.2 基本题 205
7.2.1 填空题 205
7.2.2 单项选择题 206
7.3 习题解析 212
7.3.1 中间语言 212
7.3.2 语法制导翻译 218
8.1.2 符号表的内容 237
8.1.1 符号表的作用与生存期 237
8.1 基本内容 237
第8章 符号表 237
8.1.3 符号表的数据结构与符号表的组织 238
8.1.4 符号表的结构与符号表的操作 238
8.1.5 FORTRAN的符号表 239
8.1.6 PASCAL的符号表 239
8.2 基本题 240
8.2.1 填空题 240
8.2.2 单项选择题 240
8.3 习题解析 241
第9章 运行阶段的存储组织与分配 249
9.1 基本内容 249
9.1.1 概述 249
9.1.2 静态存储分配 250
9.1.3 动态存储分配 251
9.1.4 形实参数结合 256
9.1.5 关于本章的学习 256
9.2.2 单项选择题 257
9.2.1 填空题 257
9.2 基本题 257
9.3 习题解析 261
9.3.1 存储分配 261
9.3.2 参数传递 270
第10章 代码优化 286
10.1 基本内容 286
10.1.1 优化的原则 286
10.1.2 代码优化的基本方法 286
10.1.3 基本块内的局部优化 286
10.1.4 循环优化 290
10.1.5 窥孔优化 292
10.2 基本题 293
10.2.1 填空题 293
10.2.2 单项选择题 293
10.3 习题解析 294
11.1.1 概述 309
11.1.2 PL/0抽象机 309
第11章 代码生成 309
11.1 基本内容 309
11.2 基本题 310
11.2.1 填空题 310
11.2.2 单项选择题 311
11.3 习题解析 313
12.1.1 错误的种类 315
12.1.3 词法分析阶段的错误检测与处理 315
12.1.2 对错误的处理方法 315
12.1 基本内容 315
第12章 错误的检测与处理 315
12.1.4 语法分析阶段的错误检测与处理 316
12.1.5 语义错误的检测与处理 316
12.2 基本题 317
12.2.1 填空题 317
12.2.2 单项选择题 317
第13章 综合题 319
13.1 基本题 319
13.2 习题解析 324
参考文献 337