图书介绍

编译原理【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

编译原理
  • 何炎祥,伍春香,王汉飞编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111288183
  • 出版时间:2010
  • 标注页数:250页
  • 文件大小:17MB
  • 文件页数:266页
  • 主题词:编译程序-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编译原理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 翻译程序1

1.2 为什么需要编译程序2

1.3 编译程序的工作过程4

1.3.1 分析部分5

1.3.2 综合部分6

1.4 编译程序的结构6

1.4.1 编译程序的典型结构6

1.4.2 编译程序的前端和后端6

1.4.3 编译程序的分遍7

1.4.4 源程序中的错误及出错处理8

1.5 编译程序的组织方式8

1.6 编译程序的其他技术9

1.6.1 编译程序的自展技术9

1.6.2 编译程序的移植技术9

1.6.3 编译程序的自动化技术10

1.6.4 程序的可再入性10

1.7 翻译程序的编写系统11

1.8 并行编译程序12

1.9 小结13

习题14

第2章 形式语言概论15

2.1 语言成分15

2.2 文法和语言17

2.2.1 产生式文法17

2.2.2 上下文无关文法17

2.2.3 推导与直接推导18

2.3 文法的分类19

2.3.1 文法分类19

2.3.2 文法分类的意义21

2.3.3 文法举例22

2.4 语言和语法23

2.4.1 句型、句子和语言23

2.4.2 语法树24

2.4.3 产生式树和产生式图25

2.5 文法和语言的一些特性26

2.5.1 无用非终结符号26

2.5.2 不可达文法符号26

2.5.3 可空非终结符27

2.5.4 最左推导、最右推导和规范推导28

2.5.5 二义性29

2.6 分析方法简介30

2.6.1 自顶向下分析方法30

2.6.2 确定的自顶向下分析方法32

2.6.3 自底向上分析方法33

2.6.4 文法在内存中的表示34

2.7 小结36

习题36

第3章 有穷自动机38

3.1 概述38

3.2 有穷自动机的定义40

3.2.1 状态转换表40

3.2.2 状态转换图41

3.2.3 构形和移动42

3.2.4 自动机的等价性42

3.2.5 非确定有穷自动机42

3.3 NDFSA到DFSA的转换44

3.3.1 空移环路的寻找和消除44

3.3.2 确定化——子集法45

3.3.3 确定化——造表法46

3.3.4 消除不可达状态48

3.3.5 确定有穷自动机的化简48

3.3.6 从化简后的DFSA到程序表示50

3.4 正规文法与有穷自动机51

3.4.1 从正规文法到FSA52

3.4.2 从FSA到正规文法52

3.5 正规表达式与FSA53

3.5.1 正规表达式的定义53

3.5.2 正规表达式到NDFSA的转换55

3.5.3 NDFSA M到正规表达式的转换56

3.5.4 从正规文法到正规表达式57

3.6 DFSA在计算机中的表示58

3.6.1 矩阵表示法58

3.6.2 表结构表示法58

3.6.3 程序表示法59

3.7 小结59

习题60

第4章 词法分析62

4.1 单词符号62

4.2 词法分析程序的设计63

4.2.1 预处理63

4.2.2 状态转换图63

4.2.3 根据状态转换图设计词法分析程序64

4.2.4 由正规文法设计词法分析程序66

4.2.5 由正规表达式设计词法分析程序66

4.2.6 设计词法分析程序的直接方法67

4.3 标识符的处理68

4.3.1 类型的机内表示68

4.3.2 标识符的语义表示68

4.3.3 符号表68

4.3.4 标识符处理的基本思想68

4.4 词法错误及其处理69

4.5 小结69

习题70

第5章 自顶向下语法分析71

5.1 非确定的下推自动机71

5.1.1 PDA的形式定义72

5.1.2 PDA的构形和移动73

5.1.3 上下文无关语言与PDA74

5.2 消除左递归的方法76

5.2.1 文法的左递归性76

5.2.2 用扩展的BNF表示法消除左递归77

5.2.3 直接改写法78

5.2.4 消除左递归的算法79

5.3 LL(k)文法80

5.3.1 LL(l)文法的判断条件80

5.3.2 集合FIRST、FOLLOW与SELECT的构造81

5.4 确定的LL(l)分析器的构造83

5.4.1 分析表M的构造算法84

5.4.2 LL(l)分析器的总控算法86

5.5 递归下降分析程序及其设计87

5.5.1 递归下降分析程序87

5.5.2 流程图设计88

5.5.3 程序设计89

5.6 小结90

习题90

第6章 自底向上分析和优先分析方法93

6.1 短语和句柄93

6.2 移进-归约方法95

6.3 非确定的自底向上分析器96

6.4 有关文法的一些关系100

6.4.1 关系100

6.4.2 布尔矩阵和关系101

6.4.3 Warshall算法102

6.4.4 关系FIRST与LAST103

6.5 简单优先分析方法105

6.5.1 简单优先关系105

6.5.2 简单优先关系的形式化构造方法107

6.5.3 简单优先文法及其分析算法108

6.5.4 简单优先分析方法的局限性110

6.6 算符优先分析方法111

6.6.1 算符优先文法111

6.6.2 OPG优先关系的构造111

6.6.3 素短语及句型的分析113

6.6.4 算符优先分析算法113

6.7 优先函数及其构造115

6.7.1 Bell方法116

6.7.2 Floyd方法117

6.7.3 两种方法的比较118

6.8 小结119

习题120

第7章 自底向上的LR(k)分析方法122

7.1 LR(k)文法和LR(k)分析器122

7.2 LR(0)分析表的构造125

7.2.1 规范句型的活前缀和LR(0)项目125

7.2.2 拓广文法和CLOSURE(I)函数126

7.2.3 goto(I,X)函数和LR(0)项目集规范族126

7.2.4 有效项目128

7.2.5 举例129

7.2.6 LR(0)文法和构造LR(0)分析表的算法132

7.3 SLR分析表的构造133

7.4 规范LR(l)分析表的构造136

7.5 LALR分析表的构造140

7.6 无二义性规则的使用144

7.7 小结145

习题146

第8章 语法制导翻译法147

8.1 基本原理和树变换147

8.1.1 基本原理147

8.1.2 树变换149

8.2 简单SDTS和自顶向下翻译器150

8.3 简单后缀SDTS和自底向上翻译器152

8.3.1 后缀翻译153

8.3.2 条件语句的处理153

8.3.3 函数调用的处理154

8.4 抽象语法树的构造155

8.4.1 自底向上构造AST156

8.4.2 AST的拓广157

8.5 属性文法157

8.5.1 L属性文法158

8.5.2 S属性文法158

8.6 中间代码形式158

8.6.1 逆波兰表示法159

8.6.2 逆波兰表示法的推广159

8.6.3 四元式160

8.6.4 三元式161

8.7 属性翻译文法的应用162

8.7.1 综合属性与自底向上定值162

8.7.2 继承属性和自顶向下定值163

8.7.3 布尔表达式到四元式的翻译164

8.7.4 条件语句的翻译164

8.7.5 迭代语句的翻译165

8.8 小结167

习题168

第9章 运行时的存储组织与管理170

9.1 存储分配基础知识170

9.1.1 运行时刻的存储区域170

9.1.2 过程活动与过程的活动记录170

9.1.3 静态层次、静态外层和动态外层171

9.1.4 名字的作用域和生存期172

9.1.5 名字的静态属性和动态属性173

9.1.6 常见数据类型的存储分配173

9.2 典型的存储分配方案174

9.2.1 静态存储分配方案174

9.2.2 动态存储分配方案175

9.2.3 存储分配时需考虑的问题175

9.3 参数传递方式及其实现176

9.3.1 传地址176

9.3.2 传值177

9.3.3 传结果177

9.3.4 传名177

9.4 栈式存储分配178

9.4.1 概述178

9.4.2 简单栈式存储分配179

9.4.3 嵌套结构语言的栈式存储分配180

9.4.4 过程调用时的存储管理183

9.4.5 PL/0栈式存储分配183

9.5 堆式存储分配方法184

9.6 小结185

习题185

第10章 符号表187

10.1 概述187

10.1.1 符号表的地位与作用187

10.1.2 符号表的生存期188

10.2 符号表的内容188

10.3 符号表的组织189

10.3.1 符号表的数据结构189

10.3.2 符号表的内容组织189

10.4 栈式符号表190

10.4.1 栈式符号表概述190

10.4.2 栈式符号表举例191

10.5 小结194

习题194

第11章 优化196

11.1 控制流图197

11.2 常见的冗余199

11.2.1 公共子表达式200

11.2.2 复制传播201

11.2.3 活跃变量分析及死代码删除202

11.3 循环优化203

11.3.1 代码外提203

11.3.2 归纳变量与强度削弱206

11.3.3 循环展开208

11.3.4 指令调度209

11.4 小结210

习题211

第12章 代码生成213

12.1 概述213

12.1.1 目标代码形式213

12.1.2 目标代码生成的主要问题213

12.1.3 寄存器分配的原则214

12.2 PL/0抽象计算机模型214

12.2.1 PL/0抽象计算机的代码214

12.2.2 PL/0语言目标代码举例215

12.3 目标代码结构216

12.3.1 目标代码结构的设计216

12.3.2 常见语法成分目标代码结构设计217

12.4 PL/0编译程序的目标代码生成218

12.4.1 PL/0编译程序中的相关定义218

12.4.2 基本语句的翻译219

12.4.3 过程的翻译221

12.4.4 目标代码生成举例223

12.5 小结228

习题229

附录 PL/0编译程序源程序230

参考文献247

热门推荐