第一部分 基本内容,知识精要 练习题、考研题及详解第1章 概述 1
1.1 基本内容 1
1.1.1 翻译程序 1
1.1.2 解释程序和编译程序 2
1.1.3 编译过程概述 3
1.1.4 编译阶段的组合 4
1.1.5 编译程序的书写语言与T型图 4
1.1.6 编译程序的自展与交叉编译技术 5
1.2 知识要点 5
1.3 练习题及参考答案解析 6
1.3.1 练习题 6
1.3.2 参考答案解析 8
1.4 考研题及参考答案解析 12
第2章 文法和形式语言 14
2.1 基本内容 14
2.1.1 语法规则描述方法 14
2.1.2 符号和符号串 15
2.1.3 文法 16
2.1.4 语言 18
2.1.5 相关概念 19
2.1.6 有关文法的一些说明 21
2.1.7 语法分析初步 21
2.2 知识要点 21
2.3 练习题及参考答案解析 22
2.3.1 练习题 22
2.3.2 参考答案解析 31
2.4 考研题及参考答案解析 41
第3章 词法分析和有穷自动机 46
3.1 基本内容 46
3.1.1 词法分析程序 46
3.1.2 状态转换图 47
3.1.3 正则文法、正则式和正则集 48
3.1.4 有穷自动机 49
3.1.5 正则式和有穷自动机的等价性 50
3.1.6 正则文法和有穷自动机间的转换 51
3.1.7 词法分析程序的自动生成 52
3.2 知识要点 52
3.3 练习题及参考答案解析 52
3.3.1 练习题 52
3.3.2 参考答案解析 56
3.4 考研题及参考答案解析 62
第4章 自顶向下语法分析 65
4.1 基本内容 65
4.1.1 自顶向下语法分析方法 65
4.1.2 FIRST集合、FOLLOW集合和SELECT集合 66
4.1.3 递归子程序法 66
4.1.4 LL(1)分析法 68
4.1.5 带回溯的自顶向下分析思想 69
4.2 知识要点 69
4.3 练习题及参考答案解析 69
4.3.1 练习题 69
4.3.2 参考答案解析 73
4.4 考研题及参考答案解析 78
第5章 自底向上语法分析 82
5.1 基本内容 82
5.1.1 自底向上语法分析方法 82
5.1.2 简单优先分析法 83
5.1.3 算符优先分析法 84
5.1.4 优先函数及其构造 85
5.1.5 LR分析 86
5.1.6 LR(0)分析法 87
5.1.7 SLR(1)分析法 89
5.1.8 LR(1)分析法 90
5.1.9 LALR(1)分析法 91
5.1.10 二义性文法的分析 92
5.2 知识要点 93
5.3 练习题及参考答案解析 93
5.3.1 练习题 93
5.3.2 参考答案解析 98
5.4 考研题及参考答案解析 107
第6章 语法制导翻译和中间代码 117
6.1 基本内容 117
6.1.1 语义分析及其功能 117
6.1.2 属性文法 117
6.1.3 语法制导翻译 118
6.1.4 中间代码 118
6.1.5 常见语法成分的翻译 120
6.2 知识要点 121
6.3 练习题及参考答案解析 121
6.3.1 练习题 121
6.3.2 参考答案解析 126
6.4 考研题及参考答案解析 132
第7章 符号表 138
7.1 基本内容 138
7.1.1 符号表的建立与作用 138
7.1.2 符号表的内容 138
7.1.3 符号表栏目的组织 139
7.1.4 符号表的操作和结构 139
7.2 知识要点 140
7.3 练习题及参考答案解析 140
7.3.1 练习题 140
7.3.2 参考答案解析 143
7.4 考研题及参考答案解析 146
第8章 运行阶段的存储组织与分配 147
8.1 基本内容 147
8.1.1 概述 147
8.1.2 活动记录 147
8.1.3 存储组织与分配方案的分类 147
8.1.4 静态存储分配 148
8.1.5 动态存储分配 148
8.1.6 参数传递的方式 149
8.2 知识要点 150
8.3 练习题及参考答案解析 150
8.3.1 练习题 150
8.3.2 参考答案解析 154
8.4 考研题及参考答案解析 158
第9章 代码优化 163
9.1 基本内容 163
9.1.1 优化的目的 163
9.1.2 优化工作的分类 163
9.1.3 基本块内的优化 163
9.1.4 循环优化 165
9.1.5 程序流图 165
9.2 知识要点 166
9.3 练习题及参考答案解析 166
9.3.1 练习题 166
9.3.2 参考答案解析 169
9.4 考研题及参考答案解析 172
第10章 代码生成 175
10.1 基本内容 175
10.1.1 代码生成的任务 175
10.1.2 目标代码的形式 175
10.1.3 目标代码生成时寄存器分配的原则 175
10.1.4 目标代码结构 176
10.2 知识要点 178
10.3 练习题及参考答案解析 178
10.3.1 练习题 178
10.3.2 参考答案解析 179
10.4 考研题及参考答案解析 180
第二部分 清华大学《编译原理(第2版)》教材习题全解第11章 引论 181
第12章 PL/0编译程序的实现 183
第13章 文法和语言 189
第14章 词法分析 200
第15章 自顶向下语法分析方法 212
第16章 自底向上优先分析 227
第17章 LR分析 236
第18章 语法制导翻译和中间代码生成 275
第19章 符号表 280
第20章 目标程序运行时的存储组织 282
第21章 代码优化 286
第22章 代码生成 292
第23章 编译程序的构造 295
第24章 面向对象语言的编译 296
第25章 编译程序的面向对象构造 298
参考文献 300