图书介绍

编译原理与技术 第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

编译原理与技术 第2版
  • 李劲华,陈宇,丁洁玉主编 著
  • 出版社: 北京:北京邮电大学出版社
  • ISBN:9787563537709
  • 出版时间:2014
  • 标注页数:315页
  • 文件大小:156MB
  • 文件页数:328页
  • 主题词:编译程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编译原理与技术 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概论1

1.1为什么学习编译1

1.2什么叫编译程序2

1.3编译过程概述3

1.3.1词法分析3

1.3.2语法分析4

1.3.3语义分析和中间代码生成4

1.3.4代码优化5

1.3.5目标代码生成5

1.4编译程序的构成6

1.4.1基本功能模块7

1.4.2符号表的组织与管理7

1.4.3错误诊断和报告8

1.5其他与编译有关的概念和技术8

1.5.1遍的概念8

1.5.2编译的前端和后端9

1.5.3编译程序的分类9

1.5.4编译技术和软件工具10

1.6如何开发编译程序11

1.6.1编译程序的自展技术11

1.6.2编译程序的移植技术11

1.6.3编译程序的自动生成技术12

1.7编译系统以及其他相关程序12

练习114

第2章 词法分析15

2.1词法分析器的设计15

2.1.1词法分析器的功能与输出15

2.1.2词法扫描器与符号表17

2.1.3词法分析器的两种实现模式17

2.1.4词法错误的处理17

2.2词法分析器的一种手工实现18

2.2.1输入的预处理18

2.2.2超前搜索和最长匹配19

2.2.3状态转换图19

2.2.4基于状态转换图的词法分析器的实现22

2.3正规表达式25

2.3.1符号、符号串与符号集合26

2.3.2正规式与正规集27

2.3.3扩展的正规式28

2.4有限自动机29

2.4.1确定的有限自动机30

2.4.2不确定的有限自动机NFA32

2.4.3从NFA到DFA的等价变换33

2.4.4 DFA的最小化36

2.4.5从正规式到有限自动机38

2.4.6有限自动机在计算机中的表示41

2.5词法分析的自动生成器Lex42

2.5.1 Lex概述42

2.5.2 Lex的语言与实现43

练习245

第3章 程序语言的语法描述48

3.1文法和语言49

3.1.1文法的形式定义50

3.1.2推导与归约51

3.1.3分析树与语法树52

3.1.4文法产生的语言54

3.1.5语言的验证55

3.1.6语言的文法表达56

3.1.7文法的二义性58

3.1.8 BNF与EBNF61

3.2文法的分类63

3.2.1 0型文法63

3.2.2 1型文法63

3.2.3 2型文法——上下文无关文法64

3.2.4 3型文法65

3.3文法的等价变换67

3.3.1文法等价的概念67

3.3.2增广文法67

3.3.3提取左因子68

3.3.4消除左递归68

3.3.5对文法的使用限制70

3.4语法分析概述70

3.4.1自顶向下的语法分析70

3.4.2自底向上的语法分析71

3.4.3语法分析的基本问题72

练习373

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

4.1自顶向下语法分析的一般方法77

4.2 LL(1)文法及其分析78

4.2.1首符集FIRST80

4.2.2后继符集FOLLOW82

4.2.3选择集SELECT84

4.2.4 LL(1)文法85

4.2.5 LL(1)文法的分析87

4.3递归下降分析技术88

4.3.1递归下降分析器的设计88

4.3.2从EBNF构造递归下降分析器92

4.3.3递归下降分析的特点93

4.4预测分析技术93

4.4.1预测分析程序的工作过程93

4.4.2预测分析表的构造95

4.5 LL(1)分析中的错误处理98

练习4100

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

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

5.1.1自底向上语法分析器的体系结构102

5.1.2规范归约和算符优先归约103

5.1.3短语、句柄和最左素短语105

5.2算符优先分析方法106

5.2.1算符优先文法107

5.2.2算符优先关系的构造109

5.2.3算符优先分析算法110

5.2.4算符优先函数及其构造112

5.3 LR分析方法114

5.3.1 LR分析概述114

5.3.2 LR(0)分析表的构造118

5.3.3 SLR分析表的构造124

5.3.4规范LR分析表的构造129

5.3.5 LALR分析表的构造134

5.3.6 LR分析方法小结136

5.4 LALR分析器的生成工具YACC141

5.4.1 YACC概述141

5.4.2 YACC源程序142

5.4.3 YACC解决二义性和冲突的方法144

5.4.4 YACC对语法分析中的错误处理145

练习5146

第6章 符号表的组织和管理150

6.1符号表的作用150

6.2符号表的主要属性及其作用151

6.3符号表的组织结构154

6.3.1符号表的整体组织结构155

6.3.2关键码域的组织156

6.3.3不等长域的组织157

6.3.4符号表的操作与符号表项的组织158

6.4名字的作用范围161

6.4.1名字的声明161

6.4.2块结构与符号表的分层次管理162

6.4.3静态作用域和动态作用域164

练习6165

第7章 运行时环境167

7.1程序运行的基本概念167

7.1.1过程及其活动167

7.1.2活动记录169

7.1.3调用序列和返回序列169

7.1.4活动树170

7.1.5环境和名字的绑定170

7.2参数传递机制171

7.2.1按值调用171

7.2.2引用调用172

7.2.3值-结果调用172

7.2.4换名调用173

7.3运行时存储空间的组织和管理174

7.3.1局部数据的存放174

7.3.2运行时存储空间的划分175

7.3.3存储分配策略176

7.4静态运行时环境176

7.5栈式运行时环境178

7.5.1无过程嵌套的栈式运行时环境178

7.5.2有过程嵌套的栈式运行时环境182

7.6堆式运行时环境186

7.6.1堆式动态存储分配的实现187

7.6.2堆的自动管理188

7.7面向对象语言的运行时环境191

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

7.7.2 Java运行时环境193

练习7194

第8章 属性文法和语义分析199

8.1语义分析概况199

8.2属性与属性文法201

8.2.1属性的引入201

8.2.2属性文法的定义202

8.2.3属性文法的扩展与简化206

8.3属性的计算208

8.3.1属性依赖图和计算顺序208

8.3.2综合属性和继承属性及其计算212

8.3.3语法分析的同时计算属性216

8.4数据类型与类型检查224

8.4.1类型表达式与类型构造器225

8.4.2类型等价227

8.4.3类型检查230

8.4.4类型转换231

8.4.5类型检查的其他问题233

练习8234

第9章 语法制导的中间代码翻译237

9.1中间语言237

9.1.1后缀式239

9.1.2图形表示241

9.1.3字节代码242

9.1.4三地址代码及其四元式实现243

9.2声明语句的翻译246

9.2.1过程中的声明246

9.2.2保留声明的作用域信息247

9.2.3记录中的域名251

9.3赋值语句的翻译251

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

9.3.2数组元素的引用254

9.3.3记录和指针的引用259

9.3.4类型转换260

9.4基本控制结构的翻译261

9.4.1布尔表达式的翻译261

9.4.2控制流语句的多趟翻译模式264

9.4.3回填技术基础266

9.4.4控制流语句的单趟翻译模式269

9.5转向语句的翻译272

9.5.1标号语句与goto语句的翻译272

9.5.2出口语句的翻译273

9.5.3开关语句的翻译274

9.5.4过程调用的翻译276

练习9277

第10章 目标代码生成279

10.1代码生成器设计的基本问题279

10.1.1目标程序280

10.1.2指令选择280

10.1.3寄存器分配280

10.1.4计算顺序的选择281

10.2虚拟计算机模型281

10.3语法制导的目标代码生成282

10.4基本块和待用信息285

10.4.1基本块及其构造285

10.4.2流图287

10.4.3待用信息288

10.5一个简单代码生成器290

10.5.1寄存器和地址的描述291

10.5.2寄存器的分配原则与选择算法291

10.5.3代码生成算法292

10.5.4其他三地址语句的目标代码294

练习10295

第11章 代码优化297

11.1代码优化的概念297

11.2代码优化的基本技术299

11.2.1删除公共子表达式299

11.2.2复写传播301

11.2.3删除无用代码301

11.2.4代码外提301

11.2.5强度消弱和删除归纳变量302

11.3局部优化303

11.3.1基本块的变换303

11.3.2基本块的DAG实现304

11.3.3基于DAG的局部优化307

11.4机器代码优化——窥孔技术309

11.4.1冗余存取的删除310

11.4.2不可达代码的删除310

11.4.3控制流优化310

11.4.4代数化简与强度消弱311

11.4.5特殊指令的使用312

11.5代码优化的高级技术简介312

练习11313

参考文献315

热门推荐