当前位置:首页 > 工业技术
编译原理  第3版
编译原理  第3版

编译原理 第3版PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:蒋立源,康慕宁主编(西北工业大学计算机学院)
  • 出 版 社:西安:西北工业大学出版社
  • 出版年份:2005
  • ISBN:7561218702
  • 页数:390 页
图书介绍:本书第3版系普通高校教育“十五”国家级重点教材旨在系统地介绍编译系统的结构、工作流程以及编译程序的设计原理和实现技术。本书可作为大学计算机类本科专业的教材,也可作为计算机软件科技人员的参考书。
《编译原理 第3版》目录

第1章 绪论 1

1.1编译过程概述 3

1.2编译程序的逻辑结构 4

1.2.1词法分析程序 5

1.2.2语法分析程序 6

1.2.3语义分析程序 6

1.2.4中间代码生成 7

1.2.5代码优化程序 7

1.2.6目标代码生成程序 8

1.2.7错误检查和处理程序 9

1.2.8信息表管理程序 10

1.3编译程序的组织 11

习题 12

第2章 前后文无关文法和语言 14

2.1文法及语言的表示 14

2.2文法和语言的定义 15

2.2.1基本概念和术语 16

2.2.2文法和语言的形式定义 17

2.3句型的分析 23

2.3.1.规范推导和规范归约 23

2.3.2语法树和二义性 25

2.3.3短语和句柄 29

2.4文法的化简和改造 31

2.4.1无用符号和无用产生式的删除 31

2.4.2ε-产生式的消除 33

2.4.3单产生式的消除 35

2.5文法和语言的Chomsky分类 36

习题 38

第3章 词法分析及词法分析程序 42

3.1设计扫描器时应考虑的几个问题 42

3.1.1词法分析阶段的必要性 42

3.1.2单词符号的内部表示 43

3.1.3识别标识符的若干约定和策略 44

3.1.4源程序的输入及预处理 46

3.2正规文法和状态转换图 49

3.2.1由正规文法构造状态转换图 49

3.2.2状态转换图的一种实现——状态矩阵法 53

3.3有限自动机 59

3.3.1确定的有限自动机 59

3.3.2非确定的有限自动机 60

3.3.3 NFA与DFA的等价性 62

3.3.4具有ε动作的FA 64

3.3.5具有ε动作的NFA的确定化——子集法 66

3.3.6 DFA状态数的最小化 69

3.4正规表达式与正规集 71

3.4.1正规表达式与正规集的定义 72

3.4.2由正规文法构造相应的正规式 73

3.4.3由正规式构造FA—— Thompson法 76

3.5词法分析程序的实现 78

3.5.1词法分析程序的编写 79

3.5.2词法分析程序的自动生成 82

习题 98

上机实习题 104

第4章 语法分析和语法分析程序 106

4.1自顶向下的语法分析 107

4.1.1消除文法的左递归 108

4.1.2回溯的消除及LL(1)文法 111

4.1.3递归下降分析法 113

4.1.4预测分析法 119

4.1.5某些非LL(1)文法的改造 124

4.2自底向上的语法分析 126

4.2.1简单优先分析法 127

4.2.2算符优先分析法 133

4.2.3优先函数 138

4.2.4 LR分析法 144

习题 172

上机实习题 178

第5章 语法制导翻译及中间代码生成 181

5.1引言 181

5.2属性文法与属性翻译文法 183

5.2.1语义属性与属性文法 184

5.2.2属性翻译文法 187

5.3常见中间语言概述 192

5.3.1逆波兰表示 192

5.3.2四元式和三元式 194

5.3.3其它表示法 197

5.4简单算术表达式和赋值语句的翻译 198

5.5布尔表达式的翻译 200

5.6程序流程控制语句的翻译 205

5.6.1常见控制结构的翻译 205

5.6.2 FOR循环语句的翻译 211

5.6.3语句标号及GOTO语句的翻译 214

5.6.4情况语句的翻译 217

5.7含数组元素的算术表达式及赋值语句的翻译 219

5.7.1下标变量地址的计算 220

5.7.2含有下标变量的赋值语句的翻译 222

5.8过程说明和过程调用的翻译 225

5.8.1过程说明的翻译 225

5.8.2实参和形参间的信息传递 226

5.8.3过程语句的翻译 228

5.8.4关于形实结合的进一步讨论 230

5.9说明语句的翻译 231

5.9.1类型说明(变量及数组定义)语句的翻译 231

5.9.2数据类型定义语句的翻译 234

5.10语法分析程序的自动生成工具 237

5.10.1 LALR (1)分析器的自动生成工具—— YACC和OCCS 237

5.10.2 LL(1)语法分析程序自动生成工具LLama简介 248

5.10.3LLGen简介 249

5.10.4GCC概述 251

习题 253

上机实习题 255

第6章 符号表 257

6.1符号表的组织 257

6.2分程序结构语言符号表的建立 261

6.3非分程序结构语言符号表的建立 266

习题 268

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

7.1存储组织 271

7.1.1运行时内存的划分 271

7.1.2活动记录 271

7.2运行时的分配策略 272

7.2.1静态分配 273

7.2.2栈式分配 276

7.2.3堆式分配 278

习题 281

第8章 代码优化 284

8.1语法制导翻译阶段的优化 284

8.2线性窥孔优化 285

8.2.1强度削弱 286

8.2.2常数合并和常数传播 287

8.2.3无用变量与无用代码的删除 288

8.2.4窥孔优化实例 291

8.3基于结构信息的优化 293

8.3.1基本块及其优化 294

8.3.2数据流分析方法 300

8.3.3循环优化 310

习题 326

上机实习题 331

第9章 目标代码生成 332

9.1目标代码的形式 332

9.2一种假想的计算机模型 334

9.3一种代码生成程序的雏型 337

9.3.1待用信息 337

9.3.2寄存器描述符与地址描述符 338

9.3.3生成目标代码的算法 339

9.4 DAG的代码生成 342

9.5全局寄存器分配 344

习题 348

上机实习题 349

第10章 查错与改错 350

10.1语法错误的校正 351

10.1.1单词错误的校正 351

10.1.2自顶向下分析中的错误校正 352

10.1.3自底向上分析中的错误校正 355

10.2语义错误的校正 357

10.2.1遏止株连信息 358

10.2.2遏止重复信息 358

习题 359

第11章 面向对象语言的编译技术 360

11.1引言 360

11.1.1面向对象程序设计语言 361

11.1.2面向对象语言编译器的一些特点 361

11.2类和对象的基本特征 362

11.3类的基本定义 366

11.3.1基本类声明的语法定义 366

11.3.2基本类声明的抽象语法树表示 367

11.3.3基本类声明的处理 369

11.4面向对象程序设计语言的类型系统 377

11.4.1面向对象程序设计语言对类型系统的影响 377

11.4.2文法的扩展 378

11.4.3重载的处理 378

11.4.4继承的处理 382

习题 388

参考文献 389

返回顶部