编译原理与技术PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:李文生编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2009
- ISBN:9787302191711
- 页数:398 页
第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
习题1 18
第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
习题2 52
第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 软件工具LEX 70
3.5.1 LEX源程序 71
3.5.2 LEX的工作原理 73
习题3 75
程序设计1 77
第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 软件工具YACC 131
4.5.1 YACC源程序 131
4.5.2 YACC对二义文法的处理 134
4.5.3 用LEX建立YACC的词法分析程序 137
4.5.4 YACC内部名称 137
习题4 137
程序设计2 141
第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
习题5 172
第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
习题6 216
程序设计3 220
第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
习题7 251
第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
习题8 292
第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
习题9 312
第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
习题10 335
第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
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019