图书介绍

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

编译原理
  • 康慕宁,林奕编著 著
  • 出版社: 人民邮电出版社
  • ISBN:9787115224057
  • 出版时间:2010
  • 标注页数:206页
  • 文件大小:17MB
  • 文件页数:215页
  • 主题词:编译程序-程序设计-高等学校-教材

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.2 程序设计语言的编译技术2

1.3 编译技术的基本构造与工作原理4

1.4 程序设计语言的编译技术7

1.4.1 词法分析7

1.4.2 语法分析8

1.4.3 语义分析8

1.4.4 中间代码的生成9

1.4.5 代码优化10

1.4.6 目标代码生成10

1.4.7 程序信息管理与错误检查和处理11

1.5 编译程序的工作过程11

1.6 文法及其分类13

1.6.1 文法13

1.6.2 文法及语言的Chomskey分类15

1.6.3 规范推导16

1.6.4 文法的二义性17

1.7 本书内容简介18

习题18

第2章 扫描器与正规语言21

2.1 正规表达式21

2.1.1 正规表达式代数22

2.1.2 正规表达式的性质22

2.2 有限状态自动机24

2.3 非确定的有限状态自动机26

2.4 将正规文法转换为自动机27

2.5 NFDA的确定化及化简29

2.6 从有限状态自动机转换到正规文法35

2.7 有限自动机在计算机中的实现36

2.8 扫描器实现中的特殊问题37

2.8.1 输入符号表37

2.8.2 扫描器自动机中的终止状态37

2.8.3 删除空白符号与注释38

2.8.4 输出单词38

2.9 字符串表的实现40

2.10 保留字41

2.11 使用扫描器自动生成工具41

2.12 例题解析41

习题43

第3章 语法分析与前后文无关文法45

3.1 下推自动机45

3.1.1 停机条件的等价性46

3.1.2 从前后文无关文法CFG构造PDA47

3.2 LL(k)规范文法48

3.2.1 FIRST集与FOLLOW集49

3.2.2 选择集合50

3.3 文法的左递归性51

3.4 公共左因子52

3.5 用正规表达式运算符拓广CFG52

3.6 递归下降分析程序53

3.7 作为下推自动机的递归下降分析程序54

3.8 自底向上的语法分析器的构造56

3.8.1 自底向上的语法分析56

3.8.2 LR(k)分析法59

3.9 语法分析器生成工具简介70

习题71

第4章 语法制导的代码生成73

4.1 常见的中间语言简介73

4.1.1 逆波兰表示73

4.1.2 四元式74

4.1.3 其他表示法75

4.2 赋值语句的翻译75

4.3 布尔表达式的翻译76

4.4 程序流程控制语句的翻译81

4.4.1 常见控制结构的翻译81

4.4.2 语句标号及GOTO语句的翻译84

4.4.3 多分支语句的翻译87

4.5 含数组元素的算术表达式及赋值语句的翻译89

4.5.1 下标变量地址的计算89

4.5.2 含有下标变量的赋值语句的翻译91

4.6 过程说明和过程调用的翻译93

4.6.1 过程说明的翻译94

4.6.2 实参和形参间的信息传递94

4.6.3 过程语句的翻译95

4.6.4 关于形实结合的进一步讨论96

4.7 说明语句的翻译97

4.7.1 类型说明(变量及数组定义)语句的翻译97

4.7.2 数据类型定义语句的翻译99

习题101

第5章 符号表103

5.1 概述103

5.2 符号表的内容、用途与创建过程104

5.2.1 符号及其所表示的信息104

5.2.2 符号表105

5.2.3 符号表的用途105

5.3 设计符号表时需要考虑的几个问题107

5.4 符号表的创建和使用108

5.4.1 符号表的创建及其在语义分析中的使用108

5.4.2 符号表在内存分配和代码生成阶段的使用109

5.5 符号表的数据结构与算法110

5.5.1 符号表数据结构和算法的选择110

5.5.2 哈希表设计112

5.5.3 支持作用域的符号表115

习题122

第6章 静态与运行时的存储管理124

6.1 可执行程序的产生和执行过程124

6.2 可执行程序的存储布局与操作126

6.3 内存管理技术:静态内存管理128

6.4 动态内存管理132

6.5 栈式内存管理133

6.5.1 递归调用引起的问题133

6.5.2 栈134

6.5.3 活动树136

6.5.4 栈模型和活动树模型的比较140

6.5.5 栈式内存管理的基本思想和必须解决的问题140

6.5.6 活动记录和调用序列142

6.6 堆式管理和垃圾回收技术152

习题155

第7章 代码优化157

7.1 概述157

7.2 中间代码生成阶段的代码优化157

7.3 代码优化的基本原则、思路和范围158

7.4 基本块及其优化方法159

7.4.1 基本块、基本块划分算法和控制流图159

7.4.2 基于DAG模型的基本块优化技术162

7.4.3 基于值编号技术的基本块优化算法166

7.4.4 基本块中的其他优化170

7.4.5 更大范围的优化173

7.5 数据流分析173

7.5.1 基于数据流分析的冗余表达式删除174

7.5.2 活性分析178

7.5.3 过程间数据流分析182

7.6 循环优化182

7.6.1 循环的识别182

7.6.2 循环优化185

习题187

第8章 代码生成189

8.1 代码生成的基本功能189

8.2 代码生成的不同方式189

8.3 代码生成的关键技术简介190

8.3.1 代码生成技术需要考虑的内容190

8.3.2 代码生成的关键技术190

8.3.3 指令筛选技术简介191

8.3.4 指令调度技术简介198

8.3.5 寄存器分配技术简介200

8.4 代码生成、软件调试和其他技术202

习题205

参考文献206

热门推荐