《编译原理简明教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:冯秀芳,崔冬华,段富主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121153570
  • 页数:258 页
图书介绍:本书在第一版教材使用的基础上进行再版,介绍程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术。全书共分为15章,第1章到第3章讨论编译的基本概念和形式语言和自动机的理论基础;第4章到第9章介绍编译过程中的词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等几个主要阶段;第10章到第13章是编译过程中所用到的符号表、存储空间组织、出错处理、编译程序自动生成工具等辅助技术;第14章到15章是编译新技术和应用。

第1章 引言 1

1.1程序的翻译及运行 1

1.2编译过程概述 2

1.3编译程序的结构框图 5

1.4编译程序的开发 5

1.4.1编译程序的开发步骤 5

1.4.2编译程序的开发技术 6

1.4.3编译程序的自动生成 6

习题1 7

第2章 形式语言理论基础 8

2.1形式语言的基本概念 8

2.1.1符号和符号串 8

2.1.2符号串的运算 9

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

2.3语法树和二义性 16

2.3.1语法树和推导 16

2.3.2文法二义性 19

2.4文法的实用限制 21

2.4.1有害规则 21

2.4.2多余规则 21

2.4.3文法的实用限制 23

2.4.4文法的等价变换 23

2.4.5扩充的BNF表示法 28

2.5文法和语言的Chomsky分类 29

2.5.1 0型文法与0型语言(对应图灵机) 29

2.5.2 1型文法与1型语言(对应线性界限自动机) 29

2.5.3 2型文法与2型语言(对应下推自动机) 30

2.5.4 3型文法与3型语言(对应有限自动机) 31

2.5.5四类文法的关系 32

习题2 33

第3章 自动机理论基础 35

3.1有限自动机的基本概念 35

3.1.1有限自动机的定义及表示法 35

3.1.2有限自动机的机器模型 37

3.1.3确定有限自动机(DFA) 37

3.1.4有限自动机在计算机内的示 38

3.1.5不确定有限自动机(NFA) 39

3.1.6由NFA到DFA的等价转换 41

3.2确定有限自动机DFA的化简 43

3.2.1等价状态和无关状态 43

3.2.2自动机的化简 44

3.3正则表达式形式定义 46

3.4下推自动机PDA 47

3.4.1下推自动机的机器模型 47

3.4.2 PDA的形式定义 47

习题3 49

第4章 词法分析 51

4.1词法分析概述 51

4.1.1词法分析的功能 51

4.1.2词法分析的两种处理结构 51

4.1.3单词符号的种类 52

4.1.4词法分析程序的输出形式 52

4.2词法分析程序的设计与实现 53

4.2.1词法分析程序流程图 53

4.2.2读单词 54

4.2.3读无符号数 57

4.2.4读标识符 58

4.3词法分析程序的自动生成 60

4.3.1基本思想 60

4.3.2 LEX源程序结构 60

4.3.3 LEX编译程序工作过程 62

4.3.4 LEX的实现 62

4.3.5 LEX的使用方式 63

习题4 63

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

5.1自顶向下分析技术 65

5.2不确定的自顶向下分析思想 66

5.2.1三种终结符号集 67

5.2.2自顶向下分析过程中存在的问题及解决办法 68

5.3确定的自顶向下分析思想 70

5.4 LL (K)分析方法 70

5.4.1 LL (1)分析思想 71

5.4.2 LL (1)分析方法的逻辑结构 71

5.4.3 LL (1)分析方法 72

5.5递归下降分析法 78

5.5.1递归下降分析法的实现思想 78

5.5.2递归子程序及其性质 79

5.5.3递归下降分析法 80

习题5 84

第6章 语法分析——自底向上分析方法 87

6.1自底向上语法分析技术 87

6.1.1自底向上语法分析思想 87

6.1.2自底向上分析难点 88

6.2自底向上优先分析方法 89

6.2.1简单优先分析方法 89

6.2.2算符优先分析方法 93

6.3 LR (K)分析方法 101

6.3.1 LR分析思想及逻辑结构 102

6.3.2 LR (0)分析方法 105

6.3.3 SLR (1)分析方法 112

6.3.4 LR (1)分析方法 115

6.3.5 LALR(1)分析方法 118

习题6 122

第7章 语义分析及中间代码生成 124

7.1基本概念 124

7.1.1语义分析的概念 124

7.1.2属性文法技术 125

7.2几种常见的中间语言 128

7.2.1抽象语法树 128

7.2.2逆波兰表示 129

7.2.3四元式 132

7.2.4三元式 135

7.3表达式的翻译 138

7.3.1算术表达式的翻译 139

7.3.2布尔表达式的翻译 140

7.4语句的语法制导翻译 143

7.4.1说明语句的翻译 143

7.4.2赋值语句的翻译 145

7.4.3控制语句的翻译 146

习题7 149

第8章 代码优化 151

8.1代码优化的基本概念 151

8.1.1代码优化的定义 151

8.1.2代码优化的分类 151

8.1.3优化技术简介 152

8.2局部优化 155

8.2.1基本块的划分 155

8.2.2基本块的DAG表示 156

8.2.3基本块优化的实现 159

8.3循环优化 160

8.3.1循环的查找 160

8.3.2循环优化的实现 161

习题8 165

第9章 目标代码的生成 167

9.1目标代码生成程序中的有关问题 167

9.1.1目标代码生成程序的输入、输出 167

9.1.2目标代码 167

9.1.3寄存器分配 168

9.1.4运行时的存储管理 169

9.2一个计算机模型——虚拟机 169

9.2.1虚拟机 169

9.2.2虚拟机的汇编指令 169

9.3从中间代码生成目标代码 172

9.3.1从逆波兰表示生成目标代码 172

9.3.2从四元式序列生成目标代码 174

习题9 175

第10章 符号表 176

10.1符号表的组织与内容 176

10.2符号表的结构与存放 178

10.2.1线性符号表 178

10.2.2有序符号表 178

10.2.3散列符号表 179

10.2.4栈式符号表 180

10.3符号表的管理 181

10.3.1符号表的建立 182

10.3.2符号表的查填 183

习题10 184

第11章 目标程序运行时的存储组织与分配 185

11.1程序运行时的存储组织 185

11.2静态存储分配 185

11.3栈式动态存储分配 187

11.3.1简单的栈式存储分配 187

11.3.2嵌套过程语言的栈式存储分配 188

11.4堆式动态存储分配 190

11.5过程调用与返回 192

11.6参数传递机制 192

习题11 195

第12章 出错处理 196

12.1引言 196

12.1.1错误存在的必然性 196

12.1.2错误的种类 196

12.1.3错误复原 197

12.2校正词法错误 198

12.2.1词法错误的种类 198

12.2.2词法错误的校正 198

12.3校正语法错误 199

12.3.1语法错误的复原 199

12.3.2语法错误的校正 199

12.4校正语义错误 201

12.4.1语义错误的种类 201

12.4.2语义错误检查措施 202

习题12 203

第13章 编译程序自动生成工具简介 204

13.1引言 204

13.1.1编译程序自动生成工具概述 204

13.1.2编译程序自动生成工具的种类及常用工具简介 204

13.2词法分析自动生成工具 205

13.2.1 LEX系列词法分析自动生成工具简介 206

13.2.2其他词法分析自动生成工具简介 211

13.3语法分析自动生成工具 212

13.3.1 YACC系列语法分析自动生成工具简介 213

13.3.2其他语法分析自动生成工具简介 218

习题13 221

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

14.1概述 222

14.1.1面向对象语言的基本特征 222

14.1.2类和成员的属性构造 224

14.1.3面向对象编译程序的特点 227

14.2面向对象语言的编译 228

14.2.1单一继承 228

14.2.2多重继承 230

14.2.3多态性 231

14.2.4动态绑定 231

14.2.5接口类型 231

14.3面向对象的动态存储分配 232

14.3.1对象的存储区管理方式 232

14.3.2静态模型和栈式模型废弃单元的回收 232

14.3.3堆式模型废弃单元的回收 233

习题14 235

第15章 并行编译技术 236

15.1并行计算机及其编译系统简介 236

15.1.1并行计算相关技术简介 237

15.1.2并行编译系统的分类及结构 239

15.2并行程序设计模型 242

15.2.1并行体系结构分类及并行程序设计 242

15.2.2并行程序设计模型 243

15.3并行编译系统的构造 245

15.3.1并行编译系统的构造简介 245

15.3.2程序分析 246

15.3.3程序优化 250

15.3.4并行代码生成 251

15.4自动并行化技术目前研究现状 254

习题15 256

参考文献 257