图书介绍

程序设计语言编译原理PDF|Epub|txt|kindle电子书版本网盘下载

程序设计语言编译原理
  • 陈火旺编 著
  • 出版社: 北京:国防工业出版社
  • ISBN:15034·2104
  • 出版时间:1980
  • 标注页数:326页
  • 文件大小:15MB
  • 文件页数:333页
  • 主题词:

PDF下载


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

下载说明

程序设计语言编译原理PDF格式电子书版下载

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

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

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

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

图书目录

目录1

引论1

0.1 什么叫编译程序1

0.2 编译过程概述1

0.2.1 编译的基本阶段1

0.2.2 表格管理和出错处理2

0.2.3 遍4

0.3 编译程序的生成4

0.4 学习构造编译程序5

第一章 高级程序语言概述6

1.1 程序语言的定义6

1.1.1 语言的词法和语法结构6

1.1.2 语义7

1.2.1 标识符和名字8

1.2 初等类型数据8

1.2.2 名字的属性和说明9

1.3 数据结构10

1.3.1 数组10

1.3.2 记录结构11

1.3.3 字符串、表格和栈12

1.4 表达式13

1.5 语句14

1.5.1 赋值句14

1.5.2 控制语句15

1.5.3 说明句15

1.5.4 简单句和复合句16

1.6 程序段16

1.6.1 FORTRAN16

1.6.2 ALGOL16

1.7.1 参数17

1.6.3 PASCAL17

1.7 参数传递17

1.7.2 传地址(call by reference)18

1.7.3 传值(call by value)19

*1.7.4 传名(call by name)19

1.8 存贮管理19

1.8.1 静态存贮分配20

1.8.2 动态存贮分配20

1.8.3 栈式动态存贮分配20

*1.8.4 堆式动态存贮分配21

1.9 历史回顾22

第二章 词法分析24

2.1 对于扫描器的考虑24

2.1.1 单词符号的种类和扫描器的输出形式24

2.2 扫描器的设计25

2.1.2 扫描器作为一个独立子程序25

2.2.1 预处理、缓冲区和超前搜索26

2.2.2 状态转换图27

2.2.3 状态转换图的实现30

*2.3 正规表达式与有限自动机31

2.3.1 正规式与正规集32

2.3.2 确定有限自动机(DFA)33

2.3.3 非确定有限自动机(NFA)34

2.3.4 正规式与有限自动机的等价性35

2.3.5 确定有限自动机的化简38

*2.4 词法分析器的自动产生39

2.4.1 语言LEX的一般描述40

2.4.2 超前搜索42

2.4.3 LEX的实现43

3.1.1 文法与语言48

3.1 上下文无关文法48

第三章 程序语言的语法描述与分析48

3.1.2 语法树与二义性51

3.1.3 形式语言鸟瞰53

3.2 语法分析——自下而上分析55

3.2.1 归约与句柄56

3.2.2 符号栈的使用和语法树的表示59

3.3 算符优先分析法60

3 3.1 直观算符优先分析法61

3.3.2 算符优先文法和优先表构造65

3.3.3 算符优先分析算法的设计67

3.3.4 优先函数69

3.4 语法分析——自上而下分析70

*3.5 递归下降分析法73

3.5.1 左递归的消除73

3.5.2 消除回溯、提左因子和递归下降分析器75

3.5.3 文法的另一种表示法和转换图77

3.5.4 预测分析程序79

3.5.5 状态表83

*第四章 语法分析程序的自动构造88

4.1 LR分析器88

4.1.1 LR文法91

4.1.2 一些非LR结构92

4.2 LR(0)项目集族和LR(0)分析93

表的构造93

4.2.1 LR(0)项目集规范族的构造95

4.2.2 有效项目97

4.2.3 LR(0)分析表的构造98

4.3 SLR分析表的构造99

4.4 规范LR分析表的构造103

4.5 LALR分析表的构造106

4.6 二义文法的应用112

4.7 分析表的自动产生116

4.7.1 终结符和产生式的优先级116

4.7.2 结合规则117

4.8 LR分析表的实际安排118

第五章 语法制导翻译和中间代码121

产生121

5.1 语法制导翻译概说121

5.2 逆波兰表示法124

5.2.1 后缀式的计值124

5.2.2 后缀式的推广125

5.2.3 语法制导生成后缀式126

5.3 三元式和树126

5.3.2 树128

5.3.1 间接三元式128

5.4 四元式129

5.5 简单算术表达式和赋值句到130

四元式的翻译130

5.6 布尔表达式到四元式的翻译133

5.7 控制语句的翻译137

5.7.1 标号和转移语句137

5.7.2 条件语句138

5.7.3 循环语句141

5.7.4 分叉语句143

5.8 数组元素引用145

5.8.1 数组元素引用的中间代码146

5.8.2 赋值句中数组元素的翻译147

5.8.3 按列为序存放数组元素的情形149

5.9 过程调用150

5.9.1 过程调用的四元式产生151

5.10 说明语句的翻译152

5.9.2 过程调用和数组元素相混淆的处理152

*5.11 记录结构154

5.11.1 记录说明的翻译155

5.11.2 记录结构的引用156

*5.12 自上而下分析制导翻译概说157

第六章 符号表163

6.1 符号表的组织和使用163

6.2 整理与查找165

6.2.1 线性表165

6.2.2 对折查找与二叉树166

6.2.3 杂凑技术168

6.3 名字的作用范围170

6.3.1 FORTRAN的符号表组织170

6.3.2 ALGOL的符号表组织171

6.4 符号表的内容173

第七章 运行时存贮空间组织177

7.1 静态存贮管理——FORTRAN177

存贮分配177

7.1.1 数据区178

7.1.2 公用语句的处理180

7.1.3 等价语句的处理181

7.1.4 地址分配184

7.1.5 临时变量的地址分配186

7.2 一个简单的栈式存贮分配的实现188

7.2.1 C的活动记录189

7.2.2 C的过程调用,过程进入,数组空间分配和过程返回189

7.3 嵌套过程语言的栈式实现191

7.3.1 嵌套层次显示表DISPLAY191

和活动记录191

7.3.3 参数传递193

7.3.2 过程调用,过程进入193

7.4 ALGOL的实现195

7.4.1 分程序结构195

7.4.2 分程序的进入和退出197

7.4.3 过程调用,进入和返回199

7.4.4 参数子程序199

7.5 分程序结构语言存贮分配拾遗201

第八章 错误的诊察和校正204

8.1 出错处理概述204

8.1.1 语法错误205

8.1.2 语义错误206

8.1.3 错误处理206

8.1.4 出错处理系统与编译程序各阶段的联系207

8.2 词法分析阶段的错误诊察207

8.3.1 算符优先分析法的错误处理208

错误诊察208

8.3 语法分析(自下而上)阶段的208

*8.3.2 LR分析算法的错误处理211

*8.4 自上而下分析的错误诊察214

8.5 语义错误诊察216

8.5.1 遏止株连信息216

8.5.2 遏止重复信息216

第九章 代码优化218

9.1 优化概述218

9.2 局部优化221

9.3 基本块的DAG表示及其应用222

9.3.1 基本块的DAG表示223

9.3.2 DAG的应用226

9.3.3 DAG构造算法讨论227

9.4 控制流程分析和循环查找算法229

9.4.1 程序流图与循环230

9.4.2 必经结点集231

9.4.3 查找循环算法234

9.4.4 可归约流图235

9.4.5 深度为主查找及其算法236

9.5 到达-定值与引用-定值链238

9.5.1 到达-定值数据流方程239

9.5.2 到达-定值数据流方程的求解240

9.5.3 引用-定值链(ud链)242

9.5.4 ud链的应用243

9.6 循环优化243

9.6.1 代码外提244

9.6.2 强度削弱247

9.6.3 删除归纳变量248

9.6.4 循环展开和循环合并252

10.1.1 活跃变量的数据流方程258

10.1 活跃变量与定值-引用链(du链)258

*第十章 数据流分析258

10.1.2 活跃变量数据流方程的求解259

10.1.3 定值-引用链(du链)261

10.1.4 活跃变量与du链的应用263

10.2 删除全局公共子表达式263

10.2.1 可用表达式及其数据流方程263

10.2.2 可用表达式数据流方程的求解265

10.2.3 删除全局公共子表达式的算法265

10.3 复写传播266

10.4 非常忙表达式和代码提升269

10.4.1 非常忙表达式数据流方程270

10.4.2 代码提升271

10.5 四类数据流方程小结272

10.6 指示器数据流分析273

10.7 过程间数据流分析278

10.8 实施各种优化的综合考虑283

11.1 一个计算机模型289

第十一章 代码生成289

11.2 一个简单代码生成器290

11.2.1 待用信息290

11.2.2 寄存器描述和地址描述291

11.2.3 代码生成算法291

11.3 寄存器分配293

*11.4 DAG的目标代码296

*11.5 树的目标代码299

*11.6 窥孔优化304

12.2 高级语言计算机系统结构309

12.2.1 语言的接近程度309

12.2.2 冯·诺依曼型结构(类型1)309

12.1 概述309

介绍309

第十二章 高级语言计算机系统结构309

12.2.3 面向语法的结构(类型2)310

12.2.4 间接执行计算机结构(类型3)311

12.2.5 直接执行计算机结构(类型4)312

12.3 栈式计算机结构312

12 3.1 栈结构312

12.3.2 表达式的计算313

12.3.3 用栈处理程序结构314

12.3.4 数据结构315

12.4 子程序连接317

12.4.1 调用317

12.4.2 参数318

12.5 分程序结构318

12.6 环境及过程常数321

12.7 子程序连接与分程序结构324

的合并处理324

热门推荐