图书介绍
编译原理PDF|Epub|txt|kindle电子书版本网盘下载
![编译原理](https://www.shukui.net/cover/72/32863601.jpg)
- 何炎祥主编 著
- 出版社: 武汉:华中理工大学出版社
- ISBN:7560921620
- 出版时间:2000
- 标注页数:324页
- 文件大小:10MB
- 文件页数:345页
- 主题词:
PDF下载
下载说明
编译原理PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论1
1.1 翻译程序1
1.1.1 程序设计语言1
1.1.2 翻译程序2
1.2 编译程序的工作过程3
1.3 编译程序的结构5
1.4 编译程序的组织方式6
1.5 编译程序的自展、移植与自动化8
1.5.1 高级语言的自编译性8
1.5.2 编译程序的自展技术8
1.5.3 编译程序的移植9
1.5.4 编译程序的自动化9
1.6 翻译程序编写系统10
1.7 并行编译程序12
1.8 小结13
习题一14
第2章 形式语言概论15
2.1 字母表和符号串15
2.2 文法及其分类17
2.2.1 文法17
2.2.2 文法分类17
2.2.3 文法举例19
2.3 语言和语法树20
2.3.1 推导和规范推导20
2.3.2 句型、句子和语言22
2.3.3 语法树22
2.3.4 产生式树24
2.4 关于文法和语言的几点说明25
2.5 分析方法简介27
2.5.1 自上而下分析方法27
2.5.2 确定的自上而下分析方法29
2.5.3 自下而上分析方法30
习题二32
2.6 小结32
第3章 有穷自动机35
3.1 有穷自动机的形式定义35
3.1.1 状态转换表35
3.1.2 状态转换图36
3.1.3 自动机的等价性37
3.1.4 非确定有穷自动机38
3.2 NDFA到DFA的转换39
3.2.1 空移环路的寻找和消除39
3.2.2 消除空移40
3.2.3 确定化——子集法41
3.2.4 确定化——造表法42
3.2.5 εNDFA的确定化44
3.2.6 消除不可达状态45
3.2.7 DFA的化简46
3.2.8 从化简后的DFA到程序表示47
3.3.1 从正规文法到FA48
3.3 正规文法与有穷自动机48
3.3.2 从FA到正规文法49
3.4 正规表达式与FA50
3.4.1 正规表达式的定义50
3.4.2 正规表达式与FA的对应性52
3.4.3 正规表达式到NDFA的转换52
3.4.4 NDFA到正规表达式的转换53
3.4.5 从正规文法到正规表达式55
3.5.1 矩阵表示法56
3.5 DFA在计算机中的表示56
3.5.2 表结构57
3.6 小结57
习题三58
第4章 词法分析60
4.1 词法分析器与单词符号60
4.1.1 词法分析器60
4.1.2 单词符号60
4.2.2 状态转换图62
4.2 扫描程序的设计62
4.2.1 预处理62
4.2.3 根据状态图设计词法分析程序64
4.3 标识符的处理66
4.3.1 类型的机内表示66
4.3.2 标识符的语义表示66
4.3.3 符号表(标识符表)67
4.3.4 标识符处理的基本思想67
4.4 设计词法分析程序的直接方法68
4.4.1 由正规文法设计词法分析程序68
4.4.2 由正规表达式设计词法分析程序69
4.5小结70
习题四70
5.1.1 文法的左递归性72
5.1.2 用扩展的BNF表示法消除左递归72
5.1 消除左递归方法72
第5章 自上而下语法分析72
5.1.3 直接改写法73
5.1.4 消除左递归算法74
5.2 LL(k)文法75
5.2.1 LL(I)文法的判断条件75
5.2.2 集合FIRST、FOLLOW与SELECT的构造76
5.3.1 构造分析表M的算法78
5.3 确定的LL(1)分析器的构造78
5.3.2 LL(1)分析器的总控算法79
5.4 递归下降分析程序及其设计81
5.4.1 框图设计82
5.4.2 程序设计83
5.5 带回溯的自上而下分析法84
5.5.1 文法在内存中的存放形式85
5.5.2 其它信息的存放85
5.5.3 带回溯的自上而下分析算法85
习题五90
5.6 小结90
第6章 自下而上分析和优先分析方法93
6.1 自下而上分析93
6.2 短语和句柄94
6.3 移进-归约方法96
6.4 有关文法的一些关系97
6.4.1 关系97
6.4.2 布尔矩阵和关系99
6.4.3 Warshall算法99
6.4.4 关系FIRST与LAST101
6.5 简单优先分析方法103
6.5.1 优先关系104
6.5.2 简单优先关系的形式化构造方法104
6.5.3 简单优先文法及其分析算法110
6.5.4 简单优先分析方法的局限性112
6.6.1 算符优先文法113
6.6 算符优先分析方法113
6.6.2 OPG优先关系的构造114
6.6.3 素短语及句型的分析116
6.6.4 算符优先分析算法117
6.7 优先函数及其构造119
6.7.1 优先函数119
6.7.2 Bell方法120
6.7.3 Floyd方法121
6.7.5 运用优先函数进行分析123
6.7.4 两种方法的比较123
6.8 两种优先分析方法的比较124
6.9 小结125
习题六126
第7章 自下而上的LR(k)分析方法129
7.1 LR(k)文法和LR(k)分析器130
7.2 LR(0)分析表的构造134
7.2.1 规范句型的活前缀134
7.2.2 LR(0)项目134
7.2.4 CLOSURE(I)函数135
7.2.3 文法G的拓广文法135
7.2.5 goto(I,X)函数136
7.2.6 LR(0)项目集规范族137
7.2.7 有效项目139
7.2.8 举例140
7.2.9 LR(0)文法143
7.2.10 构造LR(0)分析表的算法143
7.2.11 构造LR(0)分析表的步骤小结145
7.3 SLR分析表的构造145
7.4 规范LR(1)分析表的构造149
7.5 LALR分析表的构造155
7.6 无二义性规则的使用159
7.7 小结161
7.7.1 LR分析程序161
7.7.2 LR分析表的自动构造162
7.7.3 文法间的关系162
7.7.4 LR文法举例163
7.7.5 有关LR文法的几个结论166
习题七166
第8章 语法制导翻译法168
8.1 一般原理和树变换168
8.1.1 一般原理168
8.1.2 树变换171
8.2 简单SDTS和自上而下翻译器173
8.3 简单后缀SDTS和自下而上翻译器176
8.3.1 后缀翻译177
8.3.2 IF-THEN-ELSE控制语句177
8.3.3 函数调用179
8.4 抽象语法树的构造179
8.4.1 自下而上构造AST182
8.4.2 AST的拓广182
8.5 属性文法183
8.6 中间代码形式184
8.5.2 S属性文法184
8.5.1 L属性文法184
8.6.1 逆波兰表示法185
8.6.2 逆波兰表示法的推广185
8.6.3 四元式187
8.6.4 三元式189
8.7 属性翻译文法的应用189
8.7.1 综合属性与自下而上定值189
8.7.2 继承属性和自上而下定值191
8.7.3 布尔表达式到四元式的翻译192
8.7.4 条件语句的翻译193
8.7.5 迭代语句的翻译194
8.8 小结197
习题八197
第9章 运行时的存储组织与管理200
9.1 数据区和属性字200
9.2 基本数据类型的存储分配202
9.3.1 单块存储方式203
9.3 数组的存储分配203
9.3.2 信息向量与数组分配程序205
9.3.3 多块存储方式206
9.4 记录结构的存储分配207
9.5 参数传递方式及其实现208
9.5.1 换名208
9.5.2 传值209
9.5.3 传地址210
9.5.4 传结果210
9.5.5 数组名用做实参210
9.5.6 过程名用做实参211
9.6 栈式存储分配方法211
9.6.1 概述211
9.6.2 现行DISPLAY和现行数据区213
9.6.3 标识符的作用域214
9.6.4 分程序的入口和出口工作215
9.6.4 过程调用时的存储管理218
9.7 堆式存储分配方法220
9.8 临时工作单元的存储分配221
9.9 小结225
习题九225
第10章 符号表的组织和查找227
10.1 符号表的一般组织形式227
10.2 符号表中的数据228
10.3 符号表的构造与查找229
10.3.1 线性查找229
10.3.2 折半法230
10.3.3 杂凑技术231
10.4 分程序结构的符号表235
10.5 小结237
习题十237
第11章 优化239
11.1 基本块及其求法240
11.2 优化举例241
11.3.1 变量的定义点244
11.3 利用变量的定义点进行优化244
11.3.2 循环中不变式的外提246
11.3.3 运算强度削弱246
11.3.4 公共表达式的消除246
11.3.5 常量合并247
11.4 循环优化249
11.5 借助DAG进行优化249
11.6 并行分支的优化252
11.7 窥孔优化253
11.8 小结253
习题十一254
第12章 代码生成255
12.1 假想的计算机模型256
12.2 从四元式生成代码256
12.3 从三元式生成代码258
12.4 从树型表示生成代码261
12.5 从逆波兰表示生成代码264
12.6 寄存器的分配265
12.7 小结266
习题十二266
第13章 词法分析器生成工具LEX268
13.1 LEX简介268
13.2 LEX源文件的格式271
13.2.1 模式271
13.2.2 定义部分273
13.2.3 规则部分275
13.2.4 用户代码部分276
13.3 LEX的工作原理276
13.4 yylexO函数的匹配原则277
13.5 识别模式后处理278
13.6 条件模式281
13.7 FLEX的命令选项283
13.8 举例283
习题十三285
第14章 语法分析器生成工具YACC286
14.1 YACC简介287
14.2 YACC源文件的格式291
14.2.1 单词和非终结符291
14.2.2 定义部分292
14.2.3 语法规则部分299
14.3 语义定义301
14.3.1 单词语义值的计算301
14.3.2 非终结符语义值的计算303
14.3.3 在规则中部的语义动作304
14.4 归约-归约冲突和上下文相关性的处理307
14.5 出错处理和恢复309
14.6 输出分析器的调试312
14.7 YACC和LEX的接口313
14.8 BYACC的命令选项314
14.9 举例315
习题十四322
参考文献324