编译原理及编译程序构造PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:秦振松编
- 出 版 社:南京:东南大学出版社
- 出版年份:1995
- ISBN:7810500864
- 页数:278 页
1 引论 1
1.1 程序设计语言与编译 1
1.2 编译程序概述 2
1.2.1 词法分析 3
1.2.2 语法分析 3
1.2.3 中间代码生成 5
1.2.4 优化 5
1.2.5 目标代码生成 6
1.2.6 表格与表格管理 6
1.2.7 出错处理 8
1.2.8 遍 8
1.3 编译程序生成 9
1.4 编译程序构造 10
2 编译基础知识 11
2.1 字母表与符号串 11
2.1.1 符号串集合的运算 11
2.1.2 字母表的闭包与正闭包 12
2.2 文法与语言的关系 12
2.2.1 文法的概念 12
2.2.2 文法与语言的形式定义 15
2.3 文法构造与文法简化 18
2.3.1 由语言构造文法的例子 18
2.3.2 文法的简化 19
2.3.3 构造无ε产生式的上下文无关文法 20
2.4 语法树与文法的二义性 21
2.4.1 语法树 21
2.4.2 文法的二义性 22
习题 24
3 词法分析 26
3.1 正规文法和有限自动机 26
3.1.1 正规文法、正规集与正规式 26
3.1.2 有限自动机 28
3.1.3 正规式与有限自动机之间的关系 33
3.1.4 正规文法与有限自动机 36
3.2 词法分析程序 38
3.2.1 预处理与超前搜索 38
3.2.2 扫描器的输出格式 39
3.2.3 扫描器的设计 41
3.3 词法分析程序的自动生成 47
3.3.1 LEX语言 47
3.3.2 LEX编译程序的构造 49
习题 51
4 自上而下语法分析 54
4.1 下推自动机 54
4.2 自上而下分析法的一般问题 55
4.2.1 消除左递归 57
4.2.2 消除回溯——预测与提左因子 59
4.3 预测分析程序与LL(1)文法 60
4.3.1 求串a的终结首符集和非终结符A的随符集 62
4.3.2 构造预测分析表 64
4.3.3 状态表 66
4.4 递归下降分析法 68
习题 74
5 优先分析法 77
5.1 简单优先分析方法 77
5.1.1 基本思想 77
5.1.2 有关文法的一些关系 78
5.1.3 优先矩阵的构造算法 82
5.1.4 简单优先分析算法 84
5.2 算符优先分析法 85
5.2.1 算符优先分析技术的引进 87
5.2.2 算符优先文法及优先表的构造 89
5.2.3 算符优先分析的若干问题 92
5.3 优先函数 96
习题 98
6 LR分析法及分析程序自动构造6.1 LR分析器 101
6.2 LR(0)项目集族和LR(0)分析表的构造 104
6.2.1 LR(0)项目集规范族的构造 106
6.2.2 LR(0)分析表的构造算法 107
6.3 SLR分析表的构造 108
6.4 规范LR分析表的构造 111
6.4.1 构造LR(1)项目集规范族的算法 112
6.4.2 构造LR(1)分析表算法 113
6.5 LALR分析表构造 114
6.5.1 基本思想 114
6.5.2 构造LALR分析表算法 116
6.6 二义文法的应用 117
6.7 分析表的自动生成 121
6.7.1 终结符和产生式的优先级 122
6.7.2 结合规则 122
6.7.3 LR分析表的安排 124
习题 125
7 语法制导翻译并产生中间代码7.1 概述 127
7.2 简单算术表达式和赋值语句的翻译 129
7.2.1 四元式 129
7.2.2 赋值语句的翻译 130
7.2.3 类型转换 132
7.3 布尔表达式的翻译 133
7.3.1 布尔表达式在逻辑演算中的翻译 133
7.3.2 控制语句中布尔式的翻译 134
7.4 控制语句的翻译 138
7.4.1 标号和转移语句 139
7.4.2 IF语句的翻译 140
7.4.3 WHILE语句的翻译 142
7.4.4 REPEAT语句的翻译 143
7.4.5 循环FOR语句的翻译 144
7.4.6 分情语句的翻译 147
7.4.7 复合语句的翻译 151
7.5 数组元素及其在赋值语句中的翻译 152
7.5.1 数组及下标变量地址的计算 152
7.5.2 数组元素引用的中间代码形式 154
7.5.3 按行存放赋值语句中数组元素的翻译 155
7.5.4 按列存放赋值语句中数组元素的翻译 158
7.6 过程调用语句 159
7.6.1 参数传递 160
7.6.2 过程调用语句的翻译 161
7.6.3 过程调用和数组元素相混淆的处理 162
7.7 说明语句的翻译 163
7.7.1 分程序结构的符号表 163
7.7.2 整型、实型说明语句的翻译 166
7.7.3 常量定义语句的翻译 167
7.7.4 数组说明语句的翻译 168
7.7.5 过程说明语句的翻译 169
7.8 输入/输出语句的翻译 169
7.9 自上而下分析制导的翻译 171
7.9.1 算术表达式的翻译 171
7.9.2 布尔表达式的翻译 173
7.9.3 简单语句的翻译 175
7.9.4 LL(1)语法制导翻译 178
7.10 属性文法与属性翻译 180
7.10.1 属性文法与L属性文法 180
7.10.2 属性翻译 182
7.11 中间代码的其它形式 184
7.11.1 后缀式表示法 184
7.11.2 三元式 187
7.11.3 间接三元式 188
7.11.4 树 189
习题 190
8 运行时数据区的管理 194
8.1 静态存储管理 194
8.1.1 数据区 194
8.1.2 公用语句处理 196
8.1.3 等价语句处理 197
8.1.4 地址分配 199
8.1.5 临时变量地址分配 201
8.2 栈式存储管理 203
8.2.1 允许过程(函数)递归调用的数据存储管理 203
8.2.2 嵌套过程语言的栈式存储管理 206
8.3 堆式存储管理 211
8.3.1 堆式存储管理技术 211
8.3.2 堆空间的释放与无用单元收集 214
习题 215
9 中间代码优化 218
9.1 优化概述 218
9.1.1 局部优化简介 218
9.1.2 循环优化简介 219
9.1.3 全局优化简介 221
9.2 局部优化 222
9.2.1 基本块 222
9.2.2 基本块的DAG表示 224
9.2.3 DAG在基本块优化中的作用 228
9.2.4 DAG构造算法讨论 230
9.3 控制流程分析和循环查找算法 232
9.3.1 程序流图与必经结点集 232
9.3.2 深度为主排序 234
9.3.3 查找循环算法 234
9.4 数据流分析 235
9.4.1 到达-定值数据流方程 235
9.4.2 引用-定值链(ud链) 238
9.4.3 活跃变量及数据流方程 238
9.5 循环优化 240
9.5.1 代码外提 240
9.5.2 强度减弱与归纳变量删除 242
习题 243
10 目标代码生成 248
10.1 模型计算机的指令系统 248
10.2 一种简单代码生成算法 249
10.2.1 活跃信息与待用信息 249
10.2.2 寄存器和变量地址描述 250
10.2.3 代码生成算法 251
10.3 循环中寄存器分配 254
10.4 DAG结点的一种启发式排序 256
习题 259
附录 EL语言编译程序 261
A EL语言文法的扩充Backus表示法 261
B EL语言编译程序构造的实践指导 262
C 扩充的EL语言文法与中间代码的解释执行程序 274
参考文献 278
- 《第一性原理方法及应用》李青坤著 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《单片机原理及应用》庄友谊 2020
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《改革进程中的刑事诉讼程序与证据问题研究 基于警察的视角》谢波 2019
- 《国际商务礼仪》(美)CaroleBennett,崔松编 2012
- 《管理体系与统计技术》秦振友著 2013
- 《山东海阳秧歌教程》张荫松编 2012
- 《福建北大人》卢美松编 2002
- 《中国农地产权配置制度研究》姜军松编 2012
- 《抽油井采油读本》王九松编 1957
- 《巴林右旗文史资料 第5辑》中国人民政治协商会议巴林右旗委员会文史资料委员会编;穆松编 2004
- 《托儿所营养与传染病管理》秦振庭撰 1951
- 《磷细菌剂的制备和应用》张宪武,刘期松编 1959
- 《颗粒肥料的调制和施用》林鹤松编 1958