图书介绍

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

编译原理 第2版
  • 张素琴等编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302089795
  • 出版时间:2005
  • 标注页数:456页
  • 文件大小:77MB
  • 文件页数:315页
  • 主题词:编译程序-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编译原理 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

第1章 引论1

1.1 什么是编译程序1

1.2 编译过程和编译程序的结构2

1.2.1 编译过程概述2

1.2.2 编译程序的结构5

1.2.3 编译阶段的组合6

1.3 解释程序和一些软件工具7

1.3.1 解释程序7

1.3.2 处理源程序的软件工具8

1.4 程序设计语言范型10

练习11

第2章 PL/0编译程序的实现13

2.1 PL/0语言描述13

2.1.1 PL/0语言的语法描述图13

2.1.2 PL/0语言文法的EBNF表示15

2.2 PL/0编译程序的结构16

2.3 PL/0编译程序的词法分析18

2.4 PL/0编译程序的语法语义分析20

2.5 PL/0编译程序的目标代码结构和代码生成23

2.6 PL/0编译程序的语法错误处理25

2.7 PL/0编译程序的目标代码解释执行时的存储分配27

练习30

第3章 文法和语言32

3.1 文法的直观概念32

3.2 符号和符号串33

3.3 文法和语言的形式定义34

3.4 文法的类型38

3.5 上下文无关文法及其语法树39

3.6 句型的分析42

3.6.2 自下而上的分析方法43

3.6.1 自上而下的分析方法43

3.6.3 句型分析的有关问题44

3.7 有关文法实用中的一些说明45

3.7.1 有关文法的实用限制45

3.7.2 上下文无关文法中的ε规则46

3.8 典型例题及解答46

练习47

第4章 词法分析50

4.1 词法分析程序的设计50

4.1.1 词法分析程序与语法分析程序的接口方式50

4.1.2 词法分析程序的输出50

4.1.3 将词法分析工作分离的考虑51

4.2 单词的描述工具52

4.2.1 正规文法52

4.2.2 正规式52

4.2.3 正规文法和正规式的等价性53

4.3 有穷自动机55

4.3.1 确定的有穷自动机(DFA)55

4.3.2 不确定的有穷自动机(NFA)56

4.3.3 NFA转换为等价的DFA57

4.3.4 确定有穷自动机的化简60

4.4 正规式和有穷自动机的等价性61

4.5 正规文法和有穷自动机的等价性65

4.6 词法分析程序的自动构造工具66

4.7 典型例题及解答68

练习72

第5章 自顶向下语法分析方法75

5.1 确定的自顶向下分析思想75

5.2 LL(1)文法的判别79

5.3 某些非LL(1)文法到LL(1)文法的等价变换84

5.4 不确定的自顶向下分析思想91

5.5.1 递归子程序法92

5.5 确定的自顶向下分析方法92

5.5.2 预测分析方法93

5.6 典型例题及解答96

练习99

第6章 自底向上优先分析102

6.1 自底向上优先分析概述103

6.2 简单优先分析法103

6.2.1 优先关系104

6.2.2 简单优先文法的定义105

6.2.3 简单优先分析法的操作步骤105

6.3 算符优先分析法106

6.3.1 直观算符优先分析法106

6.3.2 算符优先文法的定义107

6.3.3 算符优先关系表的构造109

6.3.4 算符优先分析算法114

6.3.5 优先函数117

6.3.6 算符优先分析法的局限性120

6.4 典型例题及解答121

练习122

第7章 LR分析123

7.1 LR分析概述123

7.2 LR(0)分析124

7.2.1 可归前缀和子前缀125

7.2.2 识别活前缀的有限自动机126

7.2.3 活前缀及其可归前缀的一般计算方法128

7.2.4 LR(0)项目集规范族的构造130

7.3 S LR(1)分析137

7.4 LR(1)分析143

7.4.1 LR(1)项目集族的构造144

7.4.2 LR(1)分析表的构造145

7.5 LALR(1)分析147

7.6 二义性文法在LR分析中的应用153

7.7 语法分析程序的自动构造工具YACC155

7.8 典型例题及解答160

练习165

第8章 语法制导翻译和中间代码生成169

8.1 属性文法169

8.2 语法制导翻译概论171

8.2.1 计算语义规则172

8.2.2 S-属性文法和自下而上翻译173

8.2.3 L-属性文法在自上而下分析中的实现174

8.2.4 L-属性文法在自下而上分析中的实现176

8.3 中间代码的形式177

8.3.1 逆波兰记号177

8.3.2 三元式和树形表示178

8.3.3 四元式179

8.4 简单赋值语句的翻译179

8.5.1 布尔表达式的翻译方法181

8.5 布尔表达式的翻译181

8.5.2 控制语句中布尔表达式的翻译182

8.6 控制结构的翻译186

8.6.1 条件转移186

8.6.2 开关语句189

8.6.3 for循环语句191

8.6.4 出口语句192

8.6.5 goto语句193

8.6.6 过程调用的四元式产生195

8.7 说明语句的翻译196

8.7.1 简单说明语句的翻译196

8.7.2 过程中的说明197

8.8 数组和结构的翻译198

8.8.1 数组说明和数组元素的引用198

8.8.2 结构(记录)说明和引用的翻译201

练习202

9.1 符号表的作用和地位204

第9章 符号表204

9.2 符号的主要属性及作用205

9.3 符号表的组织210

9.3.1 符号表的总体组织210

9.3.2 符号表项的排列213

9.3.3 关键字域的组织215

9.3.4 其他域的组织216

9.3.5 下推链域的组织223

9.4 符号表的管理223

9.4.1 符号表的初始化224

9.4.2 符号的登录224

9.4.3 符号的查找226

9.4.4 符号表中分程序结构层次的管理226

练习229

10.1 数据空间的三种不同使用方法和管理方法231

第10章 目标程序运行时的存储组织231

10.1.1 静态存储分配232

10.1.2 动态存储分配233

10.1.3 栈式动态存储分配233

10.1.4 堆式动态存储分配233

10.2 栈式存储分配的实现234

10.2.1 简单的栈式存储分配的实现234

10.2.2 嵌套过程语言的栈式实现236

10.2.3 分程序结构的存储管理240

10.3 参数传递244

10.3.1 传值244

10.3.2 传地址245

10.3.3 过程参数246

10.4 过程调用、过程进入和过程返回247

练习247

11.1 优化技术简介249

第11章 代码优化249

11.2 局部优化251

11.2.1 基本块的划分251

11.2.2 基本块的变换252

11.2.3 基本块的有向图DAG(Directed Acyclic Graph)表示253

11.2.4 DAG的应用255

11.3 控制流分析和循环优化257

11.3.1 程序流图258

11.3.3 循环优化259

11.3.2 循环的查找259

11.4 数据流的分析与全局优化262

11.4.1 一些主要的概念262

11.4.2 数据流方程的一般形式263

11.4.3 到达-定值数据流方程264

11.4.4 可用表达式及其数据流方程267

11.4.5 活跃变量数据流方程269

练习271

11.4.6 复写传播271

第12章 代码生成274

12.1 代码生成概述274

12.1.1 代码生成程序在编译系统中的位置274

12.1.2 设计代码生成程序的基本问题274

12.2 一个简单的代码生成程序278

12.2.1 计算机模型278

12.2.2 待用信息链表法279

12.2.3 代码生成算法280

12.3 几种常用的代码生成程序的开发方法282

12.3.1 解释性代码生成法282

12.3.2 模式匹配代码生成法283

12.3.3 表驱动代码生成法284

12.4 全局寄存器分配(图着色法)284

12.4.1 概述284

12.4.2 图着色寄存器分配法的相关技术285

12.4.3 示例289

12.5.1 模式匹配与动态规划293

12.5 代码生成程序的自动化构造293

12.5.2 基于语法制导的代码生成程序自动构造技术298

12.5.3 基于语义制导的代码生成程序自动构造技术300

练习301

第13章 编译程序的构造302

13.1 编译程序的书写302

13.1.1 编译程序的书写语言与T型图302

13.1.2 编译程序的自展技术303

13.2 可重定向编译程序304

13.2.1 概述304

13.2.2 支持可重定向编译的关键技术306

13.2.3 常用的可重定向编译程序307

13.3.1 GCC的总体结构308

13.3.2 GCC的中表示308

13.3 GCC的剖析308

13.3.3 GCC的机器描述310

13.3.4 GCC的代码生成与机器描述的接口312

13.4 GCC的定制316

13.4.1 GCC的剪裁316

13.4.2 GCC编译程序的安装与配置317

13.5 GCC的优化319

13.5.1 概述319

13.5.2 窥孔优化320

13.5.3 基于机器描述的窥孔优化322

13.5.4 修改GCC源程序的窥孔优化324

练习325

第14章 面向对象语言的编译326

14.1 面向对象语言的基本概念326

14.2 面向对象语言语法结构及语义处理的特征330

14.2.1 面向对象语言的类的语法结构及语义330

14.2.2 面向对象语言的有效类、延迟类及延迟成员332

14.2.3 面向对象语言的类属类333

14.2.4 面向对象语言的继承类336

14.3 多态实例变量、多态引用的类型检查及绑定340

14.3.1 实例变量和多态引用340

14.3.2 静态类型检查及动态类型检查342

14.3.3 静态绑定及动态绑定345

14.4 对象的创建及面向对象操作的语义353

14.4.1 对象的创建353

14.4.2 面向对象操作的语义357

14.5 类名的属性构造368

14.5.1 类名的属性及其结构369

14.5.2 类成员名的属性及其结构370

14.6 对象的存储管理及废弃单元回收372

14.6.1 对象的三种存储区组织管理方式372

14.6.2 静态模型和栈式模型废弃单元的回收374

14.6.3 堆式模型废弃单元的回收374

练习388

第15章 编译程序的面向对象构造389

15.1 编译程序面向对象构造的基本概念389

15.1.1 编译程序的需求389

15.1.2 编译程序的分解389

15.1.3 类的构造层次393

15.1.4 类的特性定义393

15.2 构造编译程序的面向对象类库395

15.2.1 对传统编译程序构造中软件复用的分析395

15.2.2 面向对象编译类库的地位397

15.2.3 语言编译论域的面向对象论域分析398

15.3 面向对象编译程序的符号表构造410

练习412

附录A PL/0编译程序文本413

A.1 Pascal版本413

A.2 C版本429

参考文献456

热门推荐