编译原理PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:何炎祥主编
- 出 版 社:武汉:华中理工大学出版社
- 出版年份:2000
- ISBN:7560921620
- 页数:324 页
第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 从正规文法到FA 48
3.3 正规文法与有穷自动机 48
3.3.2 从FA到正规文法 49
3.4 正规表达式与FA 50
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与LAST 101
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 自下而上构造AST 182
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章 词法分析器生成工具LEX 268
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章 语法分析器生成工具YACC 286
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
- 《第一性原理方法及应用》李青坤著 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《单片机原理及应用》庄友谊 2020
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《计算机组成原理 第2版》任国林 2018
- 《化工原理课程设计》刘建周主编 2018
- 《会计学原理》邵瑞庆主编 2019