图书介绍

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

编译技术
  • 张莉,史晓华,杨海燕,金茂忠编著 著
  • 出版社: 北京:高等教育出版社
  • ISBN:9787040463170
  • 出版时间:2016
  • 标注页数:480页
  • 文件大小:66MB
  • 文件页数:496页
  • 主题词:编译程序-程序设计-高等学校-教材

PDF下载


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

下载说明

编译技术PDF格式电子书版下载

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

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

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

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

图书目录

第1部分 基 础篇3

第1章 编译概述3

1.1 什么是程序设计语言3

1.1.1 程序设计语言的定义方法4

1.1.2 程序设计语言的处理系统5

1.1.3 编译程序和解释程序5

1.2 与编译程序相关的处理系统8

1.3 编译程序和程序设计环境10

1.4 编译程序的构造12

1.5 编译技术在软件工程中的应用19

练习121

第2章 文法和语言的概念和表示22

2.1 文法的非形式讨论22

2.1.1 语法树22

2.1.2 规则23

2.1.3 由规则推导句子24

练习2-126

2.2 符号、符号串及其集合的运算27

2.2.1 字母表和符号串27

2.2.2 符号串及其集合的运算27

练习2-229

2.3 文法和语言的形式定义29

2.3.1 文法的形式定义29

2.3.2 推导的形式定义31

2.3.3 语言的形式定义32

2.3.4 递归规则与递归文法35

2.3.5 短语、简单短语和句柄36

练习2-338

2.4 语法树和二义性39

2.4.1 推导与语法树39

2.4.2 文法的二义性43

练习2-446

2.5 符号串的分析48

2.5.1 自顶向下分析49

2.5.2 自底向上分析50

2.6 有关文法的实用限制51

练习2-553

2.7 扩充的BNF表示和语法图53

2.7.1 扩充的BNF表示53

2.7.2 语法图56

2.8 文法和语言分类57

第3章 词法分析程序的设计60

3.1 词法分析程序的功能及实现方案60

3.2 单词的种类及词法分析程序的输出形式61

3.3 正则文法及其状态图63

3.3.1 状态图63

3.3.2 状态图的使用64

3.4 词法分析程序的设计与实现65

3.4.1 文法及其状态图65

3.4.2 词法分析程序的构造67

3.4.3 词法分析程序的实现70

练习373

第4章 语法分析(一)74

4.1 自顶向下分析方法74

4.1.1 带回溯的自顶向下分析方法74

4.1.2 存在的问题及解决办法76

练习4-184

4.2 递归下降分析法84

4.3 基于递归下降分析法的语法分析程序构造85

练习4-291

第5章 符号表管理技术93

5.1 概述93

5.1.1 符号表的概念及建立和访问时间93

5.1.2 符号表的重要性和作用95

5.1.3 在符号表上的操作95

5.2 符号表的组织和内容97

5.2.1 符号表的结构与内容97

5.2.2 符号表的组织方式99

5.3 非分程序结构语言的符号表组织101

5.3.1 标识符的作用域及基本处理方法101

5.3.2 符号表的组织方式102

5.4 分程序结构语言的符号表组织109

5.4.1 标识符的作用域及基本处理方法109

5.4.2 定位和重定位操作110

5.4.3 符号表的组织方式112

练习5115

第6章 运行时的存储组织及管理117

6.1 静态存储分配117

练习6-1119

6.2 动态存储分配120

6.2.1 活动记录121

6.2.2 参数区121

6.2.3 display区122

6.2.4 运行时的地址计算125

6.2.5 递归过程的处理125

6.3 内存垃圾回收器128

6.3.1 引用计数128

6.3.2 标记和清除垃圾回收器129

6.3.3 标记紧缩算法129

6.3.4 拷贝回收算法130

6.3.5 分代垃圾回收器130

练习6-2133

第7章 源程序的中间形式135

7.1 波兰表示135

7.2 N-元表示137

7.3 抽象语法树139

7.4 抽象机代码140

7.4.1 可移植性和抽象机141

7.4.2 Pascal的P-code抽象机142

7.4.3 P-code指令143

练习7144

第8章 错误处理145

8.1 概述145

8.2 错误的分类146

8.3 错误的检查与报告146

8.4 错误处理技术148

8.4.1 错误改正149

8.4.2 错误局部化处理149

8.4.3 目标程序运行时错误检测与处理152

8.4.4 遏止重复的错误信息152

第9章 语法制导翻译技术153

9.1 翻译文法154

9.2 语法制导翻译156

9.3 属性翻译文法158

9.3.1 综合属性158

9.3.2 继承属性160

9.3.3 属性翻译文法162

9.3.4 属性翻译文法举例:算术表达式的翻译164

练习9-1166

9.4 自顶向下语法制导翻译168

9.4.1 翻译文法的自顶向下翻译168

练习9-2172

9.4.2 属性翻译文法的自顶向下翻译173

练习9-3180

第10章 语义分析和代码生成182

10.1 语义分析的概念182

10.2 栈式抽象机及其汇编指令184

10.3 声明语句的处理186

10.3.1 常量类型188

10.3.2 简单变量188

10.3.3 数组变量190

10.3.4 记录变量192

10.3.5 过程声明193

10.4 表达式语句194

10.5 赋值语句201

10.6 控制语句203

10.6.1 if语句203

10.6.2 分情形语句205

10.6.3 repeat-while语句208

10.6.4 for循环语句209

10.7 过程调用和返回语句211

10.7.1 参数的基本传递形式211

10.7.2 过程调用213

10.7.3 返回语句和过程终止217

10.8 输入/输出语句218

10.8.1 输入语句218

10.8.2 输出语句221

10.9 编译程序的辅助功能222

练习10223

第2部分 提 高篇227

第11章 词法分析程序的自动生成技术227

11.1 正则文法与正则表达式227

11.1.1 正则表达式227

11.1.2 正则文法转换为正则表达式230

11.1.3 正则表达式转换为正则文法231

11.2 有穷自动机231

11.2.1 确定的有穷自动机232

11.2.2 不确定的有穷自动机233

11.2.3 NFA的确定化235

11.2.4 确定有穷自动机的化简(最小化)238

11.2.5 正则表达式与有穷自动机的等价性242

11.2.6 正则文法与有穷自动机的等价性246

11.3 词法分析程序的自动生248

成器248

11.3.1 Lex源程序(Lex的输入文件)248

11.3.2 Lex的实现250

练习11254

第12章 语法分析(二)256

12.1 LL(1)分析方法256

12.1.1 LL(1)分析器的逻辑结构及工作过程256

12.1.2 LL(1)分析表的构造方法259

练习12-1264

12.2 自底向上分析方法265

12.3 算法优先分析法268

12.3.1 方法概述268

12.3.2 直观算符优先分析法270

12.3.3 算符优先分析法的进一步讨论273

练习12-2279

12.4 LR语法分析方法280

12.4.1 概念和术语281

练习12-3282

12.4.2 LR分析算法282

练习12-4288

12.4.3 LR文法288

12.4.4 构造SLR语法分析表289

练习12-5297

12.4.5 构造规范LR语法分析表299

练习12-6304

12.4.6 构造LALR语法分析表305

练习12-7309

第13章 语法制导翻译技术(二)311

13.1 LL(1)文法的语法制导翻译311

13.1.1 翻译文法的自顶向下翻译——LL(1)翻译器311

练习13-1313

13.1.2 属性文法自顶向下翻译的实现——下推机法314

练习13-2320

13.2 自底向上语法制导翻译321

13.2.1 波兰翻译322

13.2.2 S-属性文法323

练习13-3325

第14章 代码优化327

14.1 基本块和流图328

14.2 基本块内优化330

14.2.1 基本块的DAG图表示331

14.2.2 消除局部公共子表达式331

14.2.3 数组、指针及函数调用332

14.2.4 从DAG图重新导出中间代码334

14.2.5 窥孔优化336

14.2.6 常数合并和传播337

14.3 全局优化338

14.3.1 数据流分析338

14.3.2 活跃变量分析344

14.3.3 定义-使用链、网和冲突图346

14.3.4 消除全局公共子表达式351

14.3.5 复制传播352

14.3.6 死代码删除353

14.4 循环优化353

14.4.1 循环交换354

14.4.2 循环展开354

14.4.3 代码外提和循环强度削弱355

练习14356

第15章 目标代码生成及优化357

15.1 微处理器体系结构简介358

15.1.1 指令集架构359

15.1.2 存储层次架构362

15.1.3 流水线364

15.2 地址空间367

15.2.1 程序地址空间的实例分析369

15.2.2 程序运行栈的设计371

15.3 寄存器的分配和指派374

15.3.1 全局寄存器分配374

15.3.2 临时寄存器分配377

15.4 指令选择379

练习15381

第16章 编译程序生成方法和工具383

16.1 编译程序的书写语言383

16.2 自展384

16.3 移植385

16.4 编译程序的生成工具386

16.4.1 语法分析器的生成器YACC387

16.4.2 用YACC处理二义文法390

16.4.3 用Lex建立YACC的词法分析器393

16.4.4 YACC的错误恢复394

练习16396

第3部分 实 例篇399

第17章 PL/O简单编译系统399

17.1 PL/O语言399

17.2 PL/O编译系统结构404

17.3 PL/O的词法分析406

17.4 PL/O的语法分析407

17.5 出错处理409

17.6 目标代码的生成和解释执行411

17.7 PL/O程序编译和运行举例414

第18章 Pascal-S编译系统427

18.1 Pascal-S语言427

18.2 Pascal-S编译程序的结构434

18.3 Pascal-S编译程序439

18.3.1 表格439

18.3.2 编译初启446

18.3.3 实用程序447

18.3.4 词法分析及处理448

18.3.5 语法分析处理449

18.3.6 出错处理455

18.4 Pascal-S解释执行程序458

18.4.1 P代码指令系统458

18.4.2 运行栈461

18.4.3 运行时的display462

18.4.4 运行出错处理和现场剖析打印464

18.5 编译及运行的例子465

参考文献479

热门推荐