图书介绍
编译原理pdf电子书版本下载
- 张雪峰,姚学武,尚文,张稼编著 著
- 出版社: 北京:研究出版社
- ISBN:9787801683519
- 出版时间:2008
- 标注页数:271页
- 文件大小:38MB
- 文件页数:281页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论 1
1.1什么是编译程序 1
编译的分析-综合模型 2
编译器的前驱与后继 3
1.2编译器的各阶段 4
词法分析 4
语法分析 4
语义分析 5
中间代码生成 6
代码优化 6
符号表管理 7
错误检测与报告 7
1.3编译预处理 8
预处理器 8
汇编器 8
装配器和连接编辑器 8
1.4编译器各阶段的分组 9
前端与后端 9
编译的遍 9
减少编译的遍数 9
1.5编译器的构造工具 10
1.6程序设计语言范型 10
强制(命令)型语言 11
函数型语言 11
逻辑(规则)型语言 11
面向对象语言 11
面向数据结构型语言 12
混合型语言 12
基于多目标机的多源语言 12
小结 12
综合练习一 12
一、选择题 12
二、填空题 13
三、应用题 13
第2章 形式语言与自动机理论基础 15
2.1文法与语言 15
字母表、串和语言 15
文法与语言的引入 16
形式定义 17
文法与语言的分类 18
2.2正规文法与有穷自动机 20
正规集与正规文法 20
有穷自动机 21
正规文法到有穷自动机的转换 24
正规文法与正规式 25
2.3正规式、NFA和DFA之间的等价转换 26
从正规式构造NFA 27
NFA的确定化 29
DFA的最小化 32
DFA到正规式的转换 34
2.4上下文无关文法与下推自动机 36
上下文无关文法 36
上下文无关文法的变换 37
语法树与文法的二义性 39
下推自动机 40
小结 43
综合练习二 43
一、选择题 43
二、填空题 44
三、应用题 44
第3章 词法分析 48
3.1词法分析概述 48
词法分析阶段的必要性 49
记号、模式和词素 49
单词的机内表示 50
词法错误 51
输入缓冲 51
3.2词法分析程序的设计方法 53
单词符号的分类与识别 53
状态转换图 55
扫描器的任务 57
扫描器的设计 58
3.3词法分析器的自动构造原理 63
Lex语言的基本语句与功能 63
Lex输入文件的格式 66
Lex编译器原理 70
小结 71
综合练习三 72
一、选择题 72
二、填空题 72
三、应用题 72
四、实验题 73
第4章 语法分析 74
4.1语法分析概述 74
自顶向下的语法分析 74
自底向上的语法分析 75
推导 76
推导过程的表示——分析树 77
文法的二义性 78
消除二义性 80
消除左递归 83
消除回溯 84
语法分析的错误处理 85
错误恢复策略 86
4.2自顶向下的语法分析 87
递归下降分析法 87
预测语法分析法 88
状态转换图 88
非递归的预测分析法 89
FIRST集合、FOLLOW集合和SELECT集合 90
预测分析表的构造 93
LL(1)文法及其分析法 94
预测分析的错误恢复 96
4.3自底向上的语法分析 97
句柄 98
句柄裁剪 99
用栈实现移进-归约分析 100
活前缀 101
移进-归约分析过程中的冲突 101
4.4算符优先分析法 103
算符优先文法的定义 104
算符优先关系表的构造 105
算符优先分析算法的设计 106
优先函数的构造 109
算符优先分析中的错误恢复 111
算符优先分析法的局限性 113
4.5 LR分析方法 113
LR语法分析概述 114
LR文法与LR分析方法的特点 116
LR(0)分析法 116
SLR(1)分析法 121
LR(1)分析法 125
LALR(1)分析法 128
LALR(1)语法分析表的有效构造 132
LR语法分析表的压缩 133
4.6二义性文法的应用 135
使用优先级和结合规则来解决分析动作的冲突 136
悬空else的二义性 137
特例产生式引起的二义性解决 139
LR语法分析中的错误恢复 140
4.7语法分析器的生成器 141
语法分析器的生成器YACC 142
用YACC处理二义性文法 144
用Lex建立YACC的词法分析器 145
YACC的错误恢复 145
小结 146
综合练习四 146
一、选择题 146
二、填空题 147
三、应用题 147
四、实验题 149
第5章 语法制导翻译与中间代码生成 151
5.1语法制导翻译概述 151
语法制导翻译的形式 152
综合属性 152
继承属性 153
依赖图 154
计算次序 155
5.2 S属性的自下而上计算 156
语法树 156
构造表达式的语法树 156
构造语法树的语法制导翻译 157
表达式的无环有向图 158
S属性的自下而上计算 159
5.3 L属性文法 160
L属性文法的定义 161
翻译方案 161
5.4自顶向下的语法制导翻译 162
删除翻译方案的左递归 162
预测翻译器的设计 164
5.5继承属性的自下而上计算 165
删除翻译方案中嵌入的动作 165
分析栈上的继承属性 166
模拟继承属性的计算 167
用综合属性代替继承属性 169
递归次数不确定的语法制导翻译 169
5.6递归计算 170
自左向右遍历 170
其他遍历方法 170
5.7语法制导翻译的分析 171
属性的递归计算 172
强无环的语法制导翻译 172
5.8中间语言 173
图表示 173
三地址码 174
三地址语句的类型 174
语法制导翻译生成三地址码 175
三地址语句与四元式 176
表示方法比较与间址的使用 177
5.9声明语句的翻译 177
过程中的声明语句 178
跟踪作用域信息 178
记录中的域名 179
5.10赋值语句的翻译 180
简单算术表达式及赋值语句 180
临时变量的重用 180
定址数组元素 181
数组元素寻址的翻译方案 182
赋值语句中的类型转换 184
记录域的访问 184
5.11布尔表达式的翻译 185
翻译布尔表达式的方法 185
用数值表示的布尔表达式的翻译 185
短路代码 185
控制流语句 186
用控制流表示布尔表达式的翻译 187
混合模式的布尔表达式 188
5.12分支语句的翻译 189
小结 190
综合练习五 191
一、选择题 191
二、填空题 191
三、应用题 191
四、实验题 192
第6章 运行时的存储空间组织 193
6.1程序运行的基本概念 193
过程与函数 193
活动树 194
控制栈 194
声明的作用域 195
名字的结合 195
6.2存储组织 196
运行时内存的划分 196
活动记录 197
编译时的局部数据安排 197
6.3存储分配策略 199
静态存储分配策略 199
栈式存储分配策略 201
悬空引用 203
堆式存储分配策略 204
6.4访问非局部变量 207
程序块 207
无过程嵌套的静态作用域 209
有过程嵌套的静态作用域 210
动态作用域 212
6.5参数传递 213
按值调用 213
引用调用 215
复写-恢复调用 215
换名调用 216
6.6面向对象语言的存储分配策略 216
面向对象语言的动态存储管理 216
Java语言的存储分配 217
小结 219
综合练习六 219
一、选择题 219
二、填空题 219
三、应用题 220
四、实验题 221
第7章 代码优化 222
7.1优化技术简介 222
7.2局部优化 224
基本块的划分 224
基本块的变换 225
基本块DAG表示 225
7.3循环优化 226
程序流图 226
循环 227
代码外提 228
强度削弱 230
删除归纳变量 231
7.4数据流分析与全局优化 234
主要的概念 234
数据流方程的一般形式 235
到达-定值数据流方程 235
小结 239
综合练习七 239
一、选择题 239
二、填空题 240
三、应用题 240
四、实验题 241
第8章 代码生成 242
8.1代码生成器设计中的问题 242
代码生成器的输入 242
目标程序 242
存储管理 242
指令选择 243
寄存器分配 243
计算次序选译 244
代码生成途径 244
8.2目标机器 244
8.3基本块和流图 246
基本块 246
基本块的变换 247
流图 248
8.4下次引用信息 249
计算下次引用信息 249
临时名字的存储分配 250
8.5一个简单的代码生成器 250
寄存器描述和地址描述 251
代码生成算法 251
函数getreg 251
为其他类型的语句产生代码 252
条件语句 252
小结 253
综合练习八 253
一、选择题 253
二、填空题 254
三、应用题 254
四、实验题 254
第9章 面向对象的编译技术 256
9.1面向对象语言的基本概念 256
抽象 256
对象和对象类 256
继承 257
信息封装 259
9.2方法的编译 260
9.3继承的编译方案 262
单一继承的编译 262
多重继承的编译 264
小结 268
综合练习九 268
一、选择题 268
二、填空题 269
三、应用题 269
四、实验题 269
参考文献 270
内容简介 271