图书介绍

编译原理PDF|Epub|txt|kindle电子书版本网盘下载

编译原理
  • 张雪峰,姚学武,尚文,张稼编著 著
  • 出版社: 北京:研究出版社
  • ISBN:9787801683519
  • 出版时间:2008
  • 标注页数:271页
  • 文件大小:38MB
  • 文件页数:281页
  • 主题词:编译程序-程序设计-高等学校-教材

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

编译的分析-综合模型2

编译器的前驱与后继3

1.2编译器的各阶段4

词法分析4

语法分析4

语义分析5

中间代码生成6

代码优化6

符号表管理7

错误检测与报告7

1.3编译预处理8

预处理器8

汇编器8

装配器和连接编辑器8

1.4编译器各阶段的分组9

前端与后端9

编译的遍9

减少编译的遍数9

1.5编译器的构造工具10

1.6程序设计语言范型10

强制(命令)型语言11

函数型语言11

逻辑(规则)型语言11

面向对象语言11

面向数据结构型语言12

混合型语言12

基于多目标机的多源语言12

小结12

综合练习一12

一、选择题12

二、填空题13

三、应用题13

第2章 形式语言与自动机理论基础15

2.1文法与语言15

字母表、串和语言15

文法与语言的引入16

形式定义17

文法与语言的分类18

2.2正规文法与有穷自动机20

正规集与正规文法20

有穷自动机21

正规文法到有穷自动机的转换24

正规文法与正规式25

2.3正规式、NFA和DFA之间的等价转换26

从正规式构造NFA27

NFA的确定化29

DFA的最小化32

DFA到正规式的转换34

2.4上下文无关文法与下推自动机36

上下文无关文法36

上下文无关文法的变换37

语法树与文法的二义性39

下推自动机40

小结43

综合练习二43

一、选择题43

二、填空题44

三、应用题44

第3章 词法分析48

3.1词法分析概述48

词法分析阶段的必要性49

记号、模式和词素49

单词的机内表示50

词法错误51

输入缓冲51

3.2词法分析程序的设计方法53

单词符号的分类与识别53

状态转换图55

扫描器的任务57

扫描器的设计58

3.3词法分析器的自动构造原理63

Lex语言的基本语句与功能63

Lex输入文件的格式66

Lex编译器原理70

小结71

综合练习三72

一、选择题72

二、填空题72

三、应用题72

四、实验题73

第4章 语法分析74

4.1语法分析概述74

自顶向下的语法分析74

自底向上的语法分析75

推导76

推导过程的表示——分析树77

文法的二义性78

消除二义性80

消除左递归83

消除回溯84

语法分析的错误处理85

错误恢复策略86

4.2自顶向下的语法分析87

递归下降分析法87

预测语法分析法88

状态转换图88

非递归的预测分析法89

FIRST集合、FOLLOW集合和SELECT集合90

预测分析表的构造93

LL(1)文法及其分析法94

预测分析的错误恢复96

4.3自底向上的语法分析97

句柄98

句柄裁剪99

用栈实现移进-归约分析100

活前缀101

移进-归约分析过程中的冲突101

4.4算符优先分析法103

算符优先文法的定义104

算符优先关系表的构造105

算符优先分析算法的设计106

优先函数的构造109

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

算符优先分析法的局限性113

4.5 LR分析方法113

LR语法分析概述114

LR文法与LR分析方法的特点116

LR(0)分析法116

SLR(1)分析法121

LR(1)分析法125

LALR(1)分析法128

LALR(1)语法分析表的有效构造132

LR语法分析表的压缩133

4.6二义性文法的应用135

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

悬空else的二义性137

特例产生式引起的二义性解决139

LR语法分析中的错误恢复140

4.7语法分析器的生成器141

语法分析器的生成器YACC142

用YACC处理二义性文法144

用Lex建立YACC的词法分析器145

YACC的错误恢复145

小结146

综合练习四146

一、选择题146

二、填空题147

三、应用题147

四、实验题149

第5章 语法制导翻译与中间代码生成151

5.1语法制导翻译概述151

语法制导翻译的形式152

综合属性152

继承属性153

依赖图154

计算次序155

5.2 S属性的自下而上计算156

语法树156

构造表达式的语法树156

构造语法树的语法制导翻译157

表达式的无环有向图158

S属性的自下而上计算159

5.3 L属性文法160

L属性文法的定义161

翻译方案161

5.4自顶向下的语法制导翻译162

删除翻译方案的左递归162

预测翻译器的设计164

5.5继承属性的自下而上计算165

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

分析栈上的继承属性166

模拟继承属性的计算167

用综合属性代替继承属性169

递归次数不确定的语法制导翻译169

5.6递归计算170

自左向右遍历170

其他遍历方法170

5.7语法制导翻译的分析171

属性的递归计算172

强无环的语法制导翻译172

5.8中间语言173

图表示173

三地址码174

三地址语句的类型174

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

三地址语句与四元式176

表示方法比较与间址的使用177

5.9声明语句的翻译177

过程中的声明语句178

跟踪作用域信息178

记录中的域名179

5.10赋值语句的翻译180

简单算术表达式及赋值语句180

临时变量的重用180

定址数组元素181

数组元素寻址的翻译方案182

赋值语句中的类型转换184

记录域的访问184

5.11布尔表达式的翻译185

翻译布尔表达式的方法185

用数值表示的布尔表达式的翻译185

短路代码185

控制流语句186

用控制流表示布尔表达式的翻译187

混合模式的布尔表达式188

5.12分支语句的翻译189

小结190

综合练习五191

一、选择题191

二、填空题191

三、应用题191

四、实验题192

第6章 运行时的存储空间组织193

6.1程序运行的基本概念193

过程与函数193

活动树194

控制栈194

声明的作用域195

名字的结合195

6.2存储组织196

运行时内存的划分196

活动记录197

编译时的局部数据安排197

6.3存储分配策略199

静态存储分配策略199

栈式存储分配策略201

悬空引用203

堆式存储分配策略204

6.4访问非局部变量207

程序块207

无过程嵌套的静态作用域209

有过程嵌套的静态作用域210

动态作用域212

6.5参数传递213

按值调用213

引用调用215

复写-恢复调用215

换名调用216

6.6面向对象语言的存储分配策略216

面向对象语言的动态存储管理216

Java语言的存储分配217

小结219

综合练习六219

一、选择题219

二、填空题219

三、应用题220

四、实验题221

第7章 代码优化222

7.1优化技术简介222

7.2局部优化224

基本块的划分224

基本块的变换225

基本块DAG表示225

7.3循环优化226

程序流图226

循环227

代码外提228

强度削弱230

删除归纳变量231

7.4数据流分析与全局优化234

主要的概念234

数据流方程的一般形式235

到达-定值数据流方程235

小结239

综合练习七239

一、选择题239

二、填空题240

三、应用题240

四、实验题241

第8章 代码生成242

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

代码生成器的输入242

目标程序242

存储管理242

指令选择243

寄存器分配243

计算次序选译244

代码生成途径244

8.2目标机器244

8.3基本块和流图246

基本块246

基本块的变换247

流图248

8.4下次引用信息249

计算下次引用信息249

临时名字的存储分配250

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

寄存器描述和地址描述251

代码生成算法251

函数getreg251

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

条件语句252

小结253

综合练习八253

一、选择题253

二、填空题254

三、应用题254

四、实验题254

第9章 面向对象的编译技术256

9.1面向对象语言的基本概念256

抽象256

对象和对象类256

继承257

信息封装259

9.2方法的编译260

9.3继承的编译方案262

单一继承的编译262

多重继承的编译264

小结268

综合练习九268

一、选择题268

二、填空题269

三、应用题269

四、实验题269

参考文献270

内容简介271

热门推荐