图书介绍

编译程序设计算法2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

编译程序设计算法
  • 刘晓东编著 著
  • 出版社: 成都:四川大学出版社
  • ISBN:7561434464
  • 出版时间:2006
  • 标注页数:179页
  • 文件大小:7MB
  • 文件页数:188页
  • 主题词:编译程序-程序设计

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.2 编译程序的结构1

1.2.1 编译程序的翻译过程1

第1章 绪论1

1.2.2 遍3

1.2.3 编译程序的基本构成4

1.3 预备知识5

1.3.1 字符串5

1.3.2 集合运算5

1.3.3 关系6

第2章 有穷状态自动机和正则表达式7

2.1 有穷状态自动机7

2.2 非确定性有穷状态自动机(NFA)9

2.3 带有ε弧的非确定性有穷状态自动机11

2.4 从NFA到DFA的转换12

2.4.2 子集构造13

2.4.1 状态集合的ε-闭包13

2.5 DFA的化简15

2.5.1 删除不可达状态的算法16

2.5.2 识别并合并等价状态16

2.5.3 删除死状态的算法18

2.6 正则集与正则表达式18

2.7 正则表达式与有限自动机19

2.7.1 从正则表达式到有限自动机20

2.7.2 从有限自动机到正则表达式22

2.8 词法分析器的设计23

2.8.1 词法分析器的设计步骤23

2.8.2 正则表达式的LEX约定24

2.8.3 LEX输入文件的格式25

第3章 上下文无关文法和语法分析28

3.1 语法分析28

3.2 上下文无关文法28

3.2.2 推导树29

3.2.1 推导29

3.3 上下文无关文法的化简32

3.3.1 识别和删除无用文法符号的算法32

3.3.2 ε-产生式和可空非终结符35

3.3.3 消除单位产生式37

3.3.4 消除左递归38

3.4 正则文法39

第4章 自顶向下的语法分析42

4.1 自顶向下的语法分析方法42

4.2 带预测的自顶向下语法分析器50

4.2.1 表驱动预测语法分析器的实现53

4.2.2 例题55

第5章 自底向上的语法分析61

5.1 右句型中的句柄61

5.2 自底向上的语法分析的实现62

5.3 LR语法分析器63

5.3.1 扩展文法65

5.3.2 寻找LR(0)项目集规范族的算法68

5.3.3 SLR(1)语法分析器的Action表和Goto表73

5.3.4 计算LR(1)项目集规范族的算法79

5.3.5 LR(1)语法分析器的Action | Goto表80

5.3.6 LALR的语法分析表82

5.3.7 语法分析器的冲突85

5.3.8 处理二义性文法87

5.4.1 Action表的数据结构90

5.4 语法分析表的数据结构90

5.4.2 Goto表的数据结构91

5.5 LR语法分析器的优点和缺点91

第6章 语法制导的定义和翻译92

6.1 翻译规范92

6.2 通过语法制导定义实现指定翻译92

6.2.1 综合属性93

6.2.2 继承属性94

6.2.3 虚拟综合属性95

6.4 语法制导翻译方案96

6.3 L-属性定义96

6.5 生成中间代码97

6.5.1 后缀表示法97

6.5.2 语法树97

6.5.3 三地址代码98

6.6 三地址语句表示99

6.6.1 四元式表示99

6.6.2 三元式表示99

6.6.3 间接三元式表示100

6.6.4 比较100

6.7 不同程序设计语言结构的语法制导翻译方案100

6.7.1 算术表达式100

6.7.2 布尔表达式103

6.7.3 逻辑表达式的短路代码106

6.8 递增和递减运算符的实现114

6.9 数组引用115

6.10 SWITCH/CASE118

6.11 过程调用122

6.12 举例122

第7章 符号表管理126

7.1 符号表126

7.2 添加信息到符号表中126

7.3 组织符号表的方法127

7.3.1 线性表127

7.3.3 哈希表128

7.3.2 查找树128

7.4 描述符号表中的域信息129

第8章 存储管理131

8.1 存储分配131

8.3 静态分配132

8.2 过程激活与活动记录133

8.4 堆栈分配133

8.4.1 调用和返回顺序133

8.4.2 访问非局部名字134

8.4.3 设置访问链136

9.1 错误恢复138

9.2 词法阶段的错误恢复138

第9章 出错处理138

9.3 语法阶段的错误恢复139

9.4 LR分析中的错误恢复139

9.5 YACC中的自动错误恢复141

9.6 预测性分析的错误恢复141

9.7 语义错误恢复143

10.2 循环优化144

第10章 代码优化144

10.1 什么是代码优化144

10.2.1 消除循环不变量的计算145

10.2.2 将三地址代码分成基本块的算法145

10.2.3 寻找循环147

10.2.4 寻找回边147

10.2.5 可化简的流图147

10.3 消除归纳变量154

10.4 删除本地公共子表达式157

10.5 删除全局公共子表达式159

10.6 打开循环160

10.7 循环拥塞161

第11章 代码生成163

11.1 高效代码生成中隐含的主要问题163

11.2 目标机器模型164

11.3 直接代码生成165

11.4.1 启发式DAG排序算法168

11.4 DAG的目标代码生成168

11.4.2 标记算法170

11.5 利用代数性质来减少寄存器的需要数量176

11.6 窥孔优化177

11.6.1 冗余存取177

11.6.2 控制流程优化178

11.6.3 删除不可达代码178

11.6.4 代数简化179

11.6.5 强制削弱179

热门推荐