图书介绍
编译原理教程pdf电子书版本下载
- 寿永熙主编 著
- 出版社: 呼和浩特:内蒙古大学出版社
- ISBN:7810746871
- 出版时间:2004
- 标注页数:290页
- 文件大小:11MB
- 文件页数:304页
- 主题词:编译程序-程序设计-高等学校-教材
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.2什么是编译程序 2
1.2编译程序结构 3
1.2.1编译程序的逻辑结构 3
1.2.2编译程序在计算机科学中的地位 5
1.3编译程序分遍 6
1.4编译程序生成的方法 6
1.4.1编译程序用什么语言编写 6
1.4.2编译程序生成的方法 7
1.5编译技术的应用 9
1.6编译程序设计经过的阶段 9
小结 10
习题 10
第二章 文法和形式语言 11
2.1文法和形式语言的概念 11
2.2符号串与符号串运算 11
2.2.1字母表和符号串 12
2.2.2符号串运算 12
2.3文法和形式语言定义 16
2.3.1文法和推导的定义 16
2.3.2形式语言的定义 20
2.3.3递归产生式与递归文法 22
2.4句型分析 23
2.4.1规范推导 23
2.4.2归约 26
2.4.3短语、直接短语、句柄、素短语 27
2.5语法树与文法的二义性 30
2.5.1语法树和抽象法树 31
2.5.2语法树与短语、直接短语和句柄的关系 33
2.5.3语法树构造归约 36
2.5.4文法的二义性 37
2.6文法的实用限制 41
2.6.1有害产生式 41
2.6.2多余产生式 42
2.6.3直接左递归产生式 45
2.6.4 ε—产生式 47
2.6.5特殊产生式 49
2.7文法其它表示的方法 50
2.7.1扩充的BNF表示法 51
2.7.2语法图 52
2.8文法和语言的分类 55
2.8.1 0型文法与0型语言 55
2.8.2 1型文法与1型语言 56
2.8.3 2型文法与2型语言 57
2.8.4 3型文法与3型语言 57
小结 60
习题 61
第三章 自动机理论基础 64
3.1有穷自动机的基本概念 64
3.1.1确定的有穷自动机(DFA) 65
3.1.2非确定的有穷自动机(NFA) 68
3.2 NFA到DFA的等价变换 71
3.3 ε—NFA转换成DFA的方法 74
3.3.1 ε—NFA的定义 75
3.3.2子集构造矩阵算法 77
3.4 DFA的最小化 79
3.5有穷自动机的代码程序实现 82
3.6正规表达式与自动机 85
3.6.1正规表达式与正规集 85
3.6.2正则文法构造相应的正规表达式 86
3.6.3正规表达式构造有穷自动机 88
3.7正规文法与有穷自动机 91
3.8语法图与有穷自动机 97
小结 100
习题 101
第四章 词法分析 104
4.1扫描器的作用及地位 104
4.2设计扫描器考虑的问题 106
4.3扫描器的输出及结构 107
4.4扫描器的设计与实现 113
4.5扫描器的自动生成—LEX软件工具 119
4.5.1 LEX源程序结构 119
4.5.2 LEX编译程序的执行过程 122
4.5.3 LEX的目标程序 122
小结 122
习题 124
第五章 语法分析 125
5.1语法分析概述 125
5.2递归子程序法 125
5.2.1什么是回溯 126
5.2.2产生回溯的原因 128
5.2.3递归子程序法 132
5.3 LL (1)分析法 133
5.3.1什么是LL (1)分析法 133
5.3.2构造FIRST集和FOLLOW集的方法 135
5.3.3预测分析表 136
5.3.4 LL(1)分析器的工作原理 138
5.4算符优先分析法 139
5.4.1算符优先文法的定义 141
5.4.2构造FIRSTVT集和LASTVT集的方法 143
5.4.3优先表的构造方法 146
5.4.4优先函数 147
5.4.5算符优先分析算法 150
5.5 LR分析法 152
5.5.1 LR分析器引述 152
5.5.2 LR (0)分析法 154
5.5.3 SLR (1)分析法 158
5.5.4 LR(1)分析法 160
5.5.5 LALR (1)分析法 164
5.6语法分析器的自动生成—YACC软件工具 166
小结 167
习题 168
第六章 语法制导翻译与中间代码生成 170
6.1属性和属性文法 170
6.1.1属性文法 170
6.1.2综合和继承属性 173
6.1.3语法分析时属性的计算 176
6.1.4语法中属性计算的相关性 178
6.2语法制导翻译的概念 179
6.3中间代码的形式 183
6.3.1中间代码的含义 183
6.3.2逆波兰表示法 184
6.3.3三元式和树结构表示 185
6.3.4四元式表示法 186
6.4简单表达式及赋值语句的语法制导翻译 187
6.4.1算术表达式的逆波兰式语法制导翻译 187
6.4.2算术表达式的四元式语法制导翻译 187
6.4.3控制语句中的布尔表达式的翻译 190
6.5控制语句的翻译 195
6.5.1标号与goto语句的翻译 195
6.5.2 IF语句与WHILE语句的翻译 196
6.5.3 FOR语句的翻译 200
6.5.4 CASE语句的翻译 203
6.5.5过程调用语句的翻译 204
6.6数组定义及其引用的翻译 206
6.6.1数组元素的地址计算 206
6.6.2数组说明的处理 207
6.6.3赋值语句中数组元素的翻译 208
6.7说明语句的翻译 210
小结 211
习题六 212
第七章 符号表 215
7.1符号表及其应用 215
7.1.1什么是符号表 215
7.1.2静态表和动态表 216
7.1.3存储分配与符号表组织 218
7.2符号表的建立与查找 219
7.2.1 PASCAL符号表的建立与查找 219
7.2.2 ALGOL符号表的建立与查找 220
7.2.3 FORTRAN符号表的建立与查找 223
小结 223
习题 224
第八章 运行时的存储组织与分配 225
8.1程序运行时的存储组织与结构 225
8.1.1活动记录 225
8.1.2名字的作用域和绑定 226
8.1.3运行时内存的划分 226
8.2静态存储分配 227
8.3动态存储分配 229
8.3.1栈式存储分配 229
8.3.2简单的栈式存储分配的实现 230
8.3.3嵌套过程语言的栈式实现 232
8.3.4堆式存储分配 236
8.4参数传递实现方法 237
8.4.1传值 237
8.4.2传地址 238
8.4.3换名调用 238
8.4.4传结果 239
8.4.5过程名用作实参 239
小结 242
习题 242
第九章 代码优化 243
9.1代码优化基本思想 243
9.1.1合并常数 243
9.1.2消除多余运算 244
9.1.3循环优化 246
9.1.4下标变量的优化 249
9.2局部优化 251
9.2.1基本块的概念 251
9.2.2基本块的划分算法 252
9.2.3基本块表示的方法 253
9.2.4基本块的优化处理实例 257
小结 258
习题 259
第十章 目标代码生成 261
10.1虚拟计算机模型 261
10.2代码生成技术基础 263
10.3中间代码生成目标代码 265
10.3.1逆波兰式生成目标代码 265
10.3.2四元式生成目标代码 267
10.4语句的目标代码生成 268
10.4.1赋值语句的翻译 269
10.4.2条件语句的翻译 272
10.4.3循环语句的翻译 273
10.4.4过程和函数调用的翻译 275
小结 277
习题 278
第十一章 出错处理 279
11.1编译出错处理程序处理出错的种类 279
11.2词法分析阶段的错误处理 280
11.3语法分析阶段的错误处理 282
11.4语义错误处理 286
小结 289
习题 289
参考文献 290