图书介绍

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

编译原理与技术
  • 李劲华,丁洁玉主编 著
  • 出版社: 北京:北京邮电大学出版社
  • ISBN:7563510710
  • 出版时间:2006
  • 标注页数:313页
  • 文件大小:15MB
  • 文件页数:328页
  • 主题词:编译程序-程序设计

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 编译过程概述3

1.3.1 词法分析3

1.3.2 语法分析4

1.3.3 语义分析和中间代码生成4

1.3.4 代码优化5

1.3.5 目标代码生成5

1.4 编译程序的构成6

1.4.1 基本功能模块7

1.4.2 符号表的组织与管理7

1.5.1 遍的概念8

1.5 其他与编译有关的概念和技术8

1.4.3 错误诊断和报告8

1.5.2 编译的前端和后端9

1.5.3 编译程序的分类9

1.5.4 编译技术和软件工具10

1.6 如何开发编译程序11

1.6.1 编译程序的自展技术11

1.6.2 编译程序的移植技术11

1.6.3 编译程序的自动生成技术12

1.7 编译系统以及其他相关程序12

练习114

第2章 词法分析15

2.1 词法分析器的设计15

2.1.1 词法分析器的功能与输出15

2.1.4 词法错误的处理17

2.1.3 词法分析器的两种实现模式17

2.1.2 词法扫描器与符号表17

2.2 词法分析器的一种手工实现18

2.2.1 输入的预处理18

2.2.2 超前搜索和最长匹配19

2.2.3 状态转换图19

2.2.4 基于状态转换图的词法分析器的实现22

2.3 规表达式25

2.3.1 符号、符号串与符号集合26

2.3.2 正规式与正规集27

2.3.3 扩展的正规式28

2.4 有限自动机29

2.4.1 确定的有限自动机30

2.4.2 不确定的有限自动机NFA32

2.4.3 从NFA到DFA的等价变换33

2.4.4 DFA的最小化36

2.4.5 从正规式到有限自动机38

2.4.6 有限自动机在计算机中的表示41

2.5 词法分析的自动生成器Lex42

2.5.1 Lex概述42

2.5.2 Lex的语言与实现43

练习245

第3章 程序语言的语法描述49

3.1 文法和语言49

3.1.1 文法的形式定义50

3.1.2 推导与归约51

3.1.3 分析树与语法树52

3.1.4 文法产生的语言54

3.1.5 语言的验证55

3.1.6 语言的文法表达56

3.1.7 文法的二义性58

3.1.8 BNF与EBNF61

3.2文法的分类63

3.2.1 0型文法63

3.2.2 1型文法63

3.2.3 2型文法——上下文无关文法64

3.2.4 3型文法65

3.3 文法的等价变换67

3.3.1 文法等价的概念67

3.3.2 增广文法67

3.3.3 提取左因子68

3.3.4 消除左递归68

3.4 语法分析概述70

3.4.1 自顶向下的语法分析70

3.3.5 对文法的使用限制70

3.4.2 自底向上的语法分析71

3.4.3 语法分析的基本问题72

练习373

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

4.1 自顶向下语法分析的一般方法77

4.2 LL(1)文法78

4.2.1 首符集FIRST79

4.2.2 后继符集FOLLOW80

4.2.3 选择集SELECT81

4.2.4 LL(1)文法82

4.3 递归下降分析技术84

4.3.1 递归下降分析器的设计84

4.3.2 从EBNF构造递归下降分析器88

4.4 预测分析技术89

4.4.1 预测分析程序的工作过程89

4.3.3 递归下降分析的特点89

4.4.2 预测分析表的构造91

4.5 LL(1)分析中的错误处理96

练习498

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

5.1 自底向上语法分析概述100

5.1.1 自底向上语法分析器的体系结构100

5.1.2 规范归约和算符优先归约101

5.1.3 短语、句柄和最左素短语103

5.2 算符优先分析方法104

5.2.1 算符优先文法105

5.2.2 算符优先关系的构造107

5.2.3 算符优先分析算法108

5.2.4 算符优先函数及其构造110

5.3.1 LR分析概述112

5.3 LR分析方法112

5.3.2 LR(0)分析表的构造116

5.3.3 SLR分析表的构造122

5.3.4 规范LR分析表的构造127

5.3.5 LALR分析表的构造132

5.3.6 LR分析方法小结134

5.4 LALR分析器的生成工具YACC139

5.4.1 YACC概述139

5.4.2 YACC源程序140

5.4.3 YACC解决二义性和冲突的方法142

5.4.4 YACC对语法分析中的错误处理143

练习5144

第6章 符号表的组织和管理148

6.1 符号表的作用148

6.2 符号表的主要属性及其作用149

6.3 符号表的组织结构152

6.3.1 符号表的整体组织结构153

6.3.2 关键码域的组织154

6.3.3 不等长域的组织155

6.3.4 符号表的操作与符号表项的组织156

6.4 名字的作用范围159

6.4.1 名字的声明159

6.4.2 块结构与符号表的分层次管理160

6.4.3 静态作用域和动态作用域162

练习6163

第7章 运行时环境165

7.1 程序运行的基本概念165

7.1.1 过程及其活动165

7.1.3 调用序列和返回序列167

7.1.2 活动记录167

7.1.4 活动树168

7.1.5 环境和名字的绑定168

7.2 参数传递机制169

7.2.1 按值调用169

7.2.2 引用调用170

7.2.3 值—结果调用170

7.2.4 换名调用171

7.3 运行时存储空间的组织和管理172

7.3.1 局部数据的存放172

7.3.2 运行时存储空间的划分173

7.3.3 存储分配策略174

7.4 静态运行时环境174

7.5 栈式运行时环境176

7.5.1 无过程嵌套的栈式运行时环境176

7.5.2 有过程嵌套的栈式运行时环境180

7.6 堆式运行时环境184

7.6.1 堆式动态存储分配的实现185

7.6.2 堆的自动管理186

7.7 面向对象语言的运行时环境189

7.7.1 面向对象语言的动态存储管理189

7.7.2 Java运行时环境191

练习7192

第8章 属性文法和语义分析197

8.1 语义分析概况197

8.2 属性与属性文法199

8.2.1 属性的引入199

8.2.2 属性文法的定义200

8.2.3 属性文法的扩展与简化204

8.3.1 属性依赖图和计算顺序206

8.3 属性的计算206

8.3.2 综合属性和继承属性及其计算210

8.3.3 语法分析的同时计算属性214

8.4 数据类型与类型检查222

8.4.1 类型表达式与类型构造器223

8.4.2 类型等价225

8.4.3 类型检查228

8.4.4 类型转换229

8.4.5 类型检查的其他问题231

练习8232

第9章 语法制导的中间代码翻译235

9.1 中间语言235

9.1.1 后缀式237

9.1.2 图形表示239

9.1.3 字节代码240

9.1.4 三地址代码及其四元式实现241

9.2 声明语句的翻译244

9.2.1 过程中的声明244

9.2.2 保留声明的作用域信息245

9.2.3 记录中的域名249

9.3 赋值语句的翻译249

9.3.1 简单算术表达式及赋值语句250

9.3.2 数组元素的引用252

9.3.3 记录和指针的引用257

9.3.4 类型转换258

9.4 基本控制结构的翻译259

9.4.1 布尔表达式的翻译259

9.4.2 控制流语句的多趟翻译模式262

9.4.3 回填技术基础264

9.4.4 控制流语句的单趟翻译模式267

9.5 转向语句的翻译270

9.5.1 标号语句与goto语句的翻译270

9.5.2 出口语句的翻译271

9.5.3 开关语句的翻译272

9.5.4 过程调用的翻译274

练习9275

第10章 目标代码生成277

10.1 代码生成器设计的基本问题277

10.1.1 目标程序278

10.1.2 指令选择278

10.1.3 寄存器分配278

10.1.4 计算顺序的选择279

10.2 虚拟计算机模型279

10.3 语法制导的目标代码生成280

10.4.1 基本块及其构造283

10.4 基本块和待用信息283

10.4.2 流图285

10.4.3 待用信息286

10.5 一个简单代码生成器288

10.5.1 寄存器和地址的描述289

10.5.2 寄存器的分配原则与选择算法289

10.5.3 代码生成算法290

10.5.4 其他三地址语句的目标代码292

练习10293

第11章 代码优化295

11.1 代码优化的概念295

11.2 代码优化的基本技术297

11.2.1 删除公共子表达式297

11.2.4 代码外提299

11.2.3 删除无用代码299

11.2.2 复写传播299

11.2.5 强度消弱和删除归纳变量300

11.3 局部优化301

11.3.1 基本块的变换301

11.3.2 基本块的DAG实现302

11.3.3 基于DAG的局部优化305

11.4 机器代码优化-窥孔技术307

11.4.1 冗余存取的删除308

11.4.2 不可达代码的删除308

11.4.3 控制流优化308

11.4.4 代数化简与强度消弱309

11.4.5 特殊指令的使用310

11.5 代码优化的高级技术简介310

练习11311

参考文献313

热门推荐