图书介绍
编译原理与技术PDF|Epub|txt|kindle电子书版本网盘下载
- 李文生编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302191711
- 出版时间:2009
- 标注页数:398页
- 文件大小:112MB
- 文件页数:412页
- 主题词:编译程序-程序设计
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.1.2 翻译程序3
1.2 编译的阶段和任务4
1.2.1 分析阶段4
1.2.2 综合阶段7
1.2.3 符号表管理9
1.2.4 错误处理10
1.3 编译有关的其他概念11
1.3.1 前端和后端11
1.3.2 “遍”的概念11
1.4 编译程序的伙伴工具13
1.4.1 预处理器13
1.4.2 汇编程序14
1.4.3 连接装配程序16
1.5 编译原理的应用16
习题118
第2章 形式语言与自动机基础19
2.1 语言和文法19
2.1.1 字母表和符号串19
2.1.2 语言20
2.1.3 文法及其形式定义21
2.1.4 推导和短语23
2.1.5 分析树及二义性26
2.1.6 文法变换27
2.2 有限自动机32
2.2.1 确定的有限自动机32
2.2.2 非确定的有限自动机34
2.2.3 具有ε-转移的非确定的有限自动机36
2.2.4 DFA的化简40
2.3 正规文法与有限自动机的等价性43
2.4 正规表达式与有限自动机的等价性46
2.5 正规表达式与正规文法的等价性49
2.5.1 正规定义式50
2.5.2 表示的缩写50
2.5.3 正规表达式转换为等价的正规文法51
习题252
第3章 词法分析54
3.1 词法分析程序与语法分析程序的关系54
3.2 词法分析程序的输入与输出55
3.2.1 输入缓冲区56
3.2.2 词法分析程序的输出58
3.3 记号的描述和识别59
3.3.1 词法与正规文法59
3.3.2 记号的文法60
3.3.3 状态转换图与记号的识别63
3.4 词法分析程序的设计与实现64
3.4.1 文法及状态转换图64
3.4.2 词法分析程序的构造66
3.4.3 词法分析程序的实现67
3.5 软件工具LEX70
3.5.1 LEX源程序71
3.5.2 LEX的工作原理73
习题375
程序设计177
第4章 语法分析78
4.1 语法分析程序78
4.1.1 语法分析程序的地位78
4.1.2 常用的语法分析方法79
4.1.3 语法错误的处理79
4.2 自顶向下分析方法81
4.2.1 递归下降分析81
4.2.2 递归调用预测分析82
4.2.3 非递归预测分析88
4.3 自底向上分析方法95
4.3.1 规范归约97
4.3.2 “移进-归约”方法的实现98
4.4 LR分析方法100
4.4.1 LR分析程序的模型及工作过程100
4.4.2 SLR(1)分析表的构造104
4.4.3 LR(1)分析表的构造113
4.4.4 LALR(1)分析表的构造119
4.4.5 LR分析方法对二义文法的应用124
4.4.6 LR分析的错误处理与恢复129
4.5 软件工具YACC131
4.5.1 YACC源程序131
4.5.2 YACC对二义文法的处理134
4.5.3 用LEX建立YACC的词法分析程序137
4.5.4 YACC内部名称137
习题4137
程序设计2141
第5章 语法制导翻译技术143
5.1 语法制导定义及翻译方案144
5.1.1 语法制导定义145
5.1.2 依赖图147
5.1.3 计算次序149
5.1.4 S属性定义和L属性定义150
5.1.5 翻译方案151
5.2 S属性定义的自底向上翻译152
5.2.1 构造表达式的语法树153
5.2.2 构造语法树的语法制导定义154
5.2.3 S属性定义的自底向上实现156
5.3 L属性定义的自顶向下翻译158
5.3.1 消除翻译方案中的左递归158
5.3.2 预测翻译程序的设计162
5.4 L属性定义的自底向上翻译166
5.4.1 去掉翻译方案中嵌入的动作166
5.4.2 分析栈中的继承属性167
5.4.3 模拟继承属性的计算169
5.4.4 用综合属性代替继承属性172
习题5172
第6章 语义分析176
6.1 语义分析的任务和地位176
6.2 符号表178
6.2.1 符号表的建立和访问时机179
6.2.2 符号表内容180
6.2.3 符号表操作183
6.2.4 符号表组织185
6.3 符号表的建立189
6.3.1 过程中的声明语句190
6.3.2 过程定义的处理191
6.3.3 记录声明的处理193
6.4 类型检查194
6.4.1 类型表达式196
6.4.2 类型等价199
6.5 一个简单类型检查程序的说明205
6.5.1 语言说明205
6.5.2 确定标识符的类型206
6.5.3 表达式的类型检查206
6.5.4 语句的类型检查208
6.5.5 类型转换209
6.6 类型检查有关的其他主题210
6.6.1 函数和运算符的重载210
6.6.2 多态函数213
6.6.3 错误恢复216
习题6216
程序设计3220
第7章 运行环境221
7.1 程序运行时的存储组织221
7.1.1 程序运行空间的划分222
7.1.2 控制栈与活动记录223
7.1.3 作用域及名字绑定225
7.2 存储分配策略226
7.2.1 静态存储分配226
7.2.2 栈式存储分配229
7.2.3 堆式存储分配234
7.3 访问非局部名字235
7.3.1 程序块235
7.3.2 非嵌套过程的静态作用域237
7.3.3 嵌套过程的静态作用域238
7.3.4 动态作用域244
7.4 参数传递机制245
7.4.1 传值调用246
7.4.2 引用调用247
7.4.3 复制恢复249
7.4.4 传名调用251
习题7251
第8章 中间代码生成256
8.1 中间代码形式256
8.1.1 图形表示257
8.1.2 三地址代码258
8.2 赋值语句的翻译262
8.2.1 仅涉及简单变量的赋值语句263
8.2.2 涉及数组元素的赋值语句266
8.2.3 记录中域的访问271
8.3 布尔表达式的翻译271
8.3.1 翻译布尔表达式的方法271
8.3.2 数值表示法272
8.3.3 控制流表示法273
8.4 控制语句的翻译280
8.5 标号和转移语句的翻译286
8.6 CASE语句的翻译288
8.7 过程调用语句的翻译290
习题8292
第9章 代码生成296
9.1 代码生成概述296
9.1.1 代码生成程序的位置296
9.1.2 代码生成程序设计有关的问题297
9.2 基本块与流图299
9.3 一个简单的代码生成程序302
9.3.1 目标机器302
9.3.2 下次引用信息304
9.3.3 代码生成算法306
习题9312
第10章 代码优化314
10.1 代码优化概述314
10.1.1 代码优化程序的功能和位置314
10.1.2 代码优化的主要种类315
10.2 基本块优化315
10.2.1 常数合并及常数传播315
10.2.2 删除公共表达式317
10.2.3 复制传播318
10.2.4 削弱计算强度319
10.2.5 改变计算次序319
10.3 dag在基本块优化中的应用319
10.3.1 基本块的dag表示320
10.3.2 基本块的dag构造算法321
10.3.3 dag的应用323
10.3.4 dag构造算法的进一步讨论326
10.4 循环优化328
10.4.1 循环展开329
10.4.2 代码外提330
10.4.3 削弱计算强度330
10.4.4 删除归纳变量332
10.5 窥孔优化333
10.5.1 删除冗余的传送指令333
10.5.2 删除死代码333
10.5.3 控制流优化334
10.5.4 强度削弱及代数化简335
习题10335
第11章 编译程序的实现338
11.1 实现方法338
11.1.1 实现语言338
11.1.2 自展法339
11.1.3 移植法340
11.1.4 编译程序构造举例341
11.2 PL/0编译程序342
11.2.1 PL/0语言343
11.2.2 PL/0编译程序的结构346
11.2.3 PL/0编译程序的词法分析347
11.2.4 PL/0编译程序的语法分析349
11.2.5 PL/0编译程序的出错处理351
11.2.6 PL/0编译程序的代码生成及执行环境353
11.2.7 PL/0程序编译和运行示例357
11.3 GCC编译程序360
11.3.1 GCC简介360
11.3.2 GCC的系统结构与流程361
11.3.3 GCC的分析程序362
11.3.4 GCC的中间语言及中间代码生成364
11.3.5 GCC的代码优化369
11.3.6 GCC的代码生成371
11.4 编译实践371
11.4.1 Pascal-S语言说明371
11.4.2 课程设计要求及说明379
11.4.3 编译程序的测试380
附录 PL/0编译程序源程序382
参考文献398