图书介绍

编译原理2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

编译原理
  • 陈应明,马俊杰,张怀庆编著 著
  • 出版社: 北京:冶金工业出版社
  • ISBN:750243612X
  • 出版时间:2004
  • 标注页数:310页
  • 文件大小:25MB
  • 文件页数:322页
  • 主题词:编译程序-程序设计

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.1.1 编译的分析—综合模型2

1.1.2 编译器的前驱与后继3

1.2 编译器的各阶段4

1.2.1 词法分析4

1.2.2 语法分析5

1.2.3 语义分析5

1.2.4 中间代码生成6

1.2.5 代码优化6

1.3 编译器伙伴7

1.2.6 符号表管理7

1.2.7 错误检测与报告7

1.3.1 预处理器8

1.3.2 汇编器8

1.3.3 装配器和连接编辑器8

1.4 编译器各阶段的分组9

1.4.1 前端与后端9

1.4.2 编译器的遍9

1.4.3 减少编译的遍数10

1.5 编译器的构造工具10

一、选择题11

小结11

综合练习一11

二、填空题12

三、应用题12

第2章 简单的一遍编译器13

2.1 概述13

2.2 语法定义13

2.2.1 分析树15

2.2.2 二义性16

2.2.3 操作符的结合规则16

2.3 语法制导翻译17

2.2.4 操作符的优先级17

2.3.1 后缀表示18

2.3.2 语法制导定义18

2.3.3 综合属性19

2.3.4 深度优先遍历20

2.3.5 翻译模式20

2.4 语法分析20

2.4.1 自顶向下语法分析21

2.4.2 预测分析法22

2.4.3 何时使用ε产生式24

2.5 简单表达式的翻译器25

2.4.4 设计一个预测语法分析器25

2.4.5 左递归25

2.5.1 抽象语法和具体语法26

2.5.2 调整翻译模式27

2.5.3 非终结符expr、term和rest的过程27

2.5.4 翻译器的优化28

2.5.5 完整程序29

2.6 词法分析30

2.6.1 剔除空白符和注释31

2.6.2 常数31

2.6.3 识别标识符和关键字31

2.6.5 词法分析器32

2.6.4 词法分析器的接口32

2.7 符号表34

2.7.1 符号表接口34

2.7.2 处理保留的关键字35

2.7.3 符号表的实现方法35

2.8 抽象堆栈机36

2.8.1 算术指令37

2.8.2 左值和右值37

2.8.3 堆栈操作37

2.8.4 表达式的翻译37

2.8.5 控制流38

2.8.7 输出一个翻译39

2.8.6 语句的翻译39

2.9 技术的综合41

2.9.1 翻译器的描述41

2.9.2 词法分析器模块lexer.c42

2.9.3 语法分析器模块parser.c42

2.9.6 错误处理模块error.c43

2.9.7 编译器的建立43

2.9.8 程序清单43

2.9.5 符号表模块symbol.c和init.c43

2.9.4 输出模块emitter.c43

小结48

综合练习二48

一、选择题48

二、填空题49

三、应用题49

第3章 词法分析50

3.1 词法分析器的作用50

3.1.1 词法分析中的问题51

3.1.2 记号、模式、词素51

3.1.3 记号的属性52

3.1.5 输入缓冲53

3.1.4 词法错误53

3.2 记号的描述56

3.2.1 串和语言56

3.2.2 语言上的运算56

3.2.3 正规表达式57

3.2.4 正规定义59

3.2.5 缩写表示法60

3.2.6 非正规集60

3.3 单词符号的识别60

3.3.1 状态转换图61

3.3.2 状态转换图的实现64

3.4 有穷自动机69

3.4.1 确定型有穷自动机(DFA)70

3.4.2 不确定的有穷自动机(NFA)72

3.4.3 从NFA到DFA的变换74

3.5 词法分析器描述语言76

3.5.1 正规表达式的Lex约定77

3.5.2 Lex输入文件的格式78

小结84

综合练习三84

一、选择题84

三、应用题85

二、填空题85

第4章 语法分析86

4.1 语法分析器的作用86

4.1.1 语法错误的处理86

4.1.2 错误恢复策略87

4.2 上下文无关文法88

4.2.1 符号的使用约定89

4.2.2 推导90

4.2.3 分析树和推导91

4.2.4 二义性91

4.3 文法的编写93

4.3.1 正规表达式和上下文无关文法的比较94

4.3.2 验证文法所产生的语言95

4.3.3 消除二义性95

4.3.4 消除左递归98

4.3.5 提取左因子100

4.3.6 非上下文无关语言的结构101

4.4 自顶向下语法分析102

4.4.1 递归下降语法分析法102

4.4.2 预测语法分析器103

4.4.3 预测语法分析器的状态转换图104

4.4.4 非递归的预测分析105

4.4.5 FIRST集合和FOLLOW集合107

4.4.6 预测分析表的构造109

4.4.7 LL(1)文法109

4.4.8 预测分析的错误恢复111

4.5 自底向上语法分析112

4.5.1 句柄113

4.5.2 句柄裁剪114

4.5.3 用栈实现移动归约分析115

4.5.4 活前缀116

4.5.5 移动归约分析过程中的冲突116

4.6 算符优先分析法118

4.6.1 算符优先文法的定义119

4.6.2 算符优先关系表的构造120

4.6.3 算符优先分析算法的设计122

4.6.4 优先函数的构造125

4.6.5 算符优先分析中的错误恢复126

4.6.6 算符优先分析法的局限性129

4.7 LR语法分析器130

4.7.1 LR语法分析算法130

4.7.2 LR文法133

4.7.3 构造SLR语法分析表134

4.7.4 构造规范LR语法分析表139

4.7.5 构造LALR语法分析表143

4.7.6 LALR语法分析表的有效构造144

4.7.7 LR语法分析表的压缩146

4.8 二义文法的应用148

4.8.1 使用优先级和结合规则来解决分析动作的冲突148

4.8.2 悬空else的二义性150

4.8.3 特例产生式引起的二义性151

4.8.4 LR语法分析中的错误恢复153

4.9 语法分析器的生成器155

4.9.1 语法分析器的生成器YACC155

4.9.2 用YACC处理二义文法157

4.9.3 用Lex建立YACC的词法分析器159

4.9.4 YACC的错误恢复160

小结161

综合练习四161

一、选择题161

二、填空题162

三、应用题162

第5章 类型检查163

5.1 类型系统163

5.1.1 类型表达式164

5.1.2 类型系统165

5.1.3 静态和动态类型检查165

5.2.1 一种简单语言166

5.1.4 错误恢复166

5.2 一个简单的类型检查器的说明166

5.2.2 表达式的类型检查167

5.2.3 语句的类型检查167

5.2.4 函数的类型检查168

5.3 类型表达式的等价168

5.3.1 类型表达式的结构等价169

5.3.2 类型表达式的名字169

5.3.3 类型表示中的环171

5.4 类型转换172

5.5.1 子表达式的可能类型的集合173

5.5 函数和运算符的重载173

5.5.2 缩小可能类型的集合174

5.6 多态函数175

5.6.1 为什么要使用多态函数175

5.6.2 类型变量176

5.6.3 包含多态函数的语言177

5.6.4 代换、实例和合一179

5.6.5 多态函数的检查180

5.7 合一算法183

综合练习五187

一、选择题187

小结187

二、填空题188

三、应用题188

第6章 语法制导翻译与中间代码生成189

6.1 语法制导定义189

6.1.1 语法制导定义的形式190

6.1.2 综合属性191

6.1.3 继承属性191

6.1.4 依赖图192

6.1.5 计算次序193

6.2.1 语法树194

6.2 S属性的自下而上计算194

6.2.2 构造表达式的语法树195

6.2.3 构造语法树的语法制导定义196

6.2.4 表达式的无环有向图197

6.2.5 S属性的自下而上计算198

6.3 L属性定义200

6.3.1 L属性定义200

6.3.2 翻译方案200

6.4 自上而下翻译202

6.4.1 删除翻译方案的左递归202

6.4.2 预测翻译器的设计204

6.5.1 删除翻译方案中嵌入的动作206

6.5 继承属性的自下而上计算206

6.5.2 分析栈上的继承属性207

6.5.3 模拟继承属性的计算208

6.5.4 用综合属性代替继承属性210

6.5.5 一个困难的语法制导定义211

6.6 递归计算211

6.6.1 自左向右遍历211

6.6.2 其他遍历方法212

6.7 语法制导定义的分析213

6.7.1 属性的递归计算213

6.8 中间语言215

6.7.2 强无环的语法制导定义215

6.8.1 图表示216

6.8.2 三地址码216

6.8.3 三地址语句的类型217

6.8.4 语法制导翻译生成三地址码218

6.8.5 三地址语句的实现219

6.8.6 表示方法比较:间址的使用221

6.9 声明语句221

6.9.1 过程中的声明语句221

6.9.2 跟踪作用域信息222

6.9.3 记录中的域名223

6.10.1 符号表中的名字224

6.10 赋值语句224

6.10.2 临时名字的重用225

6.10.3 定址数组元素226

6.10.4 数组元素寻址的翻译模式228

6.10.5 赋值语句中的类型转换229

6.10.6 记录域的访问230

6.11 布尔表达式230

6.11.1 翻译布尔表达式的方法231

6.11.2 数值表示231

6.11.4 控制流语句232

6.11.3 短路代码232

6.11.5 布尔表达式的控制流翻译234

6.11.6 混合模式的布尔表达式235

6.12 case语句236

小结238

综合练习六239

一、选择题239

二、填空题239

三、应用题240

7.1 源语言问题241

7.1.1 过程241

第7章 运行时的环境241

7.1.2 活动树242

7.1.3 控制栈242

7.1.4 声明的作用域243

7.1.5 名字的结合243

7.2 存储组织244

7.2.1 运行时内存的划分244

7.2.2 活动记录245

7.2.3 编译时的局部数据安排246

7.3.1 静态分配247

7.3 存储分配策略247

7.3.2 栈分配248

7.3.3 悬空引用251

7.3.4 堆分配252

7.4 访问非局部名字252

7.4.1 程序块252

7.4.2 无过程嵌套的静态作用域254

7.4.3 有过程嵌套的静态作用域255

7.4.4 动态作用域257

7.5 参数传递258

7.5.1 值调用259

7.5.2 引用调用260

7.5.4 换名调用261

7.5.3 复写—恢复261

小结262

综合练习七262

一、选择题262

二、填空题262

三、应用题263

8.1.1 代码生成器的输入264

8.1.2 目标程序264

8.1 代码生成器设计中的问题264

第8章 代码生成264

8.1.3 存储管理265

8.1.4 指令选择265

8.1.5 寄存器分配266

8.1.6 计算次序选译267

8.1.7 代码生成途径267

8.2 目标机器267

8.3 基本块和流图269

8.3.1 基本块269

8.3.2 基本块的变换270

8.3.3 流图272

8.4.2 临时名字的存储分配273

8.4.1 计算下次引用信息273

8.4 下次引用信息273

8.5 一个简单的代码生成器274

8.5.1 寄存器描述和地址描述274

8.5.2 代码生成算法275

8.5.3 函数getreg275

8.5.4 为其他类型的语句产生代码277

8.5.5 条件语句277

小结278

综合练习八278

一、选择题278

三、应用题279

二、填空题279

第9章 代码优化280

9.1 优化技术简介280

9.2 局部优化283

9.2.1 基本块的划分283

9.2.2 基本块的变换284

9.2.3 基本块DAG表示284

9.3 循环优化285

9.3.1 程序流图与循环285

9.3.2 循环286

9.3.3 代码外提287

9.3.4 强度削弱289

9.3.5 删除归纳变量290

9.4 数据流分析与全局优化293

9.4.1 一些主要的概念294

9.4.2 数据流方程的一般形式294

9.4.3 到达一定值数据流方程295

小结299

综合练习九299

一、选择题299

三、应用题300

二、填空题300

参考答案301

第1章301

第2章301

第3章302

第4章302

第5章304

第6章305

第7章306

第8章307

第9章308

参考文献310

热门推荐