图书介绍

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

编译原理
  • 吕映芝等编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302027323
  • 出版时间:1998
  • 标注页数:351页
  • 文件大小:14MB
  • 文件页数:360页
  • 主题词:

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.2 编译过程概述2

1.3 编译程序的结构6

1.4 编译阶段的组合7

1.5 编译技术和软件工具7

第2章 PL/O编译程序的实现9

2.1 PL/O语言描述9

2.1.1 PL/O语言的语法描述图9

2.1.2 PL/O语言文法的EBNF表示11

2.2 PL/O编译程序的结构12

2.3 PL/O编译程序的词法分析14

2.4 PL/O编译程序的语法分析16

2.5 PL/O编译程序的目标代码结构和代码生成19

2.6 PL/O编译程序的语法错误处理21

2.7 PL/O编译程序的目标代码解释执行时的存储分配24

2.8 练习26

第3章 文法和语言29

3.1 文法的直观概念29

3.2 符号和符号串30

3.3 文法和语言的形式定义31

3.4 文法的类型35

3.5 上下文无关文法及其语法树37

3.6 句型的分析39

3.6.1 自上而下的分析方法40

3.6.2 自下而上的分析方法40

3.6.3 句型分析的有关问题41

3.7.2 上下文无关文法中的ε规则43

3.7 有关文法实用中的一些说明43

3.7.1 有关文法的实用限制43

3.8 练习44

第4章 词法分析47

4.1 词法分析程序的设计47

4.1.1 词法分析程序与词法分析程序的接口方式47

4.1.2 词法分析程序的输出47

4.1.3 将词法分析工作分离的考虑48

4.2 单词的描述工具49

4.2.1 正规文法49

4.2.2 正规式49

4.2.3 正规文法到正规式51

4.3 有穷自动机52

4.3.1 确定的有穷自动机(DFA)52

4.3.3 NFA?DFA的转换54

4.3.2 不确定的有穷自动机(NFA)54

4.3.4 确定有穷自动机的化简57

4.4 正规式和有穷自动机的等价性59

4.5 正规文法和有穷自动机间的转换62

4.6 词法分析程序的自动构造工具63

4.6.1 LEX语言64

4.7 练习66

第5章 自顶向下语法分析方法69

5.1 确定的自顶向下分析思想69

5.2 LL(1)文法的判别73

5.3 某些非LL(1)文法到LL(1)文法的等价变换78

5.4 不确定的自顶向下分析思想85

5.5.1 递归子程序法87

5.5.2 预测分析方法87

5.5 确定的自顶向下分析方法87

5.6 练习90

第6章 自底向上优先分析法94

6.1 自底向上优先分析法概述95

6.2 简单优先分析法96

6.2.1 优先关系96

6.2.2 简单优先文法的定义97

6.2.3 简单优先分析法98

6.3 算符优先分析法98

6.3.1 直观算符优先分析法99

6.3.2 算符优先文法的定义100

6.3.3 算符优先关系表的构造102

6.3.4 算符优先分析算法109

6.3.5 优先函数111

6.3.6 算符优先分析法的局限性115

6.4 练习116

第7章 LR分析法117

7.1 LR分析概述117

7.2 LR(0)分析118

7.2.1 可归前缀和子前缀119

7.2.2 识别活前缀的有限自动机121

7.2.3 活前缀及其可归前缀的一般计算方法122

7.2.4 CR(0)项目集规范族的构造125

7.3 SLR(1)分析132

7.4 LR(1)分析139

7.4.1 LR(1)项目集族的构造140

7.4.2 LR(1)分析表的构造141

7.5 LALR(1)分析143

7.6 二义性文法在LR分析中的应用149

7.7 练习151

第8章 语法制导翻译和中间代码生成155

8.1 属性文法155

8.2 语法制导翻译概论157

8.3 中间代码的形式159

8.3.1 逆波兰记号159

8.3.2 三元式和树形表示160

8.3.3 四元式161

8.4 简单赋值语句的翻译162

8.5 布尔表达式的翻译163

8.5.1 布尔表达式的翻译方法164

8.5.2 控制语句中布尔表达式的翻译165

8.6 控制结构的翻译169

8.6.1 条件转移169

8.6.2 开关语句171

8.6.3 for循环语句173

8.6.4 出口语句175

8.6.5 goto语句176

8.6.6 过程调用的四元式产生177

8.7 说明语句的翻译178

8.7.1 简单说明句的翻译179

8.7.2 过程中的说明179

8.8 数组和结构的翻译180

8.8.1 数组说明和数组元素的引用180

8.8.2 结构(记录)说明和引用的翻译186

8.9练习188

第9章 符号表190

9.1 符号表的作用和地位190

9.2 符号的主要属性及作用191

9.3.1 符号表的总体组织196

9.3 符号表的组织196

9.3.2 符号表项的排列199

9.3.3 关键字域的组织201

9.3.4 其它域的组织202

9.3.5 下推链域的组织209

9.4 符号表的管理210

9.4.1 符号表的初始化210

9.4.2 符号的登录211

9.4.3 符号的查找212

9.4.4 符号表中分程序结构层次的管理213

9.5 练习216

第10章 目标程序运行时的存储组织217

10.1 数据空间的三种不同使用方法和管理方法217

10.1.1 静态存储分配218

10.1.4 堆式动态存储分配219

10.1.2 动态存储分配219

10.1.3 栈式动态存储分配219

10.2 栈式存储分配的实现220

10.2.1 简单的栈式存储分配的实现220

10.2.2 嵌套过程语言的栈式实现222

10.2.3 分程序结构的存储管理226

10.3 参数传递230

10.3.1 传值231

10.3.2 传地址232

10.3.3 过程参数232

10.4 过程调用、过程进入和过程返回233

10.5 练习234

11.1.1 优化技术简介236

11.1 优化技术简介236

第11章 代码优化236

11.2 局部优化239

11.2.1 基本块的划分239

11.2.2 基本块的变换239

11.2.3 基本块的DAG表示240

11.2.4 DAG的应用243

11.2.5 DAG构造算法讨论245

11.3 控制流分析和循环优化247

11.3.1 程序流图与循环247

11.3.2 循环248

11.3.3 循环的查找248

11.3.4 可归约流图253

11.3.5 循环优化253

11.4 数据流的分析与全局优化257

11.4.1 一些主要的概念258

11.4.2 数据流方程的一般形式258

11.4.3 到达一定值数据流方程259

11.4.4 可用表达式及其数据流方程263

11.4.5 活跃变量数据流方程265

11.4.6 复写传播266

11.5 练习267

第12章 代码生成270

12.1 代码生成概述270

12.2 一个计算机模型270

12.3 一个简单的代码生成器271

12.3.1 寄存器分配的原则271

12.3.2 待用信息链表法271

12.3.3 代码生成算法273

12.4.1 中间语言的选择275

12.4 代码生成研究现状275

12.4.2 代码生成的自动化研究277

12.5 练习278

第13章 编译程序实现的途径279

13.1 编译程序的书写语言与T型图279

13.2编译程序的自展技术279

13.3 交叉编译与编译程序的移植281

13.4 编译程序的构造工具282

13.4.1 基于LALR(1)的语法分析程序的生成器YACC282

13.4.2 基于LL(2)文法的编译器的构造工具(SD EBNF_LL(2))283

13.4.3 词法分析程序的生成器LEX286

13.5 练习287

附录A PL/O编译程序文本288

B.1 LEX概述306

附录B 词法分析程序生成器LEX的使用方法306

B.2 LEX源程序的格式307

B.3 LEX用的正规式307

B.4 LEX源程序中的动作310

B.5 识别规则的二义性312

B.6 LEX源程序中的辅助定义部分312

B.7 怎样在UNIX系统中使用LEX314

B.8 LEX源程序例子314

B.9 再谈上下文相关性的处理315

B.10 LEX源程序格式总结317

附录C 语法分析程序自动产生器YACC的使用方法319

C.1 YACC概述319

C.2 YACC源程序的一般格式320

C.3 YACC源程序说明部分的写法320

C.3.1 头文件表320

C.3.4 全局变量定义321

C.3.2 宏定义321

C.3.3 数据类型定义321

C.3.5 语法开始符定义322

C.3.6 语义值类型定义322

C.3.7 终结符定义323

C.3.8 运算符优先级及结合性定义323

C.4 YACC源程序中语法规则部分的写法325

C.4.1语法规则的书写格式325

C.4.2 语义动作326

C.4.3 YACC解决二义性和冲突的方法327

C.4.4 语法分析中的错误处理328

C.5.2 错误信息报告程序329

C.5.3 词法分析程序329

C.5.1 主程序329

C.5 程序段部分329

C.5.4 其它程序段331

C.6 YACC源程序例子说明331

C.6.1 YACC的源程序例1332

C.6.2 YACC的源程序例 2334

附录D 编译原理实验要求339

附录E 编译原理辅助教学软件功能介绍和使用说明340

E.1 功能介绍340

E.1.1 THPL0CAI的功能340

E.1.2 TH-CCAIS的功能340

E.2 使用说明341

E.2.1 THPL0CAI使用说明341

E.2.2 TH-CCAIS使用说明342

E.2.3 其它补充说明350

参考文献351

热门推荐