图书介绍

编译原理及编译程序构造2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

编译原理及编译程序构造
  • 张莉,杨海燕,史晓华,金茂忠,高仲仪编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302263142
  • 出版时间:2011
  • 标注页数:439页
  • 文件大小:28MB
  • 文件页数:455页
  • 主题词:编译程序-程序设计-高等学校-教材

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.1程序设计语言的定义方法2

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

1.1.3编译程序和解释程序3

1.1.4 T形图4

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

1.2.1各种翻译程序5

1.2.2预处理器6

1.2.3宏处理器6

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

1.4编译程序的构造8

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

练习115

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

2.1文法的非形式讨论16

2.1.1语法树16

2.1.2规则17

2.1.3由规则推导句子17

练习2.119

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

2.2.1字母表和符号串20

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

练习2.222

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

2.3.1文法的形式定义22

2.3.2推导的形式定义24

2.3.3语言的形式定义24

2.3.4递归规则与递归文法26

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

练习2.328

2.4语法树和二义性29

2.4.1推导与语法树29

2.4.2文法的二义性33

练习2.436

2.5符号串的分析37

2.5.1自顶向下分析38

2.5.2自底向上分析38

2.6有关文法的实用限制40

练习2.541

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

2.7.1扩充的BNF表示41

2.7.2语法图43

2.8文法和语言分类43

第3章 词法分析46

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

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

3.3正则文法及其状态图48

3.3.1状态图49

3.3.2状态图的使用49

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

3.4.1文法及其状态图50

3.4.2词法分析程序的构造51

3.4.3词法分析程序的实现53

练习3.156

3.5正则文法与正则表达式56

3.5.1正则表达式57

3.5.2正则文法转换为正则表达式59

3.5.3正则表达式转换为正则文法59

3.6有穷自动机(FA)60

3.6.1确定的有穷自动机(DFA)60

3.6.2不确定的有穷自动机(NFA)61

3.6.3 NFA的确定化63

3.6.4确定有穷自动机的化简(最小化)65

3.6.5正则表达式与有穷自动机的等价性67

3.6.6正则文法与有穷自动机的等价性70

3.7词法分析程序的自动生成器71

3.7.1 LEX源程序(LEX的输入文件)72

3.7.2 LEX的实现73

练习3.276

第4章 语法分析78

4.1自顶向下分析方法78

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

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

练习4.185

4.2递归下降分析法(递归子程序法)85

练习4.290

4.3 LL(1)分析方法91

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

4.3.2 LL(1)分析表的构造方法94

练习4.397

4.4自底向上分析方法99

4.5算法优先分析法101

4.5.1方法概述101

4.5.2直观算符优先分析法102

4.5.3算符优先分析法的进一步讨论105

练习4.4110

4.6 LR语法分析方法110

4.6.1概念和术语111

练习4.5112

4.6.2 LR分析算法113

练习4.6117

4.6.3 LR文法117

4.6.4构造SLR语法分析表118

练习4.7122

练习4.8124

4.6.5构造规范LR语法分析表125

练习4.9130

4.6.6构造LALR语法分析表130

练习4.10134

4.7二义文法的应用135

4.8 LR语法分析中的错误恢复136

练习4.11137

第5章 符号表管理技术138

5.1概述138

5.1.1什么是符号表138

5.1.2何时建立和访问符号表138

5.1.3符号表的重要性和作用140

5.1.4在符号表上的操作140

5.2符号表的组织和内容141

5.2.1符号表的结构与内容141

5.2.2符号表的组织方式143

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

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

5.3.2符号表的组织方式145

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

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

5.4.2定位和重定位操作151

5.4.3符号表的组织方式152

练习5155

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

6.1静态存储分配157

练习6.1159

6.2动态存储分配159

6.2.1活动记录160

6.2.2参数区161

6.2.3 display区161

6.2.4运行时的地址计算163

6.2.5递归过程的处理164

练习6.2166

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

7.1波兰表示168

7.2 N元表示169

7.3抽象语法树171

7.4抽象机代码172

7.4.1可移植性和抽象机172

7.4.2 Pascal的P-code抽象机173

7.4.3 P-code指令174

练习7175

第8章 错误处理176

8.1概述176

8.2错误的分类177

8.3错误的诊察与报告177

8.4错误处理技术179

8.4.1错误改正179

8.4.2错误局部化处理179

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

8.4.4遏止重复的错误信息182

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

9.1翻译文法(TG: Translation Grammar)184

9.2语法制导翻译186

9.3属性翻译文法(ATG: Attribute TG)187

9.3.1综合属性187

9.3.2继承属性189

9.3.3属性翻译文法概述190

9.3.4属性翻译文法举例——算术表达式的翻译191

练习9.1193

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

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

练习9.2200

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

练习9.3212

9.5自底向上语法制导翻译213

9.5.1波兰翻译214

9.5.2 S-属性文法214

练习9.4216

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

10.1语义分析的概念218

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

10.3声明的处理221

10.3.1常量类型222

10.3.2简单变量223

10.3.3数组变量224

10.3.4记录变量226

10.3.5过程声明226

10.4表达式227

10.5赋值语句233

10.6控制语句234

10.6.1 if语句234

10.6.2分情形语句236

10.6.3 repeat-while语句238

10.6.4 for循环语句239

10.7过程调用和返回240

10.7.1参数的基本传递形式241

10.7.2过程调用242

10.7.3返回语句和过程终止245

10.8输入和输出语句246

10.8.1输入语句246

10.8.2输出语句248

10.9编译程序的辅助功能249

练习10250

第11章 代码优化251

11.1基本块和流图252

11.2基本块内优化254

11.2.1基本块的DAG图表示254

11.2.2消除局部公共子表达式255

11.2.3数组、指针及函数调用255

11.2.4从DAG图重新导出中间代码256

11.2.5窥孔优化258

11.2.6常数合并和传播259

11.3全局优化260

11.3.1数据流分析260

11.3.2活跃变量分析264

11.3.3定义-使用链、网和冲突图266

11.3.4消除全局公共子表达式269

11.3.5复制传播270

11.3.6死代码删除270

11.4循环优化271

11.4.1循环交换271

11.4.2循环展开272

11.4.3代码外提和循环强度削弱272

练习11273

第12章 目标代码生成275

12.1微处理器体系结构简介276

12.1.1指令集架构276

12.1.2存储层次架构279

12.1.3流水线281

12.2地址空间283

12.2.1程序地址空间的实例分析284

12.2.2程序运行栈的设计286

12.3寄存器的分配和指派288

12.3.1全局寄存器分配289

12.3.2临时寄存器分配291

12.4指令选择292

练习12294

第13章 编译程序生成方法和工具296

13.1编译程序的书写语言296

13.2自展297

13.3移植298

13.4编译程序的生成工具299

13.4.1语法分析器的生成器Yacc299

13.4.2用Yacc处理二义文法302

13.4.3用Lex建立Yacc的词法分析器304

13.4.4 Yacc的错误恢复305

练习13306

第14章PL/O简单编译系统307

14.1 PL/O语言307

14.2 PL/O编译系统结构311

14.3 PL/O的词法分析312

14.4 PL/O的语法分析313

14.5出错处理315

14.6目标代码的生成和解释执行316

14.7 PL/O程序编译和运行举例318

第15章Pascal-S编译系统328

15.1 Pascal-S语言328

15.2 Pascal-S编译程序的结构333

15.3 Pascal-S编译程序336

15.3.1表格337

15.3.2编译初启342

15.3.3实用程序343

15.3.4词法分析及处理343

15.3.5语法分析处理344

15.3.6出错处理349

15.4 Pascal-S解释执行程序351

15.4.1 P-code指令系统351

15.4.2运行栈353

15.4.3运行时的display354

15.4.4运行出错处理和现场剖析打印355

15.5编译及运行的例子356

附录A PL/O编译系统源代码366

附录B Pascal-S编译系统源代码382

参考文献439

热门推荐