图书介绍
编译原理【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- 陈意云,张昱编著 著
- 出版社: 北京:高等教育出版社
- ISBN:7040133679
- 出版时间:2003
- 标注页数:382页
- 文件大小:15MB
- 文件页数:394页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章编译器概述1
目 录1
1.1词法分析2
1.2语法分析2
1.3语义分析4
1.4中间代码生成5
1.5代码优化6
1.6代码生成6
1.8错误诊断和报告7
1.7符号表管理7
1.9阶段的分组9
习题19
第2章词法分析10
2.1词法记号及属性10
2.1.1词法记号、模式、词法单元11
2.1.2词法记号的属性12
2.2.1 串和语言13
2.1.3词法错误13
2.2词法记号的描述与识别13
2.2.2正规式15
2.2.3正规定义16
2.2.4状态转换图17
2.3有限自动机20
2.3.1不确定的有限自动机21
2.3.2确定的有限自动机22
2.3.3 NFA到DFA的变换23
2.3.4 DFA的化简27
2.4从正规式到有限自动机29
2.5词法分析器的生成器32
习题236
第3章语法分析39
3.1上下文无关文法39
3.1.1上下文无关文法的定义39
3.1.2推导41
3.1.3分析树43
3.1.4二义性43
3.2语言和文法44
3.2.1正规式和上下文无关45
文法的比较45
3.2.2分离词法分析器的理由45
3.2.3验证文法产生的语言46
3.2.4适当的表达式文法46
3.2.5消除二义性47
3.2.6消除左递归49
3.2.7提左因子50
3.2.8非上下文无关的语言结构51
3.2.9形式语言鸟瞰52
3.3自上而下分析53
3.3.1 自上而下分析的一般方法54
3.3.2 LL(1)文法55
3.3.3递归下降的预测分析56
3.3.4非递归的预测分析58
3.3.5构造预测分析表60
3.3.6预测分析的错误恢复62
3.4自下而上分析65
3.4.1 归约65
3.4.2句柄66
3.4.3用栈实现移进—归约分析67
3.4.4移进—归约分析的冲突69
3.5 LR分析器70
3.5.1 LR分析算法71
3.5.2 LR文法和LR分析74
方法的特点74
3.5.3构造SLR分析表75
3.5.4构造规范的LR分析表83
3.5.5构造LALR分析表87
3.5.6非LR的上下文无关结构90
3.6.1使用文法以外的信息来解决92
分析动作的冲突92
3.6二义文法的应用92
3.6.2特殊情况产生式引起的94
二义性94
3.6.3 LR分析的错误恢复95
3.7分析器的生成器97
3.7.1分析器的生成器Yacc97
3.7.2用Yacc处理二义文法100
3.7.3 Yacc的错误恢复103
习题3105
第4章语法制导的翻译111
4.1语法制导的定义111
4.1.1语法制导定义的形式111
4.1.2综合属性113
4.1.3继承属性113
4.1.4属性依赖图114
4.1.5属性计算次序115
4.2 S属性定义的自下而上计算116
4.2.2构造语法树的语法制导定义117
4.2.1语法树117
4.2.3 S属性的自下而上计算119
4.3L属性定义的自上而下计算121
4.3.1 L属性定义122
4.3.2翻译方案122
4.3.3预测翻译器的设计126
4.3.4用综合属性代替继承属性128
4.4L属性的自下而上计算129
4.4.1删除翻译方案中嵌入的动作129
4.4.2分析栈上的继承属性130
4.4.3模拟继承属性的计算132
4.5递归计算135
4.5.1 自左向右遍历136
4.5.2其他遍历方法137
4.5.3多次遍历138
习题4140
第5章类型检查143
5.1.1引言144
5.1类型在程序设计语言中的作用144
5.1.2执行错误和安全语言145
5.1.3类型化语言的优点147
5.2描述类型系统的语言148
5.2.1定型断言149
5.2.2定型规则150
5.2.3类型检查和类型推断151
5.3简单类型检查器的说明151
5.3.1一个简单的语言152
5.3.2类型系统152
5.3.3类型检查154
5.3.4类型转换156
*5.4多态函数157
5.4.1为什么要使用多态函数157
5.4.2类型变量158
5.4.3一个含多态函数的语言160
5.4.4代换、实例和合一161
5.4.5多态函数的类型检查162
5.5类型表达式的等价167
5.5.1类型表达式的结构等价168
5.5.2类型表达式的名字等价169
5.5.3记录类型170
5.5.4类型表示中的环171
5.6函数和算符的重载172
5.6.1子表达式的可能类型集合172
5.6.2缩小可能类型的集合174
习题5175
第6章运行时存储空间的组织181
和管理181
6.1局部存储分配策略181
6.1.1过程182
6.1.2名字的作用域和绑定182
6.1.3活动记录183
6.1.4局部数据的安排184
6.1.5程序块185
6.2.1运行时内存的划分187
6.2全局存储分配策略187
6.2.2静态分配188
6.2.3栈式分配190
6.2.4堆式分配196
6.3非局部名字的访问197
6.3.1无过程嵌套的静态作用域198
6.3.2有过程嵌套的静态作用域198
6.3.3动态作用域202
6.4.1值调用203
6.4参数传递203
6.4.2引用调用204
6.4.3复写-恢复调用204
6.4.4换名调用205
习题6206
第7章中间代码生成215
7.1 中间语言215
7.1.1后缀表示215
7.1.2图形表示216
7.1.3三地址代码217
7.2声明语句219
7.2.1过程中的声明219
7.2.2作用域信息的保存219
7.2.3记录的域名222
7.3赋值语句223
7.3.1符号表中的名字223
7.3.2临时名字的重新使用224
7.3.3数组元素的地址计算225
7.3.4数组元素地址计算的226
翻译方案226
7.3.5类型转换230
7.4布尔表达式和控制流语句231
7.4.1布尔表达式的翻译232
7.4.2控制流语句的翻译233
7.4.3布尔表达式的控制流翻译235
7.4.4开关语句的翻译237
7.4.5过程调用的翻译240
习题7241
第8章代秒生成245
8.1代码生成器设计中的问题245
8.1.1 目标程序245
8.1.2指令选择246
8.1.3寄存器分配247
8.1.4计算次序选择247
8.2.1 目标机器的指令系统248
8.2 目标机器248
8.2.2指令的代价249
8.3基本块和流图251
8.3.1基本块251
8.3.2基本块的变换253
8.3.3流图254
8.3.4下次引用信息255
8.4一个简单的代码生成器256
8.4.1 寄存器描述和地址描述256
8.4.2代码生成算法257
8.4.3寄存器选择函数258
8.4.4为变址和指针语句产生代码259
8.4.5条件语句260
习题8261
*第9章代码优化269
9.1优化的主要种类269
9.1.1代码改进变换的标准269
9.1.2公共子表达式删除272
9.1.3复写传播273
9.1.4死代码删除274
9.1.5代码外提275
9.1.6强度削弱和归纳变量删除275
9.1.7优化编译器的组织276
9.2流图中的循环278
9.2.1必经结点278
9.2.2 自然循环279
9.2.4可归约流图280
9.2.3前置结点280
9.3全局数据流分析介绍281
9.3.1点和路径282
9.3.2到达-定值283
9.3.3可用表达式286
9.3.4活跃变量分析289
9.4代码改进变换290
9.4.1公共子表达式删除291
9.4.2复写传播292
9.4.3寻找循环不变计算294
9.4.4代码外提294
9.4.5归纳变量删除297
习题9300
第10章编译系统和运行系统306
10.1 C语言的编译系统306
10.1.1预处理器307
10.1.2汇编器308
10.1.3连接器310
10.1.4目标文件的格式311
10.1.5符号解析313
10.1.6静态库314
10.1.7可执行目标文件及装入316
10.1.8动态连接317
10.1.9处理目标文件的一些工具319
10.2 Java语言的运行系统319
10.2.1 Java虚拟机语言简介320
10.2.2 Java虚拟机321
10.2.3即时编译器322
*10.3无用单元收集324
10.3.1标记和清扫325
10.3.2引用计数326
10.3.3拷贝收集327
10.3.4分代收集328
10.3.6编译器与收集器之间330
的相互影响330
10.3.5渐增式收集330
习题10334
*第11章 面向对象语言的编译337
11.1面向对象语言的概念337
11.1.1对象和对象类337
11.1.2继承338
11.1.3信息封装341
11.2方法的编译341
11.3继承的编译方案344
11.3.1单一继承的编译方案345
11.3.2重复继承的编译方案347
习题11352
*第12章 函数式语言的编译355
12.1 函数式程序设计语言简介355
12.1.1语言构造355
12.1.2参数传递机制357
出现358
12.1.3变量的自由出现和约束358
12.2函数式语言的编译简介360
12.2.1几个受启发的例子360
12.2.2编译函数362
12.2.3环境与约束363
12.3抽象机的系统结构364
12.3.1抽象机的栈365
12.3.2抽象机的堆366
12.3.3名字的寻址366
12.3.4约束的建立368
12.4指令集和编译369
12.4.1表达式369
12.4.2变量的引用性出现371
12.4.3函数定义372
12.4.4函数应用373
12.4.5构造和计算闭包376
12.4.6 letrec表达式和局部变量378
习题12380
参考文献382
热门推荐
- 580219.html
- 818597.html
- 1602961.html
- 1488947.html
- 3119270.html
- 3464408.html
- 1123450.html
- 82562.html
- 437065.html
- 3676937.html
- http://www.ickdjs.cc/book_305000.html
- http://www.ickdjs.cc/book_2932664.html
- http://www.ickdjs.cc/book_2155393.html
- http://www.ickdjs.cc/book_2539215.html
- http://www.ickdjs.cc/book_1095878.html
- http://www.ickdjs.cc/book_2757758.html
- http://www.ickdjs.cc/book_3417562.html
- http://www.ickdjs.cc/book_3892858.html
- http://www.ickdjs.cc/book_2989411.html
- http://www.ickdjs.cc/book_1223360.html