图书介绍
编译原理 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![编译原理 第2版](https://www.shukui.net/cover/29/34758354.jpg)
- 何炎祥主编;李晓燕,王汉飞编 著
- 出版社: 武汉:华中理工大学出版社
- ISBN:7560934412
- 出版时间:2005
- 标注页数:320页
- 文件大小:11MB
- 文件页数:341页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理 第2版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 编译程序的自展、移植与自动化7
1.5.1 高级语言的自编译性7
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 产生式树23
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 确定化——造表法43
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(1)文法的判断条件75
5.2.2 集合FIRST、FOLLOW与SELECT的构造76
5.3.1 构造分析表M的算法78
5.3 确定的LL(1)分析器的构造78
5.3.2 LL(1)分析器的总控算法80
5.4 递归下降分析程序及其设计81
5.4.1 框图设计82
5.4.2 程序设计84
5.5 带回溯的自上而下分析法85
5.5.1 文法在内存中的存放形式85
5.5.2 其它信息的存放86
5.5.3 带回溯的自上而下分析算法86
5.6 小结90
习题五91
第6章 自下而上分析和优先分析方法92
6.1 自下而上分析93
6.2 短语和句柄94
6.3 移进-归约方法96
6.4 有关文法的一些关系97
6.4.1 关系97
6.4.2 布尔矩阵和关系98
6.4.3 Warshall算法99
6.4.4 关系FIRST与LAST101
6.5 简单优先分析方法103
6.5.1 优先关系103
6.5.2 简单优先关系的形式化构造方法104
6.5.3 简单优先文法及其分析算法109
6.5.4 简单优先分析方法的局限性111
6.6 算符优先分析方法112
6.6.1 算符优先文法112
6.6.2 OPG优先关系的构造113
6.6.3 素短语及句型的分析115
6.6.4 算符优先分析算法116
6.7 优先函数及其构造118
6.7.1 优先函数118
6.7.2 Bell方法119
6.7.3 Floyd方法120
6.7.4 两种方法的比较122
6.7.5 运用优先函数进行分析122
6.8 两种优先分析方法的比较123
6.9 小结124
习题六124
第7章 自下而上的LR(k)分析方法127
7.1 LR(k)文法和LR(k)分析器128
7.2 LR(0)分析表的构造131
7.2.1 规范句型的活前缀132
7.2.2 LR(0)项目132
7.2.4 CLOSURE(I)函数133
7.2.3 文法G的拓广文法133
7.2.5 goto(I,X)函数134
7.2.6 LR(0)项目集规范族135
7.2.7 有效项目137
7.2.8 举例138
7.2.9 LR(0)文法141
7.2.10 构造LR(0)分析表的算法141
7.2.11 构造LR(0)分析表的步骤小结142
7.3 SLR分析表的构造143
7.4 规范LR(1)分析表的构造147
7.5 LALR分析表的构造153
7.6 无二义性规则的使用157
7.7 小结159
7.7.1 LR分析程序159
7.7.2 LR分析表的自动构造159
7.7.3 文法间的关系160
7.7.4 LR文法举例161
7.7.5 有关LR文法的几个结论164
习题七164
第8章 语法制导翻译法166
8.1 一般原理和树变换166
8.1.1 一般原理166
8.1.2 树变换169
8.2 简单SDTS和自上而下翻译器171
8.3 简单后缀SDTS和自下而上翻译器174
8.3.1 后缀翻译175
8.3.2 IF-THEN-ELSE控制语句175
8.3.3 函数调用177
8.4 抽象语法树的构造177
8.4.1 自下而上构造AST180
8.4.2 AST的拓广180
8.5 属性文法181
8.5.2 S属性文法182
8.5.1 L属性文法182
8.6 中间代码形式183
8.6.1 逆波兰表示法183
8.6.2 逆波兰表示法的推广184
8.6.3 四元式185
8.6.4 三元式187
8.7 属性翻译文法的应用188
8.7.1 综合属性与自下而上定值188
8.7.2 继承属性和自上而下定值189
8.7.3 布尔表达式到四元式的翻译190
8.7.4 条件语句的翻译191
8.7.5 迭代语句的翻译193
8.8 小结195
习题八196
第9章 运行时的存储组织与管理198
9.1 数据区和属性字198
9.2 基本数据类型的存储分配200
9.3.1 单块存储方式201
9.3 数组的存储分配201
9.3.2 信息向量与数组分配程序203
9.3.3 多块存储方式204
9.4 记录结构的存储分配205
9.5 参数传递方式及其实现206
9.5.1 换名206
9.5.2 传值207
9.5.3 传地址208
9.5.4 传结果208
9.5.5 数组名用做实参208
9.5.6 过程名用做实参209
9.6 栈式存储分配方法209
9.6.1 概述209
9.6.2 现行DISPLAY和现行数据区211
9.6.3 标识符的作用域212
9.6.4 分程序的入口和出口工作213
9.6.5 过程调用时的存储管理216
9.7 堆式存储分配方法218
9.8 临时工作单元的存储分配219
9.9 小结223
习题九223
第10章 符号表的组织和查找225
10.1 符号表的一般组织形式225
10.2 符号表中的数据226
10.3 符号表的构造与查找227
10.3.1 线性查找227
10.3.2 折半法228
10.3.3 杂凑技术229
10.4 分程序结构的符号表233
10.5 小结235
习题十235
第11章 优化237
11.1 基本块及其求法238
11.2 优化举例239
11.3.1 变量的定义点242
11.3 利用变量的定义点进行优化242
11.3.2 循环中不变式的外提243
11.3.3 运算强度削弱243
11.3.4 公共表达式的消除244
11.3.5 常量合并245
11.4 循环优化246
11.5 借助DAG进行优化247
11.6 并行分支的优化249
11.7 窥孔优化250
11.8 小结250
习题十一251
第12章 代码生成252
12.1 假想的计算机模型252
12.2 从四元式生成代码253
12.3 从三元式生成代码255
12.4 从树型表示生成代码258
12.6 寄存器的分配261
12.5 从逆波兰表示生成代码261
12.7 小结262
习题十二263
第13章 词法分析器生成工具LEX264
13.1 LEX简介264
13.2 LEX源文件的格式267
13.2.1 模式267
13.2.2 定义部分269
13.2.3 规则部分271
13.2.4 用户代码部分272
13.3 LEX的工作原理272
13.4 yylex()函数的匹配原则273
13.5 识别模式后处理274
13.6 条件模式277
13.7 FLEX的命令选项279
13.8 举例279
习题十三281
第14章 语法分析器生成工具YACC282
14.1 YACC简介283
14.2 YACC源文件的格式286
14.2.1 单词和非终结符287
14.2.2 定义部分288
14.2.3 语法规则部分295
14.3 语义定义296
14.3.1 单词语义值的计算297
14.3.2 非终结符语义值的计算299
14.3.3 在规则中部的语义动作300
14.4 归约-归约冲突和上下文相关性的处理303
14.5 出错处理和恢复305
14.6 输出分析器的调试308
14.7 YACC和LEX的接口309
14.8 BYACC的命令选项310
14.9 举例311
习题十四318
参考文献320