图书介绍

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

程序设计语言编译原理
  • 陈火旺,钱家骅,孙永强编 著
  • 出版社: 国防工业出版社
  • ISBN:
  • 出版时间:1984
  • 标注页数:309页
  • 文件大小:137MB
  • 文件页数:319页
  • 主题词:

PDF下载


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

下载说明

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

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

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

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

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

图书目录

引论1

0.1 什么叫编译程序1

0.2 编译过程概述1

0.3 编译程序的结构4

0.3.1 编译程序总框4

0.3.2 表格与表格管理5

0.3.3 遍7

0.4 编译程序的生成7

0.5 学习构造编译程序8

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

1.1 程序语言的定义10

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

1.1.2 语义11

1.2 初等类型数据12

1.2.1 标识符和名字13

1.2.2 名字的属性和说明13

1.3 数据结构14

1.3.1 数组14

1.3.2 记录结构16

1.3.3 字符串、表格和栈17

1.4 表达式17

1.5 语句19

1.5.1 赋值句19

1.5.2 控制语句20

1.5.3 说明句20

1.5.4 简单句和复合句20

1.6 程序段20

1.6.1 FORTRAN20

1.6.2 ALGOL21

1.6.3 PASCAL21

1.7 参数传递22

1.7.1 参数22

1.7.2 传地址22

1.7.3 传值23

1.7.4 传名24

1.8 存储管理24

1.8.1 静态存储分配24

1.8.2 动态存储分配24

1.8.3 栈式动态存储分配25

1.8.4 堆式动态存储分配26

1.9 历史回顾27

第二章 词法分析29

2.1 对于词法分析器的要求29

2.1.1 词法分析器的功能和输出形式29

2.1.2 词法分析器作为一个独立子程序30

2.2 词法分析器的设计30

2.2.1 输入、预处理31

2.2.2 单词符号的识别:超前搜索32

2.2.3 状态转换图33

2.2.4 状态转换图的实现36

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

2.3.1 正规式与正规集38

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

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

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

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

2.4 词法分析器的自动产生46

2.4.1 语言LEX的一般描述47

2.4.2 超前搜索49

2.4.3 LEX的实现50

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

3.1 上下文无关文法55

3.1.1 文法与语言55

3.1.2 语法树与二义性58

3.1.3 形式语言鸟瞰60

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

3.2.1 归约与分析树63

3.2.2 规范归约简述65

3.2.3 符号栈的使用与分析树的表示67

3.3 算符优先分析法68

3.3.1 直观算符优先分析法70

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

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

3.3.4 优先函数78

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

3.5 递归下降分析法82

3.5.1 左递归的消除83

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

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

3.5.4 预测分析程序88

3.5.5 状态表92

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

4.1 LR分析器98

4.1.1 LR文法101

4.1.2 一些非LR结构102

4.2 LR(0)项目集族和LR(0)分析表的构造103

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

4.2.2 有效项目107

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

4.3 SLR分析表的构造109

4.4 规范LR分析表的构造113

4.5 LALR分析表的构造116

4.6 二义文法的应用123

4.7 分析表的自动产生126

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

4.7.2 结合规则127

4.8 LR分析表的实际安排128

第五章 语法制导翻译和中间代码产生132

5.1 语法制导翻译概说132

5.2 逆波兰表示法135

5.2.1 后缀式的计值135

5.2.2 后缀式的推广136

5.2.3 语法制导生成后缀式137

5.3 三元式和树137

5.3.1 间接三元式139

5.3.2 树139

5.4 四元式140

5.5 简单算术表达式和赋值句到四元式的翻译141

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

5.6.1 作为条件控制的布尔式翻译145

5.7 控制语句的翻译148

5.7.1 标号和转移语句148

5.7.2 条件语句149

5.7.3 循环语句152

5.7.4 分叉语句154

5.8 数组元素引用156

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

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

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

5.9 过程调用162

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

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

5.10 说明语句的翻译163

5.11 记录结构165

5.11.1 记录说明的翻译166

5.11.2 记录结构的引用167

5.12 输入/输出语句的翻译168

5.12.1 I/O语句的实现168

5.12.2 I/O语句的翻译170

5.12.3 格式语句的处理171

5.13 自上而下分析制导翻译概说172

第六章 符号表178

6.1 符号表的组织和使用178

6.2 整理与查找180

6.2.1 线性表180

6.2.2 对折查找与二叉树181

6.2.3 杂凑技术183

6.3 名字的作用范围185

6.3.1 FORTRAN的符号表组织185

6.3.2 ALGOL的符号表组织186

6.4 符号表的内容189

第七章 运行时存储空间组织193

7.1 静态存储管理——FORTRAN存储分配193

7.1.1 数据区194

7.1.2 公用语句的处理196

7.1.3 等价语句的处理197

7.1.4 地址分配200

7.1.5 临时变量的地址分配202

7.2 一个简单的栈式存储分配的实现204

7.2.1 C的活动记录205

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

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

7.3.1 嵌套层次显示表DISPLAY和活动记录207

7.3.2 过程调用,过程进入208

7.3.3 参数传递209

7.4 ALGOL的实现210

7.4.1 分程序结构211

7.4.2 分程序的进入和退出212

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

7.4.4 参数子程序215

7.5 分程序结构语言存储分配拾遗216

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

8.1 出错处理概述219

8.1.1 语法错误220

8.1.2 语义错误220

8.1.3 错误处理221

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

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

8.3 语法分析(自下而上)阶段的错误诊察223

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

8.3.2 LR分析算法的错误处理226

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

8.5 语义错误诊察231

8.5.1 遏止株连信息231

8.5.2 遏止重复信息231

第九章 代码优化233

9.1 优化概述233

9.2 局部优化236

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

9.3.1 基本块的DAG表示237

9.3.2 DAG的应用240

9.3.3 DAG构造算法讨论242

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

9.4.1 程序流图与循环245

9.4.2 必经结点集246

9.4.3 查找循环算法248

9.4.4 可归约流图250

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

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

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

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

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

9.5.4 ud链的应用257

9.6 循环优化258

9.6.1 代码外提258

9.6.2 强度削弱261

9.6.3 删除归纳变量263

第十章 数据流分析271

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

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

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

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

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

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

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

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

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

10.3 复写传播279

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

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

10.4.2 代码提升284

10.5 四类数据流方程小结285

10.6 实施各种优化的综合考虑286

第十一章 代码生成293

11.1 一个计算机模型293

11.2 一个简单代码生成器294

11.2.1 待用信息294

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

11.2.3 代码生成算法295

11.3 寄存器分配298

11.4 DAG的目标代码301

11.5 树的目标代码303

热门推荐