图书介绍

编程语言 原理与范型 第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

编程语言 原理与范型 第2版
  • (美)AllenB.Tucker著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302166935
  • 出版时间:2008
  • 标注页数:568页
  • 文件大小:114MB
  • 文件页数:587页
  • 主题词:程序语言

PDF下载


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

下载说明

编程语言 原理与范型 第2版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 概论1

1.1 原理2

1.2 范例3

1.3 专题5

1.4 编程语言发展简史5

1.5 关于语言设计10

1.5.1 设计约束11

1.5.2 结果和目标13

1.6 编译器和虚拟机17

1.7 小结19

1.8 练习19

第2章 语法21

2.1 文法22

2.1.1 BNF文法22

2.1.2 推导24

2.1.3 语法分析树25

2.1.4 结合性和优先级27

2.1.5 歧义性文法29

2.2 BNF扩展32

2.3 小语言CLITE的语法34

2.3.1 词法36

2.3.2 具体语法37

2.4 编译器和解释器41

2.5 语法和语义学链接44

2.5.1 抽象语法45

2.5.2 抽象语法树47

2.5.3 Clite的抽象语法48

2.6 小结50

2.7 练习51

第3章 词法和语法分析55

3.1 Chomsky层次结构55

3.2 词法分析58

3.2.1 正则表达式59

3.2.2 有穷状态机61

3.2.3 从设计到代码64

3.3 语法分析68

3.3.1 基本定义69

3.3.2 递归下降分析73

3.4 小结79

3.5 练习79

第4章 命名83

4.1 语法问题84

4.2 变量85

4.3 作用域87

4.4 符号表89

4.5 解析引用90

4.6 动态作用域92

4.7 可见性93

4.8 重载94

4.9 生存期96

4.10 小结97

4.11 练习97

第5章 类型99

5.1 类型错误100

5.2 静态类型和动态类型101

5.3 基本类型102

5.4 非基本类型110

5.4.1 枚举110

5.4.2 指针111

5.4.3 数组和列表112

5.4.4 串117

5.4.5 结构体118

5.4.6 变体记录和共用体119

5.5 递归数据类型121

5.6 作为类型的函数122

5.7 类型等价123

5.8 子类型124

5.9 多态和通用类125

5.10 自定义类型129

5.11 小结130

5.12 练习130

第6章 类型系统133

6.1 Clite的类型系统135

6.2 隐式类型转换142

6.3 规范Clite类型系统146

6.4 小结149

6.5 练习149

第7章 语义151

7.1 动机151

7.2 表达式语义153

7.2.1 表示法153

7.2.2 结合律和优先级154

7.2.3 短循环求值156

7.2.4 表达式的意义157

7.3 程序状态158

7.4 赋值语义160

7.4.1 多重赋值160

7.4.2 赋值语句与赋值表达式160

7.4.3 语义的引用和复制161

7.5 流程控制语义161

7.5.1 顺序执行语句162

7.5.2 条件语句162

7.5.3 循环语句164

7.5.4 GoTo争议165

7.6 输入/输出语句167

7.6.1 基本概念167

7.6.2 随机访问文件172

7.6.3 I/O错误处理语义175

7.7 异常处理语义177

7.7.1 策略和设计理念178

7.7.2 Ada、C++和Java中的异常处理180

7.7.3 异常和断言188

7.8 小结192

7.9 练习192

第8章 语义解释195

8.1 状态转换和局部函数195

8.2 Clite语义196

8.2.1 程序的意义197

8.2.2 语句的语义198

8.2.3 表达式语义202

8.2.4 表达式的副作用206

8.3 动态类型语义207

8.4 语义的规范化处理211

8.4.1 状态和状态转换212

8.4.2 程序的表示型语义213

8.4.3 语句的表示型语义214

8.4.4 表达式的表示型语义218

8.4.5 规范化语义模型的局限性220

8.5 小结220

8.6 练习220

第9章 函数225

9.1 基本术语226

9.2 函数调用和返回226

9.3 参数227

9.4 参数传递机制229

9.4.1 传值调用229

9.4.2 按引用传递231

9.4.3 值结果和结果传递233

9.4.4 按名传递234

9.4.5 Ada中的参数传递236

9.5 活动记录236

9.6 递归函数237

9.7 运行时堆栈239

9.8 小结241

9.9 练习242

第10章 函数实现245

10.1 Clite中的函数声明与调用245

10.1.1 具体句法246

10.1.2 抽象句法247

10.2 编译Clite类型系统249

10.3 函数调用与返回的语义251

10.3.1 非void函数252

10.3.2 重访问的副作用253

10.4 类型和语义的规范处理254

10.4.1 Clite类型映射254

10.4.2 规范化Clite类型规则255

10.4.3 规范Clite语义257

10.5 小结262

10.6 练习262

第11章 内存管理265

11.1 堆266

11.2 动态数组的实现267

11.3 垃圾回收270

11.3.1 引用计数271

11.3.2 标记扫描272

11.3.3 复制收集275

11.3.4 策略优劣比较277

11.4 小结277

11.5 练习278

第12章 命令式编程279

12.1 命令式语言的产生279

12.2 过程抽象281

12.3 表达式和赋值283

12.4 支持数据结构的库284

12.5 命令式编程和C语言286

12.5.1 一般特征287

12.5.2 示例:Grep288

12.5.3 示例:Average290

12.5.4 示例:符号微分法290

12.6 命令式编程和Ada语言294

12.6.1 一般特征295

12.6.2 示例:Average297

12.6.3 示例:Matrix Multiplication299

12.7 命令式编程和Perl语言300

12.7.1 一般特性301

12.7.2 示例:Grep302

12.7.3 示例:Mailing Grades305

12.8 小结308

12.9 练习309

第13章 面向对象编程311

13.1 抽象数据类型311

13.2 对象模型317

13.2.1 类317

13.2.2 可见性和信息隐藏320

13.2.3 继承321

13.2.4 多重继承325

13.2.5 多态326

13.2.6 模板327

13.2.7 抽象类328

13.2.8 接口329

13.2.9 虚拟方法表331

13.2.10 运行时类型标识333

13.2.11 反射333

13.3 Smalltalk334

13.3.1 一般特性335

13.3.2 示例:多项式338

13.3.3 示例:复数340

13.3.4 示例:银行账户342

13.4 Java343

13.4.1 示例:符号微分343

13.4.2 示例:回溯346

13.5 PYTHON350

13.5.1 一般特性353

13.5.2 示例:多项式354

13.5.3 示例:分数356

13.6 小结358

13.7 练习359

第14章 函数式编程363

14.1 函数和λ演算364

14.2 Scheme语言368

14.2.1 表达式368

14.2.2 表达式求值369

14.2.3 列表370

14.2.4 元素值372

14.2.5 控制流373

14.2.6 定义函数373

14.2.7 let表达式376

14.2.8 示例:Clite语义378

14.2.9 示例:符号微分382

14.2.10 示例:八皇后问题384

14.3 Haskell语言388

14.3.1 简介389

14.3.2 表达式390

14.3.3 列表及其产生391

14.3.4 基本类型和值394

14.3.5 控制流394

14.3.6 定义函数395

14.3.7 元组398

14.3.8 示例:Clite语义399

14.3.9 示例:符号微分402

14.3.10 示例:八皇后问题404

14.4 小结406

14.5 练习406

第15章 逻辑式编程411

15.1 逻辑和horn语句412

15.2 Prolog语言中的逻辑式编程415

15.2.1 Prolog程序元素415

15.2.2 Prolog语言的实际应用423

15.3 Prolog程序示例427

15.3.1 符号微分法427

15.3.2 猜字谜429

15.3.3 自然语言处理430

15.3.4 Clite的语义434

15.3.5 八皇后的问题437

15.4 小结439

15.5 练习440

第16章 事件驱动编程443

16.1 事件驱动控制444

16.1.1 模型-视图-控制器445

16.1.2 Java中的事件446

16.1.3 Java GUI应用程序448

16.2 事件处理450

16.2.1 单击鼠标450

16.2.2 鼠标移动451

16.2.3 按钮452

16.2.4 标签、文本域和文本框453

16.2.5 组合框455

16.3 3个示例456

16.3.1 简单的GUI接口456

16.3.2 设计Java Applet462

16.3.3 基于事件驱动的交互式游戏464

16.4 其他事件-驱动应用程序472

16.4.1 ATM自动取款机472

16.4.2 家庭保安系统473

16.5 小结475

16.6 练习475

第17章 并发编程479

17.1 并发的概念480

17.1.1 历史和定义481

17.1.2 线程控制与通信482

17.1.3 竞争和死锁483

17.2 同步策略485

17.2.1 信标485

17.2.2 监视器487

17.3 Java中的同步489

17.3.1 Java线程489

17.3.2 示例491

17.4 进程间通信500

17.4.1 IP地址、端口和套接字501

17.4.2 一个客户/服务器示例502

17.5 其他语言中的并发508

17.6 小结510

17.7 练习510

第18章 程序的正确性513

18.1 公理语义514

18.1.1 基本概念515

18.1.2 赋值规则518

18.1.3 推理规则518

18.1.4 Max函数的正确性519

18.1.5 循环程序的正确性520

18.1.6 形式化方法的观点523

18.2 形式化方法工具:JML525

18.3 面向对象程序的正确性532

18.3.1 按照契约设计532

18.3.2 类常量533

18.3.3 示例:堆栈应用的正确性535

18.3.4 总结540

18.4 函数程序的正确性541

18.4.1 递归与归纳541

18.4.2 结构化归纳示例542

18.5 小结544

18.6 练习545

附录A Clite的定义549

A.1 Clite词汇和具体句法549

A.2 Clite的抽象句法550

A.3 Clite的类型系统551

A.4 Clite的语义552

A.5 Clite的加法函数554

A.5.1 词汇以及具体语法554

A.5.2 抽象句法555

A.5.3 类型系统555

A.5.4 语义556

附录B 离散数学回顾557

B.1 集合和关系557

B.2 视图561

B.3 逻辑562

B.4 推理规则和直接证明566

B.5 归纳证明568

热门推荐