编译原理 第2版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:张素琴等编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2005
- ISBN:7302089795
- 页数:456 页
目录 1
第1章 引论 1
1.1 什么是编译程序 1
1.2 编译过程和编译程序的结构 2
1.2.1 编译过程概述 2
1.2.2 编译程序的结构 5
1.2.3 编译阶段的组合 6
1.3 解释程序和一些软件工具 7
1.3.1 解释程序 7
1.3.2 处理源程序的软件工具 8
1.4 程序设计语言范型 10
练习 11
第2章 PL/0编译程序的实现 13
2.1 PL/0语言描述 13
2.1.1 PL/0语言的语法描述图 13
2.1.2 PL/0语言文法的EBNF表示 15
2.2 PL/0编译程序的结构 16
2.3 PL/0编译程序的词法分析 18
2.4 PL/0编译程序的语法语义分析 20
2.5 PL/0编译程序的目标代码结构和代码生成 23
2.6 PL/0编译程序的语法错误处理 25
2.7 PL/0编译程序的目标代码解释执行时的存储分配 27
练习 30
第3章 文法和语言 32
3.1 文法的直观概念 32
3.2 符号和符号串 33
3.3 文法和语言的形式定义 34
3.4 文法的类型 38
3.5 上下文无关文法及其语法树 39
3.6 句型的分析 42
3.6.2 自下而上的分析方法 43
3.6.1 自上而下的分析方法 43
3.6.3 句型分析的有关问题 44
3.7 有关文法实用中的一些说明 45
3.7.1 有关文法的实用限制 45
3.7.2 上下文无关文法中的ε规则 46
3.8 典型例题及解答 46
练习 47
第4章 词法分析 50
4.1 词法分析程序的设计 50
4.1.1 词法分析程序与语法分析程序的接口方式 50
4.1.2 词法分析程序的输出 50
4.1.3 将词法分析工作分离的考虑 51
4.2 单词的描述工具 52
4.2.1 正规文法 52
4.2.2 正规式 52
4.2.3 正规文法和正规式的等价性 53
4.3 有穷自动机 55
4.3.1 确定的有穷自动机(DFA) 55
4.3.2 不确定的有穷自动机(NFA) 56
4.3.3 NFA转换为等价的DFA 57
4.3.4 确定有穷自动机的化简 60
4.4 正规式和有穷自动机的等价性 61
4.5 正规文法和有穷自动机的等价性 65
4.6 词法分析程序的自动构造工具 66
4.7 典型例题及解答 68
练习 72
第5章 自顶向下语法分析方法 75
5.1 确定的自顶向下分析思想 75
5.2 LL(1)文法的判别 79
5.3 某些非LL(1)文法到LL(1)文法的等价变换 84
5.4 不确定的自顶向下分析思想 91
5.5.1 递归子程序法 92
5.5 确定的自顶向下分析方法 92
5.5.2 预测分析方法 93
5.6 典型例题及解答 96
练习 99
第6章 自底向上优先分析 102
6.1 自底向上优先分析概述 103
6.2 简单优先分析法 103
6.2.1 优先关系 104
6.2.2 简单优先文法的定义 105
6.2.3 简单优先分析法的操作步骤 105
6.3 算符优先分析法 106
6.3.1 直观算符优先分析法 106
6.3.2 算符优先文法的定义 107
6.3.3 算符优先关系表的构造 109
6.3.4 算符优先分析算法 114
6.3.5 优先函数 117
6.3.6 算符优先分析法的局限性 120
6.4 典型例题及解答 121
练习 122
第7章 LR分析 123
7.1 LR分析概述 123
7.2 LR(0)分析 124
7.2.1 可归前缀和子前缀 125
7.2.2 识别活前缀的有限自动机 126
7.2.3 活前缀及其可归前缀的一般计算方法 128
7.2.4 LR(0)项目集规范族的构造 130
7.3 S LR(1)分析 137
7.4 LR(1)分析 143
7.4.1 LR(1)项目集族的构造 144
7.4.2 LR(1)分析表的构造 145
7.5 LALR(1)分析 147
7.6 二义性文法在LR分析中的应用 153
7.7 语法分析程序的自动构造工具YACC 155
7.8 典型例题及解答 160
练习 165
第8章 语法制导翻译和中间代码生成 169
8.1 属性文法 169
8.2 语法制导翻译概论 171
8.2.1 计算语义规则 172
8.2.2 S-属性文法和自下而上翻译 173
8.2.3 L-属性文法在自上而下分析中的实现 174
8.2.4 L-属性文法在自下而上分析中的实现 176
8.3 中间代码的形式 177
8.3.1 逆波兰记号 177
8.3.2 三元式和树形表示 178
8.3.3 四元式 179
8.4 简单赋值语句的翻译 179
8.5.1 布尔表达式的翻译方法 181
8.5 布尔表达式的翻译 181
8.5.2 控制语句中布尔表达式的翻译 182
8.6 控制结构的翻译 186
8.6.1 条件转移 186
8.6.2 开关语句 189
8.6.3 for循环语句 191
8.6.4 出口语句 192
8.6.5 goto语句 193
8.6.6 过程调用的四元式产生 195
8.7 说明语句的翻译 196
8.7.1 简单说明语句的翻译 196
8.7.2 过程中的说明 197
8.8 数组和结构的翻译 198
8.8.1 数组说明和数组元素的引用 198
8.8.2 结构(记录)说明和引用的翻译 201
练习 202
9.1 符号表的作用和地位 204
第9章 符号表 204
9.2 符号的主要属性及作用 205
9.3 符号表的组织 210
9.3.1 符号表的总体组织 210
9.3.2 符号表项的排列 213
9.3.3 关键字域的组织 215
9.3.4 其他域的组织 216
9.3.5 下推链域的组织 223
9.4 符号表的管理 223
9.4.1 符号表的初始化 224
9.4.2 符号的登录 224
9.4.3 符号的查找 226
9.4.4 符号表中分程序结构层次的管理 226
练习 229
10.1 数据空间的三种不同使用方法和管理方法 231
第10章 目标程序运行时的存储组织 231
10.1.1 静态存储分配 232
10.1.2 动态存储分配 233
10.1.3 栈式动态存储分配 233
10.1.4 堆式动态存储分配 233
10.2 栈式存储分配的实现 234
10.2.1 简单的栈式存储分配的实现 234
10.2.2 嵌套过程语言的栈式实现 236
10.2.3 分程序结构的存储管理 240
10.3 参数传递 244
10.3.1 传值 244
10.3.2 传地址 245
10.3.3 过程参数 246
10.4 过程调用、过程进入和过程返回 247
练习 247
11.1 优化技术简介 249
第11章 代码优化 249
11.2 局部优化 251
11.2.1 基本块的划分 251
11.2.2 基本块的变换 252
11.2.3 基本块的有向图DAG(Directed Acyclic Graph)表示 253
11.2.4 DAG的应用 255
11.3 控制流分析和循环优化 257
11.3.1 程序流图 258
11.3.3 循环优化 259
11.3.2 循环的查找 259
11.4 数据流的分析与全局优化 262
11.4.1 一些主要的概念 262
11.4.2 数据流方程的一般形式 263
11.4.3 到达-定值数据流方程 264
11.4.4 可用表达式及其数据流方程 267
11.4.5 活跃变量数据流方程 269
练习 271
11.4.6 复写传播 271
第12章 代码生成 274
12.1 代码生成概述 274
12.1.1 代码生成程序在编译系统中的位置 274
12.1.2 设计代码生成程序的基本问题 274
12.2 一个简单的代码生成程序 278
12.2.1 计算机模型 278
12.2.2 待用信息链表法 279
12.2.3 代码生成算法 280
12.3 几种常用的代码生成程序的开发方法 282
12.3.1 解释性代码生成法 282
12.3.2 模式匹配代码生成法 283
12.3.3 表驱动代码生成法 284
12.4 全局寄存器分配(图着色法) 284
12.4.1 概述 284
12.4.2 图着色寄存器分配法的相关技术 285
12.4.3 示例 289
12.5.1 模式匹配与动态规划 293
12.5 代码生成程序的自动化构造 293
12.5.2 基于语法制导的代码生成程序自动构造技术 298
12.5.3 基于语义制导的代码生成程序自动构造技术 300
练习 301
第13章 编译程序的构造 302
13.1 编译程序的书写 302
13.1.1 编译程序的书写语言与T型图 302
13.1.2 编译程序的自展技术 303
13.2 可重定向编译程序 304
13.2.1 概述 304
13.2.2 支持可重定向编译的关键技术 306
13.2.3 常用的可重定向编译程序 307
13.3.1 GCC的总体结构 308
13.3.2 GCC的中表示 308
13.3 GCC的剖析 308
13.3.3 GCC的机器描述 310
13.3.4 GCC的代码生成与机器描述的接口 312
13.4 GCC的定制 316
13.4.1 GCC的剪裁 316
13.4.2 GCC编译程序的安装与配置 317
13.5 GCC的优化 319
13.5.1 概述 319
13.5.2 窥孔优化 320
13.5.3 基于机器描述的窥孔优化 322
13.5.4 修改GCC源程序的窥孔优化 324
练习 325
第14章 面向对象语言的编译 326
14.1 面向对象语言的基本概念 326
14.2 面向对象语言语法结构及语义处理的特征 330
14.2.1 面向对象语言的类的语法结构及语义 330
14.2.2 面向对象语言的有效类、延迟类及延迟成员 332
14.2.3 面向对象语言的类属类 333
14.2.4 面向对象语言的继承类 336
14.3 多态实例变量、多态引用的类型检查及绑定 340
14.3.1 实例变量和多态引用 340
14.3.2 静态类型检查及动态类型检查 342
14.3.3 静态绑定及动态绑定 345
14.4 对象的创建及面向对象操作的语义 353
14.4.1 对象的创建 353
14.4.2 面向对象操作的语义 357
14.5 类名的属性构造 368
14.5.1 类名的属性及其结构 369
14.5.2 类成员名的属性及其结构 370
14.6 对象的存储管理及废弃单元回收 372
14.6.1 对象的三种存储区组织管理方式 372
14.6.2 静态模型和栈式模型废弃单元的回收 374
14.6.3 堆式模型废弃单元的回收 374
练习 388
第15章 编译程序的面向对象构造 389
15.1 编译程序面向对象构造的基本概念 389
15.1.1 编译程序的需求 389
15.1.2 编译程序的分解 389
15.1.3 类的构造层次 393
15.1.4 类的特性定义 393
15.2 构造编译程序的面向对象类库 395
15.2.1 对传统编译程序构造中软件复用的分析 395
15.2.2 面向对象编译类库的地位 397
15.2.3 语言编译论域的面向对象论域分析 398
15.3 面向对象编译程序的符号表构造 410
练习 412
附录A PL/0编译程序文本 413
A.1 Pascal版本 413
A.2 C版本 429
参考文献 456
- 《第一性原理方法及应用》李青坤著 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《单片机原理及应用》庄友谊 2020
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《计算机组成原理 第2版》任国林 2018
- 《化工原理课程设计》刘建周主编 2018
- 《会计学原理》邵瑞庆主编 2019
- 《断陷湖盆比较沉积学与油气储层》赵永胜等著 1996
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019