图书介绍

编译器构造 Java语言版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

编译器构造 Java语言版
  • (美)赖斯著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302340553
  • 出版时间:2014
  • 标注页数:583页
  • 文件大小:268MB
  • 文件页数:600页
  • 主题词:编译器-教材;JAVA语言-教材

PDF下载


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

下载说明

编译器构造 Java语言版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 字符串、语言和编译器1

1.1概述1

1.2语言的基本概念1

1.3编译器的基本概念2

1.4集合论中的基本概念4

1.5空串6

1.6连接6

1.7指数记法6

1.8星运算符(也称为0次或多次运算符)7

1.9串集合的连接8

1.10加运算符(也称为1次或多次运算符)9

1.11问号运算符(也称为0次或1次运算符)10

1.12包含单独一个串的集合的简便记法10

1.13运算符优先级11

1.14正规表达式11

1.15 正则表达式的局限性13

问题14

第2章 上下文无关文法(一)16

2.1概述16

2.2什么是上下文无关文法17

2.3基于上下文无关文法的推导18

2.4由上下文无关文法定义的语言19

2.5上下文无关文法的不同表示方法21

2.6一些简单文法22

2.7基于上下文无关文法的语言生成技术25

2.8正规文法和右线性文法30

2.9基于正规文法的计数32

2.10表的文法33

2.11一个不是上下文无关的重要语言38

问题39

第3章 上下文无关文法(二)42

3.1概述42

3.2语法分析树42

3.3最左和最右推导43

3.4替换45

3.5二义文法46

3.6确定可致空的非终结符51

3.7消除λ产生式52

3.8消除unit产生式55

3.9消除无用非终结符57

3.10递归转换62

3.11增加空串到语言67

问题68

第4章 上下文无关文法(三)73

4.1概述73

4.2算术表达式文法73

4.3文法中结合性和优先级的描述78

4.4 Backus-Naur范式80

4.5语法图82

4.6抽象语法树和三地址码84

4.7非收缩文法85

4.8基本非收缩文法85

4.9上下文无关文法到基本非收缩文法的转换86

4.10上下文无关语言的pumping特性88

问题92

第5章Chomsky层次(选讲)94

5.1概述94

5.2上下文有关产生式95

5.3上下文有关文法96

5.4非受限文法98

问题98

第6章 自上而下语法分析100

6.1概述100

6.2自上而下构造语法分析树100

6.3失败的语法分析102

6.4不适合自上而下语法分析的文法102

6.5确定的语法分析器103

6.6借助栈的语法分析器104

6.7用表来表示栈式语法分析器109

6.8处理不以终结符领头的产生式109

6.9用Java写一个栈式语法分析器110

问题117

第7章LL(1)文法120

7.1概述120

7.2产生式右端的FIRST集合120

7.3确定操作序列122

7.4确定λ产生式的选择集合124

7.5后跟-左端-后跟-最右规则127

7.6右端可致空的产生式的选择集合129

7.7包含输入结束符的选择集合130

7.8针对含lambda产生式文法的栈式语法分析器133

7.9将非LL(1)文法转换为LL(1)文法134

7.10用二义文法进行分析141

7.11计算FIRST和FOLLOW集合143

问题145

第8章 表驱动的栈式语法分析器(选讲)151

8.1概述151

8.2统一栈式语法分析器的操作152

8.3实现表驱动的栈式语法分析器154

8.4表驱动栈式语法分析器的改进159

8.5不确定的语法分析器——偏向理论的内容(选讲)160

问题162

第9章 递归-下降语法分析164

9.1概述164

9.2一个简单的递归-下降语法分析器164

9.3处理lambda产生式171

9.4一个公共错误175

9.5产生式的Java代码176

9.6递归-下降语法分析器中提取左公因子177

9.7消除尾递归182

9.8翻译星号、加号和问号算符185

9.9反向动作187

问题189

第10章 递归-下降翻译192

10.1概述192

10.2一个简单的翻译文法192

10.3转换翻译文法到Java代码193

10.4翻译文法的描述195

10.5在语法分析过程中传递信息207

10.6 L-属性文法213

10.7个新的单词符号管理器214

10.8解决单词符号向前一个字符看问题217

10.9新单词符号管理器的代码217

10.10前缀表达式编译器的翻译文法229

10.11趣用递归(选讲)233

问题236

第11章 汇编语言239

11.1概述239

11.2 J1计算机的结构239

11.3机器语言指令240

11.4汇编语言指令242

11.5压入字符242

11.6 aout指令243

11.7使用标号243

11.8使用汇编器245

11.9 stav指令248

11.10编译赋值语句249

11.11编译print和println252

11.12输出字符串253

11.13输入十进制数256

11.14入口指导语句257

11.15 更多的汇编语言内容257

问题257

第12章 一个简单的编译器S 1261

12.1概述261

12.2源语言261

12.3源语言的文法262

12.4目标语言263

12.5符号表264

12.6代码生成器264

12.7 token类265

12.8写出翻译文法265

12.9实现S1编译器272

12.10使用S 1287

12.11关于扩展S1编译器的忠告290

12.11.1更新单词符号管理器290

12.11.2先调试单词符号管理器291

12.11.3选择集合291

12.11.4使用必要的break语句291

12.11.5使用必要的Consume方法调用291

12.11.6正确地解释翻译文法292

12.12对于S2的描述292

问题296

第13章JavaCC(选讲)302

13.1概述302

13.2 JavaCC中扩展的正规表达式303

13.3 JavaCC输入文件308

13.4正规表达式动作描述315

13.5 S1j的JavaCC输入文件318

13.6 JavaCC产生的文件326

13.7使用星号和加号操作330

13.8选择点和向前看333

13.9 JavaCC的选择算法338

13.10语法和语义的向前看描述(选讲)342

13.11用JavaCC仅生成单词符号管理器344

13.12使用单词符号链346

13.13抑制警告信息349

问题350

第14章在S2基础上构造354

14.1概述354

14.2扩展println和print354

14.3级联赋值语句359

14.4一元加和减362

14.5 readint语句365

14.6从命令行控制单词符号踪迹的生成365

14.7 S3的规范366

问题366

第15章 编译控制结构370

15.1概述370

15.2 while语句370

15.3 if语句374

15.4 do-while语句377

15.5数字常量的范围检查378

15.6处理字符串中的反斜线-引号380

15.7用JavaCC处理反斜线(选讲)381

15.8 JavaCC中的全局块(选讲)386

15.9处理跨行字符串388

15.10用JavaCC处理跨行字符串(选讲)389

15.11 JavaCC中的SPECIAL TOKEN块(选讲)394

15.12错误恢复396

15.13 JavaCC中的错误恢复(选讲)400

15.14 S4的规范401

问题402

第16章 编译函数形式的程序405

16.1概述405

16.2分别汇编和连接405

16.3调用函数和从函数返回408

16.4 S5的源语言412

16.5 S5的符号表413

16.6 S5的代码生成器415

16.7 S5的翻译文法416

16.8与库连接427

16.9 S5规范428

16.10扩展S5(选讲)428

问题430

第17章 有限自动机433

17.1概述433

17.2确定有限自动机433

17.3转换DFA到正规表达式435

17.4 DFA的Java代码438

17.5非确定有限自动机441

17.6使用NFA作为一个算法443

17.7利用子集算法转换NFA到DFA444

17.8转换DFA到正规文法446

17.9转换正规文法到NFA448

17.10转换正规表达式到NFA449

17.11求出最小的DFA452

17.12正规语言的泵理论456

问题457

第18章 课程设计项目:用编译技术实现grep460

18.1概述460

18.2 grep程序的正规表达式461

18.3针对正规表达式的单词符号管理器462

18.4正规表达式的文法463

18.5正规表达式编译器的目标语言465

18.6用NFA进行模式匹配471

问题474

第19章 编译到面向寄存器的结构476

19.1概述476

19.2使用寄存器指令集477

19.3修改R1符号表478

19.4 R1的语法分析器和代码生成器480

问题487

第20章 优化488

20.1概述488

20.2使用ldc指令489

20.3重用临时变量490

20.4常量合并494

20.5寄存器分配496

20.6窥孔优化498

问题502

第21章 解释器506

21.1概述506

21.2转换S1到11507

21.3解释转移控制的语句510

21.4实现编译:解释器CI 1512

21.5解释器的优点517

问题517

第22章 自下而上语法分析519

22.1概述519

22.2自下而上语法分析原理519

22.3语法分析:右递归文法对比左递归文法522

22.4用二义文法进行自下而上语法分析523

22.5不归约规则526

22.6 SLR(1)语法分析528

22.7移进/归约冲突533

22.8归约/归约冲突535

22.9 LR(1)语法分析537

问题540

第23章yacc542

23.1概述542

23.2 yacc输入和输出文件542

23.3一个yacc-生成的简单语法分析器543

23.4用取值栈传递值551

23.5对二义文法使用yacc556

23.6在语法分析树中传递值559

23.7实现Sly560

23.8 jflex567

问题574

附录A栈指令集576

附录B寄存器指令集580

参考文献583

热门推荐