编译技术原理及方法(慕课版)

编译原理
分享 推荐 3 收藏 31 阅读 6.2K
黄海平、蒋凌云、沙超、徐康 (作者) 978-7-115-47385-1

关于本书的内容有任何问题,请联系 李召


该教材编写目标明确,内容丰富,语言简练。教材主要特色与优势如下:
(1)案例鲜活且丰富,以学生更容易理解和接受的方式对涉及的基本概念和算法进行重新阐述,深入浅出;
(2)借助“多媒体”手段,为每个重点算法配备相应“慕课”视频,在算法下面配置相应的二维码,学生可以扫码观看学习;
(3)理论和实践有机结合,在介绍编译各个阶段的原理过程中,给出C语言的子集“C--语言”的编译程序的编写过程分析,让读者在学习编译原理的同时完成一个小型语言的编译程序;
(4)配书资源齐全,提供实验大纲、实验指导书及相关参考源码。

内容摘要

本书旨在介绍编译程序构造的一般原理和基本方法,内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成等。编译原理是计算机专业设置的一门重要的专业课程。本书在编译技术原理与及方法进行了系统的阐释,并着重实践训练内容,有利于提高软件从业人员的素质和能力。
本书系统性强,概念清晰,内容简明扼要,前9章配有习题,第10章给出了编译程序实例分析。
本书可作为高等院校计算机专业本科生的教材,也可供成人教育本科、专升本学生和计算机从业人员参考。

目录

第1章 引论 1
1.1 程序设计语言的发展历程 2
1.2 程序设计语言的翻译机制 4
1.3 编译程序概述 6
1.3.1 编译程序的逻辑结构概述 6
1.3.2 编译程序的分遍 10
1.4 编译程序的构造方法 11
1.4.1 编写编译程序的一般方法 11
1.4.2 编译程序的开发技术 11
1.5 编译技术的主要应用 15
1.6 本章小结 15
习题 16
第2章 形式语言的基本知识 17
2.1 字母表和符号串的基本概念 18
2.2 用文法产生法描述语言 19
2.2.1 巴克斯-诺尔范式 20
2.2.2 通过文法产生语言的方式 21
2.3 句型的分析 23
2.4 文法和语言的分类 27
2.5 文法的其他表示法 29
2.6 C--语言的形式定义 31
2.7 应用案例 32
2.8 本章小结 32
习题 32
第3章 词法分析 35
3.1 词法分析概述 36
3.1.1 词法分析的任务 36
3.1.2 单词的分类与表示 37
3.2 手动编写词法分析程序 38
3.2.1 单词的描述——正规文法与状态转换图 38
3.2.2 C--语言词法分析程序的设计与实现 40
3.3 自动生成词法分析程序的原理 42
3.3.1 单词的描述——正规表达式 43
3.3.2 单词的识别——有穷自动机 44
3.3.3 正规表达式、正规文法和有穷自动机的等价性 49
3.4 本章小结 56
习题 56
第4章 语法分析 58
4.1 语法分析概述 59
4.2 自顶向下的语法分析 59
4.2.1 消除文法的回溯和左递归 59
4.2.2 LL(1)分析法 62
4.3 自底向上的语法分析 68
4.3.1 LR分析器的逻辑结构和分析过程 68
4.3.2 LR(0)分析表的构造 71
4.3.3 SLR(1)分析表的构造 76
4.3.4 LR(1)分析表的构造 79
4.3.5 LALR(1)分析表的构造 81
4.4 语法分析程序的自动生成 83
4.5 应用案例 84
4.6 本章小结 85
习题 85
第5章 语义分析及中间代码生成 89
5.1 语法制导翻译概述 90
5.2 中间语言 92
5.2.1 逆波兰表示 92
5.2.2 三元式 95
5.2.3 树形表示 96
5.2.4 四元式 97
5.3 自底向上语法制导翻译 97
5.4 自顶向下语法制导翻译 119
5.5 属性文法与属性翻译 123
5.6 本章小结 126
习题 127
第6章 符号表 129
6.1 符号表的作用 130
6.2 符号表的组织 130
6.2.1 符号表的形式 130
6.2.2 符号表中的内容 132
6.3 符号表的构造与查找 133
6.3.1 顺序查表与造表法 133
6.3.2 折半查表与造表法 134
6.3.3 散列表法(杂凑法) 135
6.4 分程序结构语言的符号表 137
6.5 非分程序结构语言的符号表 138
6.6 本章小结 139
习题 140
第7章 存储组织与分配 141
7.1 存储组织概述 142
7.1.1 存储空间的一般划分与组织 142
7.1.2 过程活动和活动记录 143
7.2 静态存储分配 144
7.3 动态存储分配 145
7.3.1 栈式存储分配 145
7.3.2 堆式存储分配 148
7.4 本章小结 149
习题 149
第8章 代码优化 152
8.1 代码优化概述 153
8.2 局部优化 154
8.3 循环优化 156
8.4 利用DAG进行优化 163
8.5 数据流分析及全局优化概述 167
8.6 本章小结 174
习题 174
第9章 目标代码生成 178
9.1 目标代码生成概述 179
9.2 假想的计算机模型 179
9.3 一种简单代码生成程序 180
9.4 寄存器分配 185
9.5 由DAG生成目标代码 188
9.6 窥孔优化 191
9.7 本章小结 192
习题 192
第10章 编译程序实例分析 194
10.1 C--语言的编译程序 195
10.2 编译程序自动生成器简介 195
10.2.1 Lex 195
10.2.2 YACC 197
10.2.3 Parser Generator 198
10.3 利用Parser Generator生成编译程序 202
10.3.1 Lex源程序设计 202
10.3.2 YACC源程序设计 203
10.3.3 语义分析 206
10.4 部分核心代码 207
10.5 软件测试及其结果分析 213
10.6 本章小结 217

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

作者黄海平是南京邮电大学计算机学院教授、 博士生导师,江苏省“333工程”中青年学术带头人, 江苏省“六大人才高峰” 高层次人才培养对象, 2005年以来一直从事编译原理的教学工作。

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部