《编译原理》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:张晶主编;陈香凝,董德义,李鑫编
  • 出 版 社:哈尔滨:哈尔滨工程大学出版社
  • 出版年份:2011
  • ISBN:9787566101150
  • 页数:252 页
图书介绍:本书系统、全面地介绍了编译程序的基本原理、实现技术、方法和工具。在全书的安排上,首先介绍了编译程序的定义、结构、组织以及文法和语言的相关知识;然后以编译程序的结构为主线介绍了词法分析、语法分析、语法制导翻译与中间代码生成、代码优化和目标代码生成,并对词法分析、语法分析程序的生成工具LEX、YACC以及面向对象语言的编译进行了简要的介绍。

第1章 引论 1

1.1 什么是编译程序 1

1.2 编译程序的基本结构 2

1.3 编译程序的组织 6

习题 8

第2章 文法和语言 9

2.1 字母表和符号串 9

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

2.3 语法树和文法的二义性 16

2.4 文法的类型 19

习题 21

第3章 词法分析 23

3.1 有穷自动机 23

3.2 正规集、正规文法和正规式 29

3.3 正规文法与有穷自动机 33

3.4 正规式与NFA 35

3.5 DFA的化简 38

3.6 单词的分类表示 41

3.7 词法分析器的任务与设计考虑 42

3.8 词法分析器的设计与实现 43

习题 46

第4章 自顶向下的语法分析 49

4.1 左递归和回溯 49

4.2 FIRST和FOLLOW集合的构造 53

4.3 LL(1)文法 57

4.4 LL(1)分析法 59

4.5 递归下降法 62

习题 65

第5章 自底向上的语法分析 68

5.1 自底向上语法分析概述 68

5.2 短语、直接短语及句柄 70

5.3 简单优先分析法 71

5.4 算符优先分析法 75

习题 89

第6章 自底向上的LR分析法 92

6.1 LR分析的基本原理 92

6.2 LR分析器的逻辑结构 93

6.3 LR(0)分析表的构造 94

6.4 SLR分析表的构造 101

6.5 LR分析器总控程序 105

6.6 LR(1)分析表的构造 108

6.7 LALR(1)分析表的构造 112

习题 114

第7章 语法制导翻译与中间代码生成 117

7.1 属性文法 118

7.2 自底向上语法制导翻译概述 119

7.3 中间代码 122

7.4 简单说明语句的翻译 125

7.5 简单算术表达式和赋值语句的翻译 126

7.6 布尔表达式的翻译 128

7.7 控制流语句的翻译 133

7.8 含数组元素的赋值语句和说明语句的翻译 137

7.9 过程调用和返回语句的翻译 145

7.10 开关语句的翻译 146

7.11 结构说明的翻译 148

7.12 参数的传递 149

习题 152

第8章 运行时的存储管理 155

8.1 存储组织 155

8.2 静态存储分配 157

8.3 栈式存储分配 158

8.4 堆式存储分配 166

习题 167

第9章 符号表 169

9.1 符号表的作用 169

9.2 符号表的主要属性 169

9.3 符号表的组织 170

9.4 分程序结构符号表的管理 173

习题 174

第10章 代码优化 176

10.1 基本块与程序控制流图 176

10.2 局部优化 178

10.3 循环优化 183

10.4 数据流分析与全局优化 193

习题 205

第11章 目标代码生成 207

11.1 目标代码的形式 207

11.2 目标机器 207

11.3 一个简单的代码生成器 209

11.4 寄存器分配 214

11.5 DAG的代码生成 218

习题 220

第12章 词法分析程序生成器LEX 221

12.1 LEX概述 221

12.2 LEX源文件的格式 222

12.3 识别规则的二义性 225

12.4 上下文相关性的处理 225

第13章 语法分析程序生成工具YACC 228

13.1 YACC概述 228

13.2 YACC源文件的格式 228

13.3 冲突的处理 236

13.4 出错处理 237

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

14.1 面向对象语言的基本概念 239

14.2 面向对象语言语法结构及语义 242

14.3 实例变量、多态引用的类型检查及绑定 247

14.4 对象的存储管理及废弃单元回收 249

参考文献 252