《编译原理及编译程序构造》求取 ⇩

1 引论1

1.1 程序设计语言与编译1

1.2 编译程序概述2

1.2.1 词法分析3

1.2.2 语法分析3

1.2.3 中间代码生成5

1.2.4 优化5

1.2.5 目标代码生成6

1.2.6 表格与表格管理6

1.2.7 出错处理8

1.2.8 遍8

1.3 编译程序生成9

1.4 编译程序构造10

2 编译基础知识11

2.1 字母表与符号串11

2.1.1 符号串集合的运算11

2.1.2 字母表的闭包与正闭包12

2.2 文法与语言的关系12

2.2.1 文法的概念12

2.2.2 文法与语言的形式定义15

2.3 文法构造与文法简化18

2.3.1 由语言构造文法的例子18

2.3.2 文法的简化19

2.3.3 构造无ε产生式的上下文无关文法20

2.4 语法树与文法的二义性21

2.4.1 语法树21

2.4.2 文法的二义性22

习题24

3 词法分析26

3.1 正规文法和有限自动机26

3.1.1 正规文法、正规集与正规式26

3.1.2 有限自动机28

3.1.3 正规式与有限自动机之间的关系33

3.1.4 正规文法与有限自动机36

3.2 词法分析程序38

3.2.1 预处理与超前搜索38

3.2.2 扫描器的输出格式39

3.2.3 扫描器的设计41

3.3 词法分析程序的自动生成47

3.3.1 LEX语言47

3.3.2 LEX编译程序的构造49

习题51

4 自上而下语法分析54

4.1 下推自动机54

4.2 自上而下分析法的一般问题55

4.2.1 消除左递归57

4.2.2 消除回溯——预测与提左因子59

4.3 预测分析程序与LL(1)文法60

4.3.1 求串a的终结首符集和非终结符A的随符集62

4.3.2 构造预测分析表64

4.3.3 状态表66

4.4 递归下降分析法68

习题74

5 优先分析法77

5.1 简单优先分析方法77

5.1.1 基本思想77

5.1.2 有关文法的一些关系78

5.1.3 优先矩阵的构造算法82

5.1.4 简单优先分析算法84

5.2 算符优先分析法85

5.2.1 算符优先分析技术的引进87

5.2.2 算符优先文法及优先表的构造89

5.2.3 算符优先分析的若干问题92

5.3 优先函数96

习题98

6 LR分析法及分析程序自动构造6.1 LR分析器101

6.2 LR(0)项目集族和LR(0)分析表的构造104

6.2.1 LR(0)项目集规范族的构造106

6.2.2 LR(0)分析表的构造算法107

6.3 SLR分析表的构造108

6.4 规范LR分析表的构造111

6.4.1 构造LR(1)项目集规范族的算法112

6.4.2 构造LR(1)分析表算法113

6.5 LALR分析表构造114

6.5.1 基本思想114

6.5.2 构造LALR分析表算法116

6.6 二义文法的应用117

6.7 分析表的自动生成121

6.7.1 终结符和产生式的优先级122

6.7.2 结合规则122

6.7.3 LR分析表的安排124

习题125

7 语法制导翻译并产生中间代码7.1 概述127

7.2 简单算术表达式和赋值语句的翻译129

7.2.1 四元式129

7.2.2 赋值语句的翻译130

7.2.3 类型转换132

7.3 布尔表达式的翻译133

7.3.1 布尔表达式在逻辑演算中的翻译133

7.3.2 控制语句中布尔式的翻译134

7.4 控制语句的翻译138

7.4.1 标号和转移语句139

7.4.2 IF语句的翻译140

7.4.3 WHILE语句的翻译142

7.4.4 REPEAT语句的翻译143

7.4.5 循环FOR语句的翻译144

7.4.6 分情语句的翻译147

7.4.7 复合语句的翻译151

7.5 数组元素及其在赋值语句中的翻译152

7.5.1 数组及下标变量地址的计算152

7.5.2 数组元素引用的中间代码形式154

7.5.3 按行存放赋值语句中数组元素的翻译155

7.5.4 按列存放赋值语句中数组元素的翻译158

7.6 过程调用语句159

7.6.1 参数传递160

7.6.2 过程调用语句的翻译161

7.6.3 过程调用和数组元素相混淆的处理162

7.7 说明语句的翻译163

7.7.1 分程序结构的符号表163

7.7.2 整型、实型说明语句的翻译166

7.7.3 常量定义语句的翻译167

7.7.4 数组说明语句的翻译168

7.7.5 过程说明语句的翻译169

7.8 输入/输出语句的翻译169

7.9 自上而下分析制导的翻译171

7.9.1 算术表达式的翻译171

7.9.2 布尔表达式的翻译173

7.9.3 简单语句的翻译175

7.9.4 LL(1)语法制导翻译178

7.10 属性文法与属性翻译180

7.10.1 属性文法与L属性文法180

7.10.2 属性翻译182

7.11 中间代码的其它形式184

7.11.1 后缀式表示法184

7.11.2 三元式187

7.11.3 间接三元式188

7.11.4 树189

习题190

8 运行时数据区的管理194

8.1 静态存储管理194

8.1.1 数据区194

8.1.2 公用语句处理196

8.1.3 等价语句处理197

8.1.4 地址分配199

8.1.5 临时变量地址分配201

8.2 栈式存储管理203

8.2.1 允许过程(函数)递归调用的数据存储管理203

8.2.2 嵌套过程语言的栈式存储管理206

8.3 堆式存储管理211

8.3.1 堆式存储管理技术211

8.3.2 堆空间的释放与无用单元收集214

习题215

9 中间代码优化218

9.1 优化概述218

9.1.1 局部优化简介218

9.1.2 循环优化简介219

9.1.3 全局优化简介221

9.2 局部优化222

9.2.1 基本块222

9.2.2 基本块的DAG表示224

9.2.3 DAG在基本块优化中的作用228

9.2.4 DAG构造算法讨论230

9.3 控制流程分析和循环查找算法232

9.3.1 程序流图与必经结点集232

9.3.2 深度为主排序234

9.3.3 查找循环算法234

9.4 数据流分析235

9.4.1 到达-定值数据流方程235

9.4.2 引用-定值链(ud链)238

9.4.3 活跃变量及数据流方程238

9.5 循环优化240

9.5.1 代码外提240

9.5.2 强度减弱与归纳变量删除242

习题243

10 目标代码生成248

10.1 模型计算机的指令系统248

10.2 一种简单代码生成算法249

10.2.1 活跃信息与待用信息249

10.2.2 寄存器和变量地址描述250

10.2.3 代码生成算法251

10.3 循环中寄存器分配254

10.4 DAG结点的一种启发式排序256

习题259

附录 EL语言编译程序261

A EL语言文法的扩充Backus表示法261

B EL语言编译程序构造的实践指导262

C 扩充的EL语言文法与中间代码的解释执行程序274

参考文献278

1995《编译原理及编译程序构造》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由秦振松编 1995 南京:东南大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

程序设计语言编译原理(1980 PDF版)
程序设计语言编译原理
1980 北京:国防工业出版社
程序设计语言 编译原理( PDF版)
程序设计语言 编译原理
编译原理及编译程序构造(1995年12月第1版 PDF版)
编译原理及编译程序构造
1995年12月第1版 东南大学出版社
程序设计语言编译原理(1984.06 PDF版)
程序设计语言编译原理
1984.06 国防工业出版社
PASCAL编译程序( PDF版)
PASCAL编译程序
ibmpccobol编译程序( PDF版)
ibmpccobol编译程序
0520资料出版联合体
COBOL编译程序( PDF版)
COBOL编译程序
上海电子计算机厂
COBOL编译程序(1985 PDF版)
COBOL编译程序
1985
COBOL编译程序( PDF版)
COBOL编译程序
FORTRAN编译程序( PDF版)
FORTRAN编译程序
编译程序构造方法(1991 PDF版)
编译程序构造方法
1991 北京:科学出版社
COBOL编译程序(1990 PDF版)
COBOL编译程序
1990 辽宁省电子计算机学会《小型微型计算机系统》编辑部
FORTRAN编译程序(1990 PDF版)
FORTRAN编译程序
1990 辽宁省电子计算机学会《小型微型计算机系统》编辑部
编译程序原理与技术(1997 PDF版)
编译程序原理与技术
1997 北京市:清华大学出版社
编译程序设计原理(1990 PDF版)
编译程序设计原理
1990 北京:北京大学出版社