图书介绍

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

编译原理与技术
  • 张昱,陈意云编著 著
  • 出版社: 北京:高等教育出版社
  • ISBN:9787040298390
  • 出版时间:2010
  • 标注页数:283页
  • 文件大小:12MB
  • 文件页数:293页
  • 主题词:编译程序-程序设计-高等学校-教材

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 语法分析3

1.1.3 语义分析3

1.1.4 中间代码生成4

1.1.5 代码优化4

1.1.6 代码生成5

1.1.7 符号表管理5

1.1.8 阶段的分组5

1.1.9 解释器7

1.2 编译器技术的应用7

1.2.1 高级语言的实现7

1.2.2 针对计算机体系结构的优化8

1.2.3 新计算机体系结构的设计9

1.2.4 程序翻译10

1.2.5 提高软件开发效率的工具10

习题12

第2章 词法分析13

2.1 词法记号及属性13

2.1.1 词法记号、模式、词法单元14

2.1.2 词法记号的属性15

2.1.3 词法错误16

2.2 词法记号的描述与识别16

2.2.1 串和语言16

2.2.2 正规式17

2.2.3 正规定义19

2.2.4 状态转换图20

2.3 有限自动机23

2.3.1 不确定的有限自动机23

2.3.2 确定的有限自动机25

2.3.3 NFA到DFA的变换26

2.3.4 DFA的化简29

2.4 从正规式到有限自动机31

2.5 词法分析器的生成器35

习题38

第3章 语法分析41

3.1 上下文无关文法41

3.1.1 上下文无关文法的定义42

3.1.2 推导43

3.1.3 分析树44

3.1.4 二义性45

3.2 语言和文法46

3.2.1 正规式和上下文无关文法的比较46

3.2.2 分离词法分析器的理由47

3.2.3 验证文法产生的语言48

3.2.4 适当的表达式文法48

3.2.5 消除二义性50

3.2.6 消除左递归50

3.2.7 提左因子52

3.3 自上而下分析52

3.3.1 自上而下分析的一般方法52

3.3.2 LL(1)文法54

3.3.3 递归下降的预测分析55

3.3.4 非递归的预测分析56

3.3.5 构造预测分析表59

3.3.6 预测分析的错误恢复60

3.4 自下而上分析63

3.4.1 归约63

3.4.2 句柄64

3.4.3 用栈实现移进-归约分析65

3.4.4 移进-归约分析的冲突66

3.5 LR分析器68

3.5.1 构造SLR分析表68

3.5.2 LR分析算法73

3.5.3 其他LR分析表构造概述75

3.5.4 非二义且非LR的上下文无关文法77

3.6 语法分析器的生成器78

3.6.1 分析器的生成器Yacc78

3.6.2 用Yacc处理二义文法82

3.6.3 Yacc的错误恢复84

习题86

第4章 类型检查91

4.1 语法制导的翻译91

4.1.1 翻译方案92

4.1.2 语法树93

4.1.3 构造语法树的翻译方案94

4.1.4 翻译方案中属性的自下而上计算95

4.1.5 设计翻译方案的一些技巧98

4.2 类型在编程语言中的作用99

4.2.1 执行错误和安全语言99

4.2.2 类型化语言和类型系统99

4.2.3 类型化语言的优点102

4.3 一个简单类型检查器的规范102

4.3.1 一个简单的语言103

4.3.2 类型表达式103

4.3.3 类型检查104

4.3.4 类型转换105

4.4 类型表达式的等价106

4.4.1 类型表达式的结构等价107

4.4.2 类型表达式的名字等价107

4.4.3 记录类型108

4.4.4 类型表示中的环109

习题109

第5章 运行时存储空间的组织和管理114

5.1 局部存储分配115

5.1.1 过程115

5.1.2 名字的作用域和绑定116

5.1.3 活动记录117

5.1.4 局部数据的布局117

5.1.5 程序块118

5.2 全局栈式存储分配119

5.2.1 运行时内存的划分120

5.2.2 活动树和运行栈120

5.2.3 调用序列122

5.2.4 栈上可变长度数据125

5.2.5 悬空引用126

5.3 非局部名字的访问127

5.3.1 无过程嵌套的静态作用域127

5.3.2 有过程嵌套的静态作用域128

5.4 参数传递131

5.4.1 值调用131

5.4.2 引用调用132

5.4.3 换名调用132

5.5 堆管理133

5.5.1 内存管理器133

5.5.2 计算机内存分层134

5.5.3 程序局部性136

5.5.4 手工回收请求136

习题137

第6章 中间代码生成149

6.1 中间语言150

6.1.1 后缀表示150

6.1.2 图形表示150

6.1.3 三地址代码151

6.1.4 静态单赋值形式153

6.2 声明语句154

6.2.1 过程中的声明154

6.2.2 作用域信息的保存155

6.2.3 记录的域名157

6.3 赋值语句158

6.3.1 符号表中的名字158

6.3.2 数组元素的地址计算159

6.3.3 数组元素地址计算的翻译方案160

6.3.4 类型转换163

6.4 布尔表达式和控制流语句164

6.4.1 布尔表达式164

6.4.2 控制流语句的中间代码结构165

6.4.3 布尔表达式的回填166

6.4.4 控制流语句的翻译168

6.4.5 开关语句的翻译169

6.4.6 过程调用的翻译171

习题172

第7章 代码生成和代码优化178

7.1 代码生成器设计中的问题178

7.1.1 目标程序178

7.1.2 指令选择179

7.1.3 寄存器分配180

7.1.4 计算次序选择180

7.2 目标语言181

7.2.1 目标机器的指令集181

7.2.2 指令代价182

7.3 基本块和流图184

7.3.1 基本块184

7.3.2 基本块的优化185

7.3.3 流图186

7.3.4 下次引用信息187

7.4 一个简单的代码生成器188

7.4.1 寄存器描述和地址描述189

7.4.2 代码生成算法190

7.4.3 寄存器选择函数190

7.4.4 为变址和指针语句产生代码192

7.4.5 条件语句193

7.5 代码优化概述194

7.5.1 优化的主要源头194

7.5.2 一个实例194

7.5.3 公共子表达式删除197

7.5.4 复写传播199

7.5.5 死代码删除199

7.5.6 代码外提200

7.5.7 强度削弱和归纳变量删除200

习题202

第8章 编译系统和运行系统217

8.1 C语言的编译系统217

8.1.1 预处理器218

8.1.2 汇编器219

8.1.3 连接器221

8.1.4 目标文件的格式222

8.1.5 符号解析224

8.1.6 静态库225

8.1.7 可执行目标文件及装入227

8.1.8 动态连接228

8.1.9 处理目标文件的一些工具230

8.2 Java语言的运行系统230

8.2.1 Java虚拟机语言简介231

8.2.2 Java虚拟机232

8.2.3 即时编译器233

习题235

第9章 面向对象语言的编译239

9.1 面向对象语言的概念239

9.1.1 对象和对象类239

9.1.2 继承240

9.1.3 信息封装242

9.2 方法的编译242

9.3 继承的编译方案245

9.3.1 单一继承的编译方案246

9.3.2 多重继承的编译方案248

习题253

附录255

附录1 PL/O语言及其实现255

附录2 基于PL/O语言的课程实践选题283

参考文献284

热门推荐