当前位置:首页 > 工业技术
编译原理教程
编译原理教程

编译原理教程PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:寿永熙主编
  • 出 版 社:呼和浩特:内蒙古大学出版社
  • 出版年份:2004
  • ISBN:7810746871
  • 页数:290 页
图书介绍:本教材是我社组织的高等院校计算机系列教材之一,内容主要是计算机程序的编译基本原理。
《编译原理教程》目录

第一章 编译程序绪论 1

1.1什么是编译程序 1

1.1.1为什么要有编译程序 1

1.1.2什么是编译程序 2

1.2编译程序结构 3

1.2.1编译程序的逻辑结构 3

1.2.2编译程序在计算机科学中的地位 5

1.3编译程序分遍 6

1.4编译程序生成的方法 6

1.4.1编译程序用什么语言编写 6

1.4.2编译程序生成的方法 7

1.5编译技术的应用 9

1.6编译程序设计经过的阶段 9

小结 10

习题 10

第二章 文法和形式语言 11

2.1文法和形式语言的概念 11

2.2符号串与符号串运算 11

2.2.1字母表和符号串 12

2.2.2符号串运算 12

2.3文法和形式语言定义 16

2.3.1文法和推导的定义 16

2.3.2形式语言的定义 20

2.3.3递归产生式与递归文法 22

2.4句型分析 23

2.4.1规范推导 23

2.4.2归约 26

2.4.3短语、直接短语、句柄、素短语 27

2.5语法树与文法的二义性 30

2.5.1语法树和抽象法树 31

2.5.2语法树与短语、直接短语和句柄的关系 33

2.5.3语法树构造归约 36

2.5.4文法的二义性 37

2.6文法的实用限制 41

2.6.1有害产生式 41

2.6.2多余产生式 42

2.6.3直接左递归产生式 45

2.6.4 ε—产生式 47

2.6.5特殊产生式 49

2.7文法其它表示的方法 50

2.7.1扩充的BNF表示法 51

2.7.2语法图 52

2.8文法和语言的分类 55

2.8.1 0型文法与0型语言 55

2.8.2 1型文法与1型语言 56

2.8.3 2型文法与2型语言 57

2.8.4 3型文法与3型语言 57

小结 60

习题 61

第三章 自动机理论基础 64

3.1有穷自动机的基本概念 64

3.1.1确定的有穷自动机(DFA) 65

3.1.2非确定的有穷自动机(NFA) 68

3.2 NFA到DFA的等价变换 71

3.3 ε—NFA转换成DFA的方法 74

3.3.1 ε—NFA的定义 75

3.3.2子集构造矩阵算法 77

3.4 DFA的最小化 79

3.5有穷自动机的代码程序实现 82

3.6正规表达式与自动机 85

3.6.1正规表达式与正规集 85

3.6.2正则文法构造相应的正规表达式 86

3.6.3正规表达式构造有穷自动机 88

3.7正规文法与有穷自动机 91

3.8语法图与有穷自动机 97

小结 100

习题 101

第四章 词法分析 104

4.1扫描器的作用及地位 104

4.2设计扫描器考虑的问题 106

4.3扫描器的输出及结构 107

4.4扫描器的设计与实现 113

4.5扫描器的自动生成—LEX软件工具 119

4.5.1 LEX源程序结构 119

4.5.2 LEX编译程序的执行过程 122

4.5.3 LEX的目标程序 122

小结 122

习题 124

第五章 语法分析 125

5.1语法分析概述 125

5.2递归子程序法 125

5.2.1什么是回溯 126

5.2.2产生回溯的原因 128

5.2.3递归子程序法 132

5.3 LL (1)分析法 133

5.3.1什么是LL (1)分析法 133

5.3.2构造FIRST集和FOLLOW集的方法 135

5.3.3预测分析表 136

5.3.4 LL(1)分析器的工作原理 138

5.4算符优先分析法 139

5.4.1算符优先文法的定义 141

5.4.2构造FIRSTVT集和LASTVT集的方法 143

5.4.3优先表的构造方法 146

5.4.4优先函数 147

5.4.5算符优先分析算法 150

5.5 LR分析法 152

5.5.1 LR分析器引述 152

5.5.2 LR (0)分析法 154

5.5.3 SLR (1)分析法 158

5.5.4 LR(1)分析法 160

5.5.5 LALR (1)分析法 164

5.6语法分析器的自动生成—YACC软件工具 166

小结 167

习题 168

第六章 语法制导翻译与中间代码生成 170

6.1属性和属性文法 170

6.1.1属性文法 170

6.1.2综合和继承属性 173

6.1.3语法分析时属性的计算 176

6.1.4语法中属性计算的相关性 178

6.2语法制导翻译的概念 179

6.3中间代码的形式 183

6.3.1中间代码的含义 183

6.3.2逆波兰表示法 184

6.3.3三元式和树结构表示 185

6.3.4四元式表示法 186

6.4简单表达式及赋值语句的语法制导翻译 187

6.4.1算术表达式的逆波兰式语法制导翻译 187

6.4.2算术表达式的四元式语法制导翻译 187

6.4.3控制语句中的布尔表达式的翻译 190

6.5控制语句的翻译 195

6.5.1标号与goto语句的翻译 195

6.5.2 IF语句与WHILE语句的翻译 196

6.5.3 FOR语句的翻译 200

6.5.4 CASE语句的翻译 203

6.5.5过程调用语句的翻译 204

6.6数组定义及其引用的翻译 206

6.6.1数组元素的地址计算 206

6.6.2数组说明的处理 207

6.6.3赋值语句中数组元素的翻译 208

6.7说明语句的翻译 210

小结 211

习题六 212

第七章 符号表 215

7.1符号表及其应用 215

7.1.1什么是符号表 215

7.1.2静态表和动态表 216

7.1.3存储分配与符号表组织 218

7.2符号表的建立与查找 219

7.2.1 PASCAL符号表的建立与查找 219

7.2.2 ALGOL符号表的建立与查找 220

7.2.3 FORTRAN符号表的建立与查找 223

小结 223

习题 224

第八章 运行时的存储组织与分配 225

8.1程序运行时的存储组织与结构 225

8.1.1活动记录 225

8.1.2名字的作用域和绑定 226

8.1.3运行时内存的划分 226

8.2静态存储分配 227

8.3动态存储分配 229

8.3.1栈式存储分配 229

8.3.2简单的栈式存储分配的实现 230

8.3.3嵌套过程语言的栈式实现 232

8.3.4堆式存储分配 236

8.4参数传递实现方法 237

8.4.1传值 237

8.4.2传地址 238

8.4.3换名调用 238

8.4.4传结果 239

8.4.5过程名用作实参 239

小结 242

习题 242

第九章 代码优化 243

9.1代码优化基本思想 243

9.1.1合并常数 243

9.1.2消除多余运算 244

9.1.3循环优化 246

9.1.4下标变量的优化 249

9.2局部优化 251

9.2.1基本块的概念 251

9.2.2基本块的划分算法 252

9.2.3基本块表示的方法 253

9.2.4基本块的优化处理实例 257

小结 258

习题 259

第十章 目标代码生成 261

10.1虚拟计算机模型 261

10.2代码生成技术基础 263

10.3中间代码生成目标代码 265

10.3.1逆波兰式生成目标代码 265

10.3.2四元式生成目标代码 267

10.4语句的目标代码生成 268

10.4.1赋值语句的翻译 269

10.4.2条件语句的翻译 272

10.4.3循环语句的翻译 273

10.4.4过程和函数调用的翻译 275

小结 277

习题 278

第十一章 出错处理 279

11.1编译出错处理程序处理出错的种类 279

11.2词法分析阶段的错误处理 280

11.3语法分析阶段的错误处理 282

11.4语义错误处理 286

小结 289

习题 289

参考文献 290

返回顶部