图书介绍
编译原理及其习题解答PDF|Epub|txt|kindle电子书版本网盘下载
![编译原理及其习题解答](https://www.shukui.net/cover/52/30845229.jpg)
- 何炎祥等编著 著
- 出版社: 武汉:武汉大学出版社
- ISBN:7307041987
- 出版时间:2004
- 标注页数:440页
- 文件大小:14MB
- 文件页数:456页
- 主题词:编译程序-程序设计-高等学校-教学参考资料
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.3.1 分析6
1.3.2 综合7
1.4 编译程序的结构8
1.5 编译程序的组织方式10
1.6 编译程序的其他有关技术10
1.6.1 编译程序的自展技术10
1.6.2 编译程序的移植11
1.6.3 编译程序的自动化12
1.6.4 程序的可再入性13
1.7 翻译程序编写系统13
1.8 并行编译程序14
习题一16
1.9 小结16
第二章 形式语言概论18
2.1 语言成分18
2.2 产生式文法和语言20
2.2.1 产生式文法20
2.2.2 上下文无关文法21
2.2.3 上下文无关文法定义的语言22
2.3.1 文法分类23
2.3 文法的分类23
2.3.2 文法分类的意义26
2.3.3 文法举例26
2.4 语言和语法27
2.4.1 句型、句子和语言27
2.4.2 语法树28
2.4.3 产生式树30
2.5.2 不可达文法符号32
2.5.1 无用非终结符号32
2.5 文法和语言的一些特性32
2.5.3 可空非终结符33
2.5.4 最左、最右推导和规范推导34
2.5.5 二义性36
2.6 分析方法简介37
2.6.1 自上而下分析方法38
2.6.2 确定的自上而下分析方法40
2.6.3 自下而上分析方法42
2.6.4 文法在内存中的表示43
2.7 小结45
习题二45
第三章 有穷自动机47
3.1 概述47
3.2 有穷自动机的形式定义49
3.2.1 状态转换表50
3.2.2 状态转换图51
3.2.3 构形和移动52
3.2.5 非确定有穷自动机53
3.2.4 自动机的等价性53
3.3 NDFSA到DFSA的转换55
3.3.1 空移环路的寻找和消除55
3.3.2 消除空移56
3.3.3 利用状态转换表消除空移58
3.3.4 确定化——子集法60
3.3.5 确定化——造表法63
3.3.6 消除不可达状态67
3.3.7 确定的有穷自动机的化简68
3.3.8 从化简后的DFSA到程序表示70
3.3.9 小结72
3.4 正规文法与有穷自动机72
3 4 1 从正规文法到FSA72
3.4.2 从FSA到正规文法74
3.5 正规表达式与FSA74
3.5.1 正规表达式的定义74
3.5.2 正规表达式的CFG76
3.5.4 正规表达式到NDFSA的转换77
3.5.3 正规表达式与FSA的对应性77
3.5.5 NDFSA M到正规表达式的转换81
3.5.6 从正规文法到正规表达式82
3.6 DFSA在计算机中的表示86
3.6.1 矩阵表示法86
3 6.2 表结构86
3.6.3 程序表示法86
习题三88
3.7 小结88
第四章 词法分析91
4.1 词法分析概述91
4.2 单词符号92
4.3 扫描程序的设计93
4.4 标识符的处理98
4 4.1 类型的机内表示98
4 4.2 标识符的语义表示102
4 4.3 符号表(标识符表)105
4.5 设计词法分析程序的直接方法106
4.4 4 标识符处理的基本思想106
4.6 与设计扫描程序相关的几个问题108
4.7 小结108
习题四109
第五章 自上而下语法分析110
5.1 非确定的下推自动机110
5.1.1 PDA的形式定义111
5.1.2 PDA的构形和移动112
5.1.3 上下文无关语言与PDA114
5.2 消除左递归方法117
5.2.1 文法的左递归性117
5.2.2 用扩展的BNF表示法消除左递归117
5.2.3 直接改写法119
5.2.4 消除所有左递归的算法120
5.3 LL(k)文法121
5.3.1 LL(l)文法的判断条件121
5.3.2 集合FIRST、FOLLOW与SELECT的构造122
5.4.1 构造分析表M的算法125
5.4 确定的LL(l)分析器的构造125
5.4.2 LL(l)分析器的总控算法127
5.5 LL(k)文法的几个结论129
5.6 递归下降分析程序及其设计130
5.6.1 框图设计131
5.6.2 程序设计131
5.7 带回溯的自上而下分析法133
5.7.3 带回溯的自上而下分析算法134
5.7.2 其他信息的存放134
5.7.1 文法在内存中的存放形式134
5.8 小结139
习题五139
第六章 自下而上分析和优先分析方法142
6.1 短语和句柄142
6.2 移进-归约方法144
6.3 非确定的自下而上分析器147
6.4 有关文法的一些关系151
6.4.1 关系151
6.4.2 布尔矩阵和关系152
6.4.3 Warshall算法153
6.4.4 关系FIRST与LAST156
6.5 简单优先分析方法158
6.5.1 优先关系158
6.5.2 简单优先关系的形式化构造方法160
6.5.3 简单优先文法及其分析算法165
6.6 算符优先分析方法169
6.6.1 算符优先文法169
6.5.4 简单优先分析方法的局限性169
6.6.2 OPG优先关系的构造170
6.6.3 素短语及句型的分析172
6.6.4 算符优先分析算法174
6.7 优先函数及其构造177
6.7.1 Bell方法178
6.7.2 Floyd方法179
6.7.3 两种方法的比较181
6.8 两种优先分析方法的比较182
6.9 小结183
习题六184
第七章 自下而上的LR(k)分析方法186
7.1 LR(k)文法和LR(k)分析器186
7.2 LR(O)分析表的构造190
7.2.1 规范句型的活前缀190
7.2.2 LR(O)项目190
7.2.3 文法G的拓广文法191
7.2.4 CLOSURE(I)函数191
7.2.6 LR(O)项目集规范族192
7.2.5 goto(I,X)函数192
7.2.7 有效项目195
7.2.8 举例196
7.2.9 LR(O)文法198
7.2.10 构造LR(O)分析表的算法198
7.2.11 构造LR(O)分析表的步骤小结200
7.3 SLR分析表的构造200
7.4 规范LR(l)分析表的构造204
7.5 LALR分析表的构造210
7.6 无二义性规则的使用213
7.7 小结216
7.7.1 LR分析程序216
7.7.2 LR分析表的自动构造216
7.7.3 文法间的关系217
7.7.4 LR文法举例217
7.7.5 有关LR文法的几个结论220
习题七220
8.1.1 一般原理222
8.1 一般原理和树变换222
第八章 语法制导翻译法222
8.1.2 树变换224
8.2 简单SDTS和自上而下翻译器227
8.3 简单后缀SDTS和自下而上翻译器230
8.3.1 后缀翻译230
8 3.2 IF-THEN-ELSE控制语句231
8.3.3 函数调用232
8.4 抽象语法树的构造232
8.4.2 AST的拓广235
8 4.1 自下而上构造AST235
8.5 属性文法236
8.5 L属性文法237
8.5.2 S属性文法237
8.6 中间代码形式238
8.6.1 逆波兰表示法238
8.6.2 逆波兰表示法的推广238
8.6.3 四元式240
8.6.4 三元式241
8.7 属性翻译文法的应用242
8.7.1 综合属性与自下而上定值242
8.7.2 继承属性和自上而下定值243
8.7.3 布尔表达式到四元式的翻译244
8.7.4 条件语句的翻译245
8.7.5 迭代语句的翻译247
8.8 小结249
习题八249
9.1 数据区和属性字252
第九章 运行时的存储组织与管理252
9.2 基本数据类型的存储分配254
9.3 数组的存储?254
9.3.1 单块存储方式254
9.3.2 信息向量与数组分配程序256
9.3.3 多块存储方式257
9.4 记录结构的存储分配258
9.5 参数传递方式及其实现259
9.5.2 传值260
9.5.1 换名260
9.5.3 传地址261
9.5.4 传结果261
9.5.5 数组名用做实参261
9.5 6 过程名用做实参261
9.6 栈式存储分配方法262
9.6.1 概述262
9.6.2 现行DISPLAY和现行数据区263
9.6.3 标识符的作用域265
9.6.4 分程序的入口和出口工作266
9.6.5 过程调用时的存储管理267
9.7 堆式存储分配方法270
9.8 临时工作单元的存储分配271
9.9 小结275
习题九275
第十章 符号表的组织和查找277
10.1 符号表的一般组织形式277
10.2 符号表中的数据278
10.3.1 线性查找279
10.3 符号表的构造与查找279
10.3.2 折半法280
10.3.3 杂凑技术281
10.4 分程序结构的符号表284
10.5 小结286
习题十286
第十一章 优化288
11.1 基本块及其求法288
11.2 优化举例290
11.3 利用变量的定义点进行优化293
11.3.1 变量的定义点293
11.3.2 循环中不变式的外提294
11.3.3 运算强度削弱294
11.3.4 公共表达式的消除294
11.3.5 常量合并295
11.4 循环优化296
11.5 借助DAG进行优化297
11.6 并行分支的优化298
11.7 窥孔优化300
11.8 小结300
习题十一300
第十二章 代码生成302
12.1 假想的计算机模型302
12.2 从四元式生成代码303
12.3 从三元式生成代码305
12.4 从树型表示生成代码308
12.6 寄存器的分配311
12.5 从逆波兰表示生成代码311
12.7 小结312
习题十二312
第十三章 词法分析器生成工具LEX314
13.1 LEX简介314
13.2 LEX源文件的格式316
13.2.1 模式317
13.2.2 定义部分319
13.2.3 规则部分320
13.2.4 用户代码部分321
13.3 LEX的工作原理321
13.4 yylex()函数的匹配原则322
13.5 识别模式后处理323
13.6 条件模式326
13.7 FLEX的命令选项327
13.8 举例328
习题十三329
14.1 YACC简介330
第十四章 语法分析器生成工具YACC330
14.2 YACC源文件的格式334
14.2.1 单词和非终结符334
14.2.2 定义部分335
14.2.3 语法规则部分342
14.3 语义定义343
14.3.1 单词语义值的计算343
14.3.2 非终结符语义值的计算344
14.3.3 在规则中部的语义动作346
14.4 归约-归约冲突和上下文相关性的处理348
14.5 出错处理和恢复350
14.6 输出分析器的调试352
14.7 YACC和LEX的接口353
14.8 BYACC的命令选项354
14.9 举例355
习题十四361
习题解答363
参考文献440