图书介绍

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

编译原理
  • 李冬梅,施海虎编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115144656
  • 出版时间:2006
  • 标注页数:317页
  • 文件大小:14MB
  • 文件页数: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 编译程序的组成3

1.2.1 编译过程概述3

1.2.2 编译程序的逻辑结构6

1.2.3 编译阶段的前端和后端7

1.2.4 遍(pass)8

1.3 编译程序的构造8

1.3.1 如何构造一个编译程序8

1.3.2 编译程序的生成方法9

1.4.1 编译技术在软件开发中的应用10

1.4 编译技术的应用及发展10

1.4.2 编译技术的发展11

1.5 小结12

习题12

第2章 形式语言的基本知识13

2.1 字母表和符号串的基本概念13

2.1.1 字母表和符号串13

2.1.2 符号串的运算14

2.2 文法和语言的形式定义15

2.2.1 文法的非形式定义15

2.2.2 文法的形式定义17

2.2.3 推导的形式定义18

2.2.4 语言的形式定义19

2.2.5 递归文法21

2.3 句型的分析22

2.3.1 规范推导和规范归约22

2.3.2 语法树与文法的二义性23

2.4 文法和语言的分类25

2.5 PL/0编译程序概述27

2.5.1 PL/0语言的功能28

2.5.2 一个PL/0程序实例28

2.5.3 PL/0语言的文法29

2.5.4 PL/0编译程序的结构32

习题35

2.6 小结35

第3章 词法分析37

3.1 词法分析的任务37

3.2 词法分析程序的输出形式38

3.2.1 单词符号38

3.2.2 词法分析程序的输出形式38

3.3 词法分析程序的设计与实现39

3.3.1 正规文法及其状态图40

3.3.2 词法分析程序的实现41

3.4 正规式与有穷自动机45

3.4.1 正规式与正规集45

3.4.2 正规文法与正规式47

3.4.3 有穷自动机48

3.4.4 正规式与有穷自动机的等价性54

3.4.5 正规文法与有穷自动机的等价性56

3.5 词法分析程序的自动生成工具LEX57

3.5.1 LEX的源程序58

3.5.2 LEX的正规式61

3.5.3 LEX的实现63

3.5.4 Parser Generator的使用65

3.6 PL/0编译程序的词法分析66

3.6.1 PL/0词法分析程序的任务66

3.6.2 PL/0词法分析程序的设计67

3.7 小结69

习题70

第4章 语法分析73

4.1 语法分析的任务73

4.2 自顶向下分析法74

4.2.1 自顶向下分析的一般过程74

4.2.2 自顶向下分析存在的主要问题75

4.2.3 LL(1)文法的判别78

4.2.4 递归下降分析法82

4.2.5 LL(1)分析法84

4.3.1 自底向上分析的一般过程89

4.3 自底向上分析法89

4.3.2 自底向上分析存在的主要问题90

4.4 算符优先分析法93

4.4.1 方法概述93

4.4.2 算符优先文法的定义94

4.4.3 算符优先关系表的构造95

4.4.4 算符优先分析算法100

4.4.5 优先函数104

4.5 LR分析法106

4.5.1 LR分析器的逻辑结构和工作过程107

4.5.2 LR(0)分析法111

4.5.3 SLR(1)分析法120

4.5.4 LR(1)分析法124

4.5.5 LALR(1)分析法128

4.5.6 二义性文法的LR分析法130

4.6 语法分析程序的自动生成工具YACC133

4.6.1 YACC的源程序组成134

4.6.2 用LEX建立YACC的词法分析器141

4.7 PL/0编译程序的语法分析143

4.8 小结144

习题146

第5章 语义分析与中间代码生成149

5.1 语义分析的任务149

5.2.1 属性文法150

5.2 语法制导翻译150

5.2.2 语法制导翻译的过程151

5.2.3 语法制导定义152

5.2.4 抽象语法树的构造157

5.2.5 S属性定义与自底向上翻译160

5.2.6 L属性定义与自顶向下翻译161

5.3 中间代码166

5.3.1 后缀式167

5.3.2 三地址代码167

5.3.3 图形表示170

5.4.2 过程中说明语句的翻译171

5.4.1 简单说明语句的翻译171

5.4 说明语句的翻译171

5.5 赋值语句的翻译172

5.5.1 简单赋值语句的翻译172

5.5.2 含数组元素的赋值语句的翻译174

5.6 布尔表达式的翻译180

5.6.1 布尔表达式的两种计算方法180

5.6.2 数值表示法翻译方案180

5.6.3 控制流语句中布尔表达式的翻译181

5.7 控制流语句的翻译186

5.7.1 基本控制流语句的翻译186

5.7.2 for循环语句的翻译190

5.7.3 case语句的翻译191

5.8 过程调用语句的翻译193

5.9 PL/0编译程序的语义分析194

5.9.1 说明部分的分析195

5.9.2 过程体部分的分析197

5.9.3 PL/0编译程序目标代码的结构197

5.9.4 PL/0编译程序目标代码的生成198

5.10 小结203

习题203

6.1 符号表管理206

6.1.1 符号表的作用和内容206

第6章 符号表管理和错误处理206

6.1.2 符号表的组织207

6.1.3 分程序结构语言符号表的管理209

6.1.4 非分程序结构语言符号表的管理210

6.2 错误处理211

6.2.1 错误处理概述211

6.2.2 词法分析阶段的错误处理212

6.2.3 语法分析阶段的错误处理212

6.2.4 语义分析阶段的错误处理216

6.3 PL/0编译程序的错误处理218

6.3.1 PL/0编译程序的语法错误处理方法218

6.3.2 PL/0编译程序的错误局部化处理原则218

6.3.3 PL/0编译程序的错误局部化处理方法219

6.3.4 PL/0语言的出错信息表220

6.4 小结221

习题222

第7章 运行时的存储组织与分配223

7.1 存储组织概述223

7.1.1 存储空间的一般组织223

7.1.2 过程的活动和活动记录224

7.2 静态存储分配225

7.3 栈式动态存储分配225

7.3.1 简单语言的栈式存储分配225

7.3.2 嵌套过程语言的栈式存储分配228

7.4 堆式动态存储分配231

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

7.5.1 PL/0目标计算机的组织结构233

7.5.2 PL/0语言的栈式动态存储分配234

7.6 小结237

习题238

第8章 代码优化240

8.1 局部优化240

8.1.1 基本块的定义及其划分240

8.1.2 基本块内的优化241

8.1.3 基本块的DAG表示243

8.1.4 利用DAG进行基本块的优化处理248

8.2 循环优化250

8.2.1 程序流图250

8.2.2 循环的定义和查找251

8.2.3 循环优化253

8.3 小结258

习题259

第9章 目标代码生成261

9.1 目标代码的形式261

9.2 假想的计算机模型262

9.3.1 待用信息与活跃信息263

9.3 一个简单的代码生成程序263

9.3.2 寄存器分配265

9.3.3 简单的代码生成算法266

9.4 小结268

习题269

附录A 使用C语言实现的PL/0程序270

A.1 程序简介270

A.2 程序文本270

附录B 使用LEX和YACC语言实现的PL/0程序297

B.1 程序简介297

B.2 程序文本298

参考文献317

热门推荐