编译原理 第3版PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:蒋立源,康慕宁主编(西北工业大学计算机学院)
- 出 版 社:西安:西北工业大学出版社
- 出版年份:2005
- ISBN:7561218702
- 页数:390 页
第1章 绪论 1
1.1编译过程概述 3
1.2编译程序的逻辑结构 4
1.2.1词法分析程序 5
1.2.2语法分析程序 6
1.2.3语义分析程序 6
1.2.4中间代码生成 7
1.2.5代码优化程序 7
1.2.6目标代码生成程序 8
1.2.7错误检查和处理程序 9
1.2.8信息表管理程序 10
1.3编译程序的组织 11
习题 12
第2章 前后文无关文法和语言 14
2.1文法及语言的表示 14
2.2文法和语言的定义 15
2.2.1基本概念和术语 16
2.2.2文法和语言的形式定义 17
2.3句型的分析 23
2.3.1.规范推导和规范归约 23
2.3.2语法树和二义性 25
2.3.3短语和句柄 29
2.4文法的化简和改造 31
2.4.1无用符号和无用产生式的删除 31
2.4.2ε-产生式的消除 33
2.4.3单产生式的消除 35
2.5文法和语言的Chomsky分类 36
习题 38
第3章 词法分析及词法分析程序 42
3.1设计扫描器时应考虑的几个问题 42
3.1.1词法分析阶段的必要性 42
3.1.2单词符号的内部表示 43
3.1.3识别标识符的若干约定和策略 44
3.1.4源程序的输入及预处理 46
3.2正规文法和状态转换图 49
3.2.1由正规文法构造状态转换图 49
3.2.2状态转换图的一种实现——状态矩阵法 53
3.3有限自动机 59
3.3.1确定的有限自动机 59
3.3.2非确定的有限自动机 60
3.3.3 NFA与DFA的等价性 62
3.3.4具有ε动作的FA 64
3.3.5具有ε动作的NFA的确定化——子集法 66
3.3.6 DFA状态数的最小化 69
3.4正规表达式与正规集 71
3.4.1正规表达式与正规集的定义 72
3.4.2由正规文法构造相应的正规式 73
3.4.3由正规式构造FA—— Thompson法 76
3.5词法分析程序的实现 78
3.5.1词法分析程序的编写 79
3.5.2词法分析程序的自动生成 82
习题 98
上机实习题 104
第4章 语法分析和语法分析程序 106
4.1自顶向下的语法分析 107
4.1.1消除文法的左递归 108
4.1.2回溯的消除及LL(1)文法 111
4.1.3递归下降分析法 113
4.1.4预测分析法 119
4.1.5某些非LL(1)文法的改造 124
4.2自底向上的语法分析 126
4.2.1简单优先分析法 127
4.2.2算符优先分析法 133
4.2.3优先函数 138
4.2.4 LR分析法 144
习题 172
上机实习题 178
第5章 语法制导翻译及中间代码生成 181
5.1引言 181
5.2属性文法与属性翻译文法 183
5.2.1语义属性与属性文法 184
5.2.2属性翻译文法 187
5.3常见中间语言概述 192
5.3.1逆波兰表示 192
5.3.2四元式和三元式 194
5.3.3其它表示法 197
5.4简单算术表达式和赋值语句的翻译 198
5.5布尔表达式的翻译 200
5.6程序流程控制语句的翻译 205
5.6.1常见控制结构的翻译 205
5.6.2 FOR循环语句的翻译 211
5.6.3语句标号及GOTO语句的翻译 214
5.6.4情况语句的翻译 217
5.7含数组元素的算术表达式及赋值语句的翻译 219
5.7.1下标变量地址的计算 220
5.7.2含有下标变量的赋值语句的翻译 222
5.8过程说明和过程调用的翻译 225
5.8.1过程说明的翻译 225
5.8.2实参和形参间的信息传递 226
5.8.3过程语句的翻译 228
5.8.4关于形实结合的进一步讨论 230
5.9说明语句的翻译 231
5.9.1类型说明(变量及数组定义)语句的翻译 231
5.9.2数据类型定义语句的翻译 234
5.10语法分析程序的自动生成工具 237
5.10.1 LALR (1)分析器的自动生成工具—— YACC和OCCS 237
5.10.2 LL(1)语法分析程序自动生成工具LLama简介 248
5.10.3LLGen简介 249
5.10.4GCC概述 251
习题 253
上机实习题 255
第6章 符号表 257
6.1符号表的组织 257
6.2分程序结构语言符号表的建立 261
6.3非分程序结构语言符号表的建立 266
习题 268
第7章 运行时的存储组织与分配 270
7.1存储组织 271
7.1.1运行时内存的划分 271
7.1.2活动记录 271
7.2运行时的分配策略 272
7.2.1静态分配 273
7.2.2栈式分配 276
7.2.3堆式分配 278
习题 281
第8章 代码优化 284
8.1语法制导翻译阶段的优化 284
8.2线性窥孔优化 285
8.2.1强度削弱 286
8.2.2常数合并和常数传播 287
8.2.3无用变量与无用代码的删除 288
8.2.4窥孔优化实例 291
8.3基于结构信息的优化 293
8.3.1基本块及其优化 294
8.3.2数据流分析方法 300
8.3.3循环优化 310
习题 326
上机实习题 331
第9章 目标代码生成 332
9.1目标代码的形式 332
9.2一种假想的计算机模型 334
9.3一种代码生成程序的雏型 337
9.3.1待用信息 337
9.3.2寄存器描述符与地址描述符 338
9.3.3生成目标代码的算法 339
9.4 DAG的代码生成 342
9.5全局寄存器分配 344
习题 348
上机实习题 349
第10章 查错与改错 350
10.1语法错误的校正 351
10.1.1单词错误的校正 351
10.1.2自顶向下分析中的错误校正 352
10.1.3自底向上分析中的错误校正 355
10.2语义错误的校正 357
10.2.1遏止株连信息 358
10.2.2遏止重复信息 358
习题 359
第11章 面向对象语言的编译技术 360
11.1引言 360
11.1.1面向对象程序设计语言 361
11.1.2面向对象语言编译器的一些特点 361
11.2类和对象的基本特征 362
11.3类的基本定义 366
11.3.1基本类声明的语法定义 366
11.3.2基本类声明的抽象语法树表示 367
11.3.3基本类声明的处理 369
11.4面向对象程序设计语言的类型系统 377
11.4.1面向对象程序设计语言对类型系统的影响 377
11.4.2文法的扩展 378
11.4.3重载的处理 378
11.4.4继承的处理 382
习题 388
参考文献 389
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《计算机辅助平面设计》吴轶博主编 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《第一性原理方法及应用》李青坤著 2019
- 《云计算节能与资源调度》彭俊杰主编 2019
- 《Helmholtz方程的步进计算方法研究》李鹏著 2019
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020