图书介绍
编译原理简明教程pdf电子书版本下载
- 郭伟主编 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302236795
- 出版时间:2011
- 标注页数:321页
- 文件大小:67MB
- 文件页数:336页
- 主题词:编译程序-程序设计-教材
PDF下载
下载说明
编译原理简明教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论 1
1.1什么叫编译程序 1
1.2编译过程概述 2
1.3.编译过程的结构 7
1.3.1编译程序总框 7
1.3.2表格与表格管理 7
1.3.3出错处理 8
1.3.4遍 8
1.3.5编译前端与后端 9
1.4解释程序和程序设计语言范型 9
1.4.1解释程序 9
1.4.2程序设计语言范型 11
1.5编译程序的生成 12
习题1 14
第2章 编译基础 15
2.1文法的直观概念 15
2.2符号和符号串 16
2.3文法和语言的形式定义 17
2.4文法的类型 20
2.5语法分析树与二义性 21
2.6句型的分析 25
2.6.1自上而下分析方法 25
2.6.2自下而上分析方法 26
2.6.3句型分析的有关问题 26
习题2 27
第3章 词法分析 29
3.1单词的描述工具 29
3.1.1正规文法 29
3.1.2正规式 30
3.1.3正规文法和正规式的等价性 31
3.2有限自动机 32
3.2.1确定的有限自动机(DFA) 33
3.2.2非确定的有限自动机(NFA) 34
3.2.3正规文法与有限自动机的等价性 37
3.2.4正规式与有限自动机的等价性 39
3.2.5确定有限自动机的化简 41
3.3词法分析器的要求 43
3.3.1词法分析器的功能和输出形式 43
3.3.2词法分析工作分离的考虑 44
3.4词法分析器的设计 45
3.4.1输入、预处理 45
3.4.2单词符号的识别——超前搜索 45
3.4.3状态转换图 47
3.4.4状态转换图的实现 49
3.5词法分析器的自动产生 52
3.5.1语言LEX的一般描述 52
3.5.2超前搜索 54
3.5.3 LEX的实现 55
习题3 57
第4章 自上而下语法分析 59
4.1语法分析器的功能 59
4.2下推自动机模型 59
4.3自上而下分析面临的问题 62
4.4 LL(1)分析法 64
4.4.1左递归的消除 64
4.4.2消除回溯、提取左因子 66
4.4.3 LL(1)分析条件 67
4.5递归下降分析程序的构造 69
4.6预测分析程序 71
4.6.1预测分析程序工作过程 71
4.6.2预测分析表的构造 72
4.7 LL(1)分析中的错误处理 74
习题4 76
第5章 自下而上语法分析 78
5.1自下而上分析的基本问题 78
5.1.1归约 78
5.1.2规范归约简述 79
5.1.3符号栈的使用与语法树的表示 81
5.2算符优先分析 83
5.2.1算符优先分析技术的改进 84
5.2.2算符优先文法及优先表构造 85
5.2.3算符优先分析算法 89
5.2.4算符优先分析中的出错处理 91
5.3 LR分析法 93
5.3.1 LR分析器 93
5.3.2 LR(0)项目集族和LR(0)分析表的构造 98
5.3.3 SLR分析表的构造 105
5.3.4规范LR分析表的构造 108
5.3.5 LALR分析表的构造 111
5.3.6二义文法的应用 114
5.3.7 LR分析中的出错处理 117
5.4语法分析器的自动产生工具YACC 120
习题5 124
第6章 语法制导翻译和中间代码生成 126
6.1概述 126
6.2属性文法 128
6.3语法制导翻译 131
6.3.1依赖图 133
6.3.2 S-属性文法的自下而上计算 135
6.3.3 L-属性文法和自上而下翻译 138
6.3.4 L-属性文法在自下而上分析中的实现 141
6.3.5 YACC使用语法制导翻译方法 143
6.4语义分析 144
6.5中间代码形式 144
6.5.1逆波兰记号 144
6.5.2三地址代码 145
6.5.3树形表示形式 148
6.6说明语句 148
6.6.1过程中的说明语句 149
6.6.2保留作用域信息 149
6.6.3记录中的域名 152
6.7赋值语句的翻译 153
6.7.1简单算术表达式及赋值语句 153
6.7.2数组元素的引用 154
6.7.3记录中域的引用 159
6.8布尔表达式的翻译方法 159
6.8.1布尔表达式的翻译方法 160
6.8.2控制语句中布尔表达式的翻译 161
6.9控制结构的翻译 165
6.9.1条件转移 165
6.9.2开关语句 167
6.9.3 for循环语句 169
6.9.4出口语句 171
6.9.5 goto语句 171
6.10过程调用的处理 173
习题6 174
第7章 运行时的存储空间组织 177
7.1数据空间的三种不同使用方法和管理方法 177
7.1.1静态存储分配 178
7.1.2动态存储分配 179
7.1.3栈式动态存储分配 179
7.1.4堆式动态存储分配 179
7.2栈式存储分配的实现 179
7.2.1简单的栈式存储分配的实现 180
7.2.2嵌套过程语言的栈式实现 181
7.2.3分程序结构的存储管理 185
7.3参数传递 189
7.3.1传值 189
7.3.2传地址 191
7.3.3过程参数 191
7.4过程调用、过程进入和过程返回 192
习题7 193
第8章 优化 196
8.1概述 196
8.2局部优化 201
8.2.1基本块及流图 201
8.2.2基本块的DAG表示及其应用 203
8.3循环优化 209
8.3.1代码外提 209
8.3.2强度削弱 213
8.3.3删除归纳变量 214
习题8 216
第9章 目标代码生成 219
9.1基本问题 219
9.2目标机器模型 221
9.3一个简单的代码生成器 222
9.3.1待用信息 224
9.3.2寄存器描述和地址描述 225
9.3.3代码生成算法 225
9.4寄存器分配 228
9.5 DAG的目标代码 231
9.6窥孔优化 234
习题9 236
第10章 面向对象语言的编译 238
10.1面向对象语言的基本概念 238
10.1.1对象 238
10.1.2对象类 239
10.1.3继承性 239
10.1.4信息封装 241
10.2方法的编译 242
10.3编译继承性的方案 243
10.3.1简单继承性的编译方案 244
10.3.2多继承性的编译方案 246
习题解析部分 251
习题1解析 251
习题2解析 253
习题3解析 256
习题4解析 269
习题5解析 276
习题6解析 288
习题7解析 296
习题8解析 305
习题9解析 315
参考文献 320