图书介绍

编译原理PDF|Epub|txt|kindle电子书版本网盘下载

编译原理
  • 何炎祥编著 著
  • 出版社: 北京:高等教育出版社
  • ISBN:7040153912
  • 出版时间:2004
  • 标注页数:298页
  • 文件大小:10MB
  • 文件页数:306页
  • 主题词:编译程序-程序设计-高等学校-教材

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 为什么需要编译程序3

1.3 编译程序的工作过程5

1.3.1 分析6

1.3.2 综合7

1.4 编译程序的结构7

1.5 编译程序的组织方式9

1.6 编译程序的其他有关技术10

1.6.1 编译程序的自展技术10

1.6.2 编译程序的移植技术11

1.6.3 编译程序自动化11

1.6.4 程序的可再入性12

1.7 翻译程序编写系统13

1.8 并行编译程序14

1.9 小结15

习题一16

第2章 形式语言概论17

2.1 语言成分17

2.2 产生式文法和语言19

2.2.1 产生式文法19

2.2.2 上下文无关文法20

2.2.3 上下文无关文法定义的语言21

2.3 文法的分类22

2.3.1 文法分类22

2.3.2 文法分类的意义25

2.3.3 文法举例26

2.4 语言和语法26

2.4.1 句型、句子和语言26

2.4.2 语法树27

2.4.3 语法树的生成过程29

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

2.5.1 无用非终结符号30

2.5.2 不可达文法符号31

2.5.3 可空非终结符32

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

2.5.5 二义性35

2.6 分析方法简介36

2.6.1 自上而下分析方法36

2.6.2 确定的自上而下分析方法38

2.6.3 自下而上分析方法40

2.6.4 文法在内存中的表示41

2.7 小结43

习题二43

3.1 概述45

第3章 有穷自动机45

3.2 有穷自动机的形式定义47

3.2.1 状态转换表48

3.2.2 状态转换图48

3.2.3 构形和移动50

3.2.4 自动机的等价性50

3.2.5 非确定有穷自动机51

3.3 NDFSA到DFSA的转换52

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

3.3.2 消除空移54

3.3.3 利用状态转换表消除空移56

3.3.4 确定化——子集法57

3.3.5 确定化——造表法60

3.3.6 消除不可达状态64

3.3.7 确定的有穷自动机的化简65

3.3.8 从化简后的DFSA到程序表示66

3.4.1 从正规文法到FSA68

3.4 正规文法和有穷自动机68

3.3.9 小结68

3.4.2 从FSA到正规文法69

3.5 正规表达式与FSA70

3.5.1 正规表达式的定义70

3.5.2 正规表达式的CFG72

3.5.3 正规表达式与FSA的对应性73

3.5.4 正规表达式到NDFSA的转换73

3.5.5 NDFSA M到正规表达式的转换76

3.5.6 从正规文法到正规表达式78

3.6 DFSA在计算机中的表示80

3.6.1 矩阵表示法81

3.6.2 表结构81

3.6.3 程序表示法82

3.7 小结82

习题三83

4.1 词法分析概述85

第4章 词法分析85

4.2 单词符号86

4.3 扫描程序的设计87

4.4 标识符的处理92

4.4.1 类型的机内表示92

4.4.2 标识符的语义表示95

4.4.3 符号表(标识符表)97

4.4.4 标识符表处理的基本思想98

4.5 设计词法分析程序的直接方法100

4.6 与设计扫描程序相关的几个问题100

4.7 小结102

习题四102

第5章 自上而下语法分析104

5.1 非确定的下推自动机104

5.1.1 PDA的形式定义105

5.1.2 PDA的构形和移动106

5.1.3 上下文无关语言与PDA108

5.2 消除左递归方法111

5.2.1 文法的左递归性111

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

5.2.3 直接改写法113

5.2.4 消除所有左递归的算法114

5.3 LL(k)文法115

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

5.3.2 集合FIRST、FOLLOW和SELECT的构造116

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

5.4.1 构造分析表M的算法119

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

5.5 LL(k)文法的几个结论123

5.6 递归下降分析程序及其设计123

5.6.1 框图设计125

5.6.2 程序设计126

5.7 带回溯的自上而下分析法127

5.7.1 文法在内存中的存放形式127

5.7.2 其他信息的存放128

5.7.3 带回溯的自上而下分析算法128

5.8 小结132

习题五132

第6章 自下而上分析和优先分析方法135

6.1 短语和句柄135

6.2 移进-归约方法137

6.3 非确定的自下而上分析器140

6.4 有关文法的一些关系143

6.4.1 关系143

6.4.2 布尔矩阵和关系145

6.4.3 Warshall算法146

6.4.4 关系FIRST和LAST148

6.5.1 优先关系150

6.5 简单优先分析方法150

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

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

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

6.6 算符优先分析方法162

6.6.1 算符优先文法162

6.6.2 OPG优先关系的构造163

6.6.3 素短语及句型的分析165

6.6.4 算符优先分析算法166

6.7 优先函数及其构造169

6.7.1 Bell方法170

6.7.2 Floyd方法172

6.7.3 两种方法的比较173

6.8 两种优先分析方法的比较174

6.9 小结175

习题六176

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

第7章 自下而上的LR(k)分析方法178

7.2 LR(o)分析表的构造182

7.2.1 规范句型的活前缀182

7.2.2 LR(o)项目182

7.2.3 文法G的拓广文法183

7.2.4 CLOSURE(I)函数183

7.2.5 goto(I,X)函数184

7.2.6 LR(o)项目集规范族184

7.2.7 有效项目186

7.2.8 举例187

7.2.9 LR(o)文法190

7.2.10 构造LR(o)分析表的算法190

7.2.11 构造LR(o)分析表步骤小结191

7.3 SLR分析表的构造191

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

7.5 LALR分析表的构造200

7.6 无二义性规则的使用204

7.7 小结206

7.7.1 LR分析程序206

7.7.2 LR分析表的自动构造206

7.7.3 文法间的关系207

7.7.4 LR文法举例208

7.7.5 有关LR文法的几个结论210

习题七210

第8章 语法制导翻译法212

8.1 一般原理和树变换212

8.1.1 一般原理212

8.1.2 树变换215

8.2 简单SDTS和自上而下翻译器216

8.3 简单后缀SDTS和自下而上翻译器219

8.3.2 IF-THEN-ELSE控制语句220

8.3.1 后缀翻译220

8.3.3 函数调用221

8.4 抽象语法树的构造222

8.4.1 自下而上构造AST224

8.4.2 AST的拓广224

8.5 属性文法225

8.5.1 L属性文法226

8.5.2 S属性文法226

8.6 中间代码形式226

8.6.1 逆波兰表示法227

8.6.2 逆波兰表示法的推广227

8.6.3 四元式229

8.6.4 三元式230

8.7 属性翻译文法的应用231

8.7.1 综合属性与自下而上定值231

8.7.2 继承属性和自上而下定值231

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

8.7.4 条件语句的翻译233

8.7.5 迭代语句的翻译235

8.8 小结237

习题八237

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

9.1 数据区和属性字240

9.2 基本数据类型的存储分配242

9.3 数组的存储分配242

9.3.1 单块存储方式242

9.3.2 信息向量与数组分配程序244

9.3.3 多块存储方式245

9.4 记录结构的存储分配246

9.5 参数传递方式及其实现247

9.5.1 换名247

9.5.3 传地址248

9.5.2 传值248

9.5.4 传结果249

9.5.5 数组名用做实参249

9.5.6 过程名用做实参249

9.6 栈式存储分配方法249

9.6.1 概述249

9.6.2 现行DISPLAY和现行数据区250

9.6.3 标识符的作用域252

9.6.4 分程序的入口和出口工作253

9.6.5 过程调用时的存储管理255

9.7 堆式存储分配方法257

9.8 临时工作单元的存储分配258

9.9 小结261

习题九262

第10章 符号表的组织和查找264

10.1 符号表的一般组织形式264

10.2 符号表中的数据265

10.3 符号表的构造与查找266

10.3.1 线性查找266

10.3.2 折半法267

10.3.3 杂凑技术268

10.4 分程序结构的符号表270

10.5 小结272

习题十273

第11章 优化274

11.1 基本块及其求法274

11.2 优化举例275

11.3 利用变量的定义点进行优化278

11.3.1 变量的定义点278

11.3.2 循环中不变式的外提279

11.3.3 运算强度削弱279

11.3.4 公共表达式的消除279

11.3.5 常量合并280

11.4 循环优化281

11.5 借助DAG进行优化282

11.6 并行分支的优化284

11.7 窥孔优化284

11.8 小结285

习题十一285

第12章 代码生成287

12.1 假想的计算机模型287

12.2 从四元式生成代码288

12.3 从三元式生成代码290

12.4 从树形表示生成代码292

12.5 从逆波兰表示生成代码294

12.6 寄存器的分配295

12.7 小结296

习题十二296

参考文献298

热门推荐