《编译原理》求取 ⇩

前言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

1998《编译原理》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由吕映芝等编著 1998 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

编译原理(1985 PDF版)
编译原理
1985 北京:电子工业出版社
编译原理 P325( PDF版)
编译原理 P325
程序设计语言 编译原理( PDF版)
程序设计语言 编译原理
编译原理与实践(2020 PDF版)
编译原理与实践
2020
编译原理及编译程序构造(1995年12月第1版 PDF版)
编译原理及编译程序构造
1995年12月第1版 东南大学出版社
程序设计语言编译原理(1984.06 PDF版)
程序设计语言编译原理
1984.06 国防工业出版社
编译原理与实践( PDF版)
编译原理与实践
中国科学院希望高级电脑技术公司
遥感:原理和判译( PDF版)
遥感:原理和判译
编译程序原理与技术(1997 PDF版)
编译程序原理与技术
1997 北京市:清华大学出版社
编译程序设计原理(1990 PDF版)
编译程序设计原理
1990 北京:北京大学出版社
程序设计语言编译原理(1980 PDF版)
程序设计语言编译原理
1980 北京:国防工业出版社
编译原理及编译程序构造(1990 PDF版)
编译原理及编译程序构造
1990 北京:北京航空航天大学出版社
编译原理与实现(1989 PDF版)
编译原理与实现
1989 北京:高等教育出版社
编译原理和技术(1989 PDF版)
编译原理和技术
1989 合肥:中国科学技术大学出版社
计算机编译原理(1999 PDF版)
计算机编译原理
1999 北京:科学出版社