第1章 编译程序概论 1
1.1 知识要点 1
1.1.1 程序设计语言 1
1.1.2 翻译程序和编译程序 1
1.1.3 解释方式和解释程序 2
1.1.4 编译程序的功能结构 2
1.1.5 编译程序的组织 3
1.1.6 编译程序的设计与实现 4
1.2 例题解析 4
1.3 习题及部分参考答案 7
第2章 有限自动机与词法分析 9
2.1 知识要点 9
2.1.1 词法分析的任务 9
2.1.2 正则表达式与正则集 9
2.1.3 有限自动机 10
2.1.4 正则表达式与有限自动机的关系 13
2.1.5 确定有限自动机与单词的识别 14
2.1.6 单词的内部表示 14
2.1.7 词法分析器的设计 15
2.2 例题解析 16
2.3 习题及部分参考答案 26
第3章 文法和语言 38
3.1 知识要点 38
3.1.1 上下文无关文法和语言 38
3.1.2 语法树和二义性 38
3.1.3 短语、简单短语和句柄 39
3.1.4 文法分类 39
3.1.5 文法等价变换 40
3.2 例题解析 41
3.3 习题及部分参考答案 53
第4章 语法分析 66
4.1 知识要点 66
4.1.1 自顶向下语法分析 66
4.1.2 自底向上语法分析 69
4.1.3 LR分析方法 73
4.2 例题解析 78
4.3 习题及部分参考答案 100
5.1.2 符号表的组织和作用 126
5.1.1 语义分析的内容和任务 126
5.1 知识要点 126
第5章 语义分析和符号表 126
5.1.3 分程序结构语言符号表的管理 128
5.1.4 非分程序结构语言符号表的管理 129
5.1.5 符号表的内容 130
5.2 例题解析 131
5.3 习题及部分参考答案 140
6.1 知识要点 148
6.1.1 中间代码 148
第6章 中间代码和语法制导翻译 148
6.1.2 属性文法 150
6.1.3 语法制导翻译 151
6.2 例题解析 157
6.3 习题及部分参考答案 168
第7章 运行时的存储空间 180
7.1 知识要点 180
7.1.1 运行时的存储空间概述 180
7.1.2 栈式存储分配的实现 181
7.1.3 嵌套过程语言的栈式实现 185
7.1.4 参数传递 187
7.2 例题解析 188
7.3 习题及部分参考答案 198
第8章 代码优化 206
8.1 知识要点 206
8.1.1 代码优化的基本概念 206
8.1.2 基本块内的优化 206
8.1.3 循环和循环优化 208
8.1.4 窥孔优化 214
8.2 例题解析 215
8.3 习题及部分参考答案 230
第9章 自测试卷汇编 240
本科生期末试卷(一) 240
本科生期末试卷(二) 247
本科生期末试卷(三) 250
研究生入学试卷(一) 252
研究生入学试卷(二) 259
研究生入学试卷(三) 262
参考文献 264