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

- 蒋宗礼,姜守旭编著 著
- 出版社: 北京:高等教育出版社
- ISBN:9787040483864
- 出版时间:2017
- 标注页数:431页
- 文件大小:81MB
- 文件页数:446页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论1
1.1 程序设计语言1
1.2 程序设计语言的翻译4
1.3 编译程序的总体结构8
1.4 编译程序的组织15
1.5 编译程序的生成17
1.6 本章小结22
习题22
第2章 高级语言及其文法24
2.1 语言概述24
2.2 基本定义26
2.3 文法的定义31
2.4 文法的分类40
2.5 CFG的语法树46
2.6 CFG的二义性53
2.7 本章小结57
习题58
第3章 词法分析64
3.1 词法分析器的功能64
3.1.1 单词的分类与表示65
3.1.2 词法分析器的输出67
3.1.3 源程序的输入缓冲与预处理68
3.1.4 词法分析阶段的错误处理70
3.1.5 词法分析器的位置72
3.2 单词的描述73
3.2.1 正则文法73
3.2.2 正则表达式74
3.2.3 正则表达式与正则文法的等价性77
3.2.4 有穷状态自动机83
3.2.5 状态转换图86
3.2.6 正则表达式转换为状态转换图87
3.3 单词的识别89
3.3.1 有穷状态自动机与单词识别的关系89
3.3.2 单词识别的状态转换图表示93
3.3.3 几种典型的单词识别问题96
3.3.4 状态转换图的实现98
3.3.5 词法分析程序的编写103
3.4 词法分析程序的自动生成106
3.4.1 Lex源程序106
3.4.2 Lex的实现原理111
3.5 本章小结111
习题112
第4章 自顶向下的语法分析118
4.1 语法分析概述118
4.2 自顶向下的语法分析面临的问题与文法的改造119
4.2.1 自顶向下分析面临的问题120
4.2.2 对上下文无关文法的改造123
4.2.3 LL(1)文法127
4.3 预测分析法131
4.3.1 预测分析器的构成131
4.3.2 预测分析表的构造134
4.3.3 预测分析中错误的处理134
4.4 递归下降分析法137
4.4.1 递归下降分析法的基本思想137
4.4.2 语法图和递归子程序法138
4.4.3 基于语法图的语法分析器的工作方式140
4.4.4 语法图的化简与实现140
4.4.5 递归子程序法的实现步骤143
4.5 本章小结143
习题144
第5章 自底向上的语法分析147
5.1 自底向上的语法分析概述147
5.1.1 移进-归约分析148
5.1.2 优先法150
5.1.3 状态法151
5.2 算符优先分析法154
5.2.1 算符优先文法154
5.2.2 算符优先矩阵的构造156
5.2.3 算符优先分析算法160
5.2.4 优先函数163
5.2.5 算符优先分析的出错处理166
5.3 LR分析法168
5.3.1 LR分析算法168
5.3.2 LR(0)分析表的构造172
5.3.3 SLR(1)分析表的构造180
5.3.4 LR(1)分析表的构造183
5.3.5 LALR(1)分析表的构造188
5.3.6 二义性文法的应用195
5.3.7 LR分析中的出错处理199
5.4 语法分析程序的自动生成工具Yacc201
5.4.1 Yacc源程序的结构201
5.4.2 Yacc源程序的声明部分203
5.4.3 Yacc源程序的规则部分204
5.4.4 Yacc源程序的例程部分205
5.4.5 Yacc对二义性文法的处理205
5.4.6 Yacc的出错处理207
5.5 本章小结208
习题209
第6章 语法制导翻译与属性文法213
6.1 语法制导翻译概述213
6.2 语法制导定义215
6.3 属性计算220
6.3.1 依赖图220
6.3.2 属性的计算顺序222
6.3.3 S-属性定义223
6.3.4 L-属性定义223
6.3.5 属性计算示例225
6.4 翻译模式229
6.4.1 翻译模式与语义动作的执行时机229
6.4.2 S-属性定义的自底向上翻译233
6.4.3 L-属性定义的自顶向下翻译236
6.4.4 L-属性定义的自底向上翻译242
6.5 本章小结247
习题247
第7章 语义分析与中间代码生成250
7.1 中间代码的形式250
7.1.1 逆波兰表示250
7.1.2 三地址码251
7.1.3 图表示255
7.2 声明语句的翻译258
7.2.1 类型表达式258
7.2.2 类型等价260
7.2.3 声明语句的文法260
7.2.4 过程内声明语句的翻译260
7.2.5 嵌套过程中声明语句的翻译262
7.2.6 记录的翻译264
7.3 赋值语句的翻译265
7.3.1 简单赋值语句的翻译265
7.3.2 数组元素的寻址266
7.3.3 带有数组引用的赋值语句的翻译268
7.3.4 记录域的访问270
7.4 类型检查271
7.4.1 类型检查的规则271
7.4.2 类型转换272
7.5 控制结构的翻译274
7.5.1 布尔表达式的翻译275
7.5.2 常见控制结构的翻译277
7.5.3 布尔表达式的控制流翻译279
7.5.4 混合模式的布尔表达式翻译281
7.6 回填283
7.6.1 布尔表达式的回填式翻译283
7.6.2 常用控制流语句的回填式翻译286
7.6.3 for循环语句的回填式翻译291
7.6.4 repeat语句的回填式翻译292
7.6.5 break、continue及goto语句的翻译292
7.7 switch语句的翻译293
7.7.1 switch语句翻译的基本思想293
7.7.2 switch语句的语法制导翻译294
7.8 过程调用和返回语句的翻译296
7.9 输入输出语句的翻译298
7.10 本章小结300
习题300
第8章 符号表管理305
8.1 符号表的作用305
8.2 符号表中存放的信息307
8.2.1 符号表中的名字307
8.2.2 符号表中的属性309
8.2.3 符号的地址属性310
8.3 符号表的组织结构311
8.3.1 符号表的线性表实现311
8.3.2 符号表的散列表实现312
8.4 符号表与作用域315
8.4.1 程序块结构的符号表316
8.4.2 程序块结构符号表的其他实现318
8.4.3 C语言的符号表321
8.4.4 嵌套过程的符号表322
8.5 本章小结323
习题323
第9章 运行时的存储组织325
9.1 与存储组织有关的源语言概念与特征325
9.1.1 名字及其绑定325
9.1.2 声明的作用域326
9.1.3 过程及其活动329
9.1.4 参数传递方式330
9.1.5 对变长数据及用户自由申请空间的支持332
9.2 存储组织333
9.2.1 运行时内存的划分333
9.2.2 活动记录334
9.2.3 局部数据的组织335
9.2.4 全局存储分配策略335
9.3 静态存储分配336
9.4 栈式存储分配338
9.4.1 调用序列和返回序列339
9.4.2 C语言的过程调用和过程返回340
9.4.3 栈中的可变长数据341
9.5 栈中非局部数据的访问342
9.5.1 无嵌套过程的静态作用域的实现343
9.5.2 包含嵌套过程的静态作用域的实现344
9.5.3 动态作用域的实现349
9.6 本章小结350
习题351
第10章 代码优化354
10.1 优化的种类354
10.1.1 公共子表达式删除355
10.1.2 复制传播357
10.1.3 无用代码删除357
10.1.4 代码外提358
10.1.5 强度削弱和归纳变量删除358
10.2 控制流分析360
10.2.1 基本块360
10.2.2 流图361
10.2.3 循环362
10.3 数据流分析365
10.3.1 数据流方程的一般形式365
10.3.2 到达-定义分析366
10.3.3 活跃变量分析368
10.3.4 可用表达式分析369
10.4 局部优化371
10.4.1 基本块的DAG表示371
10.4.2 局部公共子表达式删除372
10.4.3 无用代码删除373
10.4.4 代数恒等式的使用373
10.5 循环优化374
10.5.1 循环不变计算的检测374
10.5.2 代码外提375
10.5.3 归纳变量删除和强度削弱377
10.5.4 带有循环不变表达式的归纳变量380
10.6 全局优化381
10.6.1 全局公共子表达式的删除381
10.6.2 复制传播382
10.7 本章小结384
习题385
第11章 代码生成388
11.1 代码生成器设计中的问题388
11.1.1 代码生成器的输入388
11.1.2 目标代码的形式388
11.1.3 指令选择389
11.1.4 寄存器分配389
11.1.5 计算顺序选择390
11.2 目标语言390
11.2.1 目标机模型390
11.2.2 程序和指令的开销391
11.2.3 变量的运行时刻地址392
11.3 一个简单的代码生成器392
11.3.1 后续引用信息393
11.3.2 寄存器描述符与地址描述符394
11.3.3 代码生成算法394
11.3.4 常用三地址码的代码生成396
11.4 寄存器分配与指派397
11.4.1 全局寄存器分配398
11.4.2 引用计数398
11.4.3 外层循环的寄存器指派400
11.5 本章小结400
习题400
附录 “编译原理”课程教学设计403
缩写符号413
词汇索引414
参考文献428
热门推荐
- 2002884.html
- 378970.html
- 2375181.html
- 1600861.html
- 3673764.html
- 2695812.html
- 1203939.html
- 1184041.html
- 1658506.html
- 430947.html
- http://www.ickdjs.cc/book_3507016.html
- http://www.ickdjs.cc/book_294646.html
- http://www.ickdjs.cc/book_1805251.html
- http://www.ickdjs.cc/book_870373.html
- http://www.ickdjs.cc/book_1301540.html
- http://www.ickdjs.cc/book_3454834.html
- http://www.ickdjs.cc/book_3716163.html
- http://www.ickdjs.cc/book_1422660.html
- http://www.ickdjs.cc/book_3446283.html
- http://www.ickdjs.cc/book_526985.html