图书介绍

程序设计语言原理PDF|Epub|txt|kindle电子书版本网盘下载

程序设计语言原理
  • 麦中凡、吕卫锋编著 著
  • 出版社: 北京:北京航空航天大学出版社
  • ISBN:9787512402959
  • 出版时间:2011
  • 标注页数:500页
  • 文件大小:149MB
  • 文件页数:512页
  • 主题词:程序语言

PDF下载


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

下载说明

程序设计语言原理PDF格式电子书版下载

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

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

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

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

图书目录

第0章 绪论1

0.1 语言的一般性质1

0.2 程序设计语言的一般性质3

0.3 为什么要研究程序设计语言5

0.4 程序设计语言定义与处理器7

0.5 21世纪程序设计语言的发展及未来发展趋势8

0.6 本书的目的与组织10

第1章 历史的回顾与程序设计语言分类11

1.1 程序设计语言简史11

1.1.1 20世纪50年代高级语言出现11

1.1.2 20世纪60年代奠基性研究12

1.1.3 20世纪70年代完善的软件工程工具14

1.1.4 20世纪80年代的面向对象发展18

1.1.5 20世纪90年代网络计算语言19

1.2 程序设计语言的分类21

1.2.1 按对机器依赖程度21

1.2.2 按应用领域21

1.2.3 按实现计算方式22

1.2.4 按使用方式22

1.2.5 按程序设计范型22

1.2.6 按断代划分23

1.3 本章小结24

习题24

第2章 程序设计语言的设计概述27

2.1 表示与抽象(representation&abstraction)27

2.1.1 上层抽象可用多种下层抽象实现程序设计的四个世界28

2.1.2 显式表示和隐式表示28

2.1.3 聚合表示和分散表示29

2.2 程序设计语言的设计目标29

2.3 设计准则30

2.4 程序设计语言的规格说明33

2.4.1 语法的规格说明33

2.4.2 语义规格说明39

2.4.3 上下文规格说明42

2.5 小结42

习题43

第3章 值与类型45

3.1 值45

3.1.1 值与类型46

3.1.2 字面量、变量与常量46

3.1.3 程序中的求值方式47

3.1.4 值应是头等程序对象48

3.2 类型49

3.2.1 基本类型49

3.2.2 复合类型51

3.2.3 递归类型58

3.2.4 类型系统初步61

3.3 表达式65

3.3.1 表达式表示法65

3.3.2 表达式种类66

3.3.3 优先级和结合性68

3.3.4 类型兼容性69

3.4 小结70

习题70

第4章 存储74

4.1 程序变量的时、空特性74

4.1.1 引用和指针74

4.1.2 递引用75

4.1.3 变量的时态76

4.1.4 可存储值77

4.2 组织存储对象的存储模型78

4.2.1 存储对象的生命期78

4.2.2 静态存储对象78

4.2.3 动态存储对象79

4.2.4 动态堆栈存储80

4.2.5 动态堆存储82

4.3 悬挂引用84

4.4 变量更新85

4.4.1 变量初始化85

4.4.2 动态更新86

4.5 有副作用的表达式87

4.5.1 块表达式88

4.5.2 命令表达式88

4.6 小结88

习题89

第5章 束定94

5.1 名字与束定94

5.2 各种束定机制95

5.2.1 静态束定95

5.2.2 动态束定95

5.2.3 块结构束定96

5.2.4 无类型语言的束定97

5.3 声明98

5.3.1 声明的种类99

5.3.2 声明的作用域102

5.3.3 块声明103

5.4 束定的作用域与释义103

5.4.1 束定与环境104

5.4.2 词法作用域与动态作用域104

5.4.3 词法作用域和动态作用域的求值差异106

5.4.4 作用域与生命期匹配的问题107

5.5 束定机制与语言翻译器107

5.6 小结108

习题109

第6章 函数和过程112

6.1 函数和过程抽象112

6.1.1 函数定义与引用112

6.1.2 过程定义与调用115

6.1.3 无参过程117

6.2 参数机制117

6.2.1 传值调用118

6.2.2 传名调用119

6.2.3 引用调用120

6.2.4 参数模式与返回调用121

6.2.5 值——返回调用122

6.2.6 指针参数122

6.3 变元求值策略124

6.4 高阶函数126

6.4.1 函数作为变元126

6.4.2 函数作为返回值128

6.5 小结129

习题130

第7章 程序控制133

7.1 一般概述133

7.2 顺序控制134

7.3 条件选择控制136

7.3.1 结构式条件控制136

7.3.2 case和switch137

7.3.3 以条件表达式实现选择控制138

7.4 迭代控制138

7.4.1 显式迭代控制139

7.4.2 隐式迭代控制143

7.5 异常处理145

7.5.1 异常定义与异常处理段145

7.5.2 异常引发与异常传播146

7.6 小结149

习题150

第8章 程序的抽象与封装153

8.1 模块和包154

8.1.1 模块的一般形式154

8.1.2 模块程序的结构156

8.2 抽象数据类型157

8.2.1 数据抽象与抽象数据类型157

8.2.2 利用抽象数据类型构造新类型158

8.2.3 构造函数和析构函数160

8.2.4 以分别编译文件实现抽象数据类型161

8.3 类属163

8.3.1 类属定义一般形式164

8.3.2 类属参数165

8.3.3 类属实现的静态性166

8.4 对象和类166

8.4.1 对象168

8.4.2 类和实例168

8.5 小结170

习题170

第9章 类型系统173

9.1 类型表示和实现173

9.1.1 有限类型174

9.1.2 约束类型174

9.1.3 指针类型175

9.1.4 复合类型176

9.2 复合对象上的操作181

9.2.1 构造子181

9.2.2 选择子183

9.2.3 用户定义的构造子和析构子184

9.2.4 复合对象操作之间的关系185

9.2.5 对类型的操作186

9.3 类型的语义187

9.3.1 域的一致性188

9.3.2 构造域的一致性189

9.3.3 类型的换型、变换和强制192

9.4 类型检查195

9.5 类属域199

9.5.1 类型的多态性199

9.5.2 类属多态的类别200

9.5.3 设定多态202

9.5.4 通用多态204

9.5.5 多类型206

9.6 类型推理208

9.6.1 单态类型推理209

9.6.2 多态类型推理209

9.7 小结209

习题211

第10章 面向对象程序设计语言215

10.1 Smalltalk语言215

10.1.1 Smalltalk系统216

10.1.2 用户界面模型216

10.1.3 语言核心217

10.1.4 Smalltalk文件系统与虚机221

10.1.5 Smalltalk程序设计范型222

10.1.6 Smalltalk程序设计系统226

10.2 Smalltalk的对象、类、方法的实现228

10.2.1 类的存储228

10.2.2 实例对象的存储229

10.2.3 活动记录229

10.3 面向对象的基本特征230

10.3.1 封装与继承带来的问题231

10.3.2 强类型语言的动态多态问题232

10.4 Ada95的面向对象机制234

10.4.1 定义类和实例对象234

10.4.2 以类宽类型实现多态236

10.4.3 扩充程序包机制实现继承的类体系238

10.4.4 其他面向对象扩充240

10.5 Eiffel241

10.5.1 Eiffel的对象242

10.5.2 抽象数据类型242

10.5.3 Eiffel的类和程序运行244

10.5.4 Eiffel的继承与多态248

10.5.5 指定动态类型和动态束定251

10.6 java语言的面向对象机制253

10.6.1 java基于C++的面向对象特征的改进253

10.6.2 Java的面向对象技术257

10.7 小结262

习题263

第11章 函数式程序设计语言266

11.1 过程式语言存在的问题266

11.1.1 易变性难于数学模型266

11.1.2 顺序性更难于数学模型267

11.1.3 理想的改变途径267

11.2 λ演算268

11.2.1 术语和表示法269

11.2.2 约束变量和自由变量270

11.2.3 基本函数270

11.2.4 归约与范式271

11.2.5 Church-Rosser定理274

11.2.6 增强λ演算275

11.3 函数式语言怎样克服命令式语言的缺点277

11.3.1 消除赋值277

11.3.2 以递归代替while_do278

11.3.3 消除顺序279

11.3.4 输出问题280

11.4 函数式语言Miranda281

11.4.1 数据结构281

11.4.2 内定义操作283

11.4.3 定义函数283

11.4.4 表闭包285

11.4.5 无限表287

11.5 问题与讨论287

11.5.1 模拟状态不易287

11.5.2 效率还是问题288

11.5.3 并发性288

11.6 小结289

习题289

第12章 逻辑式程序设计语言294

12.1 谓词演算294

12.1.1 谓词演算诸元素294

12.1.2 谓词演算的等价变换296

12.2 自动定理证明297

12.2.1 证明系统297

12.2.2 模型298

12.2.3 证明技术298

12.2.4 归结定理证明300

12.2.5 Horn子句实现超级归结301

12.3 逻辑程序的风格302

12.4 典型逻辑程序设计语言Prolog303

12.4.1 Prolog的环境303

12.4.2 数据对象和项303

12.4.3 Prolog程序结构304

12.4.4 封闭世界内的演绎过程306

12.4.5 函数和计算306

12.4.6 cut和not谓词308

12.5 Prolog评价310

12.6 小结311

习题312

第13章 程序的并发性和进程交互原语316

13.1 基本概念316

13.1.1 程序与进程317

13.1.2 并行程序的模式317

13.1.3 线程与进程318

13.1.4 原子动作319

13.1.5 进程交互320

13.2 并发程序带来的问题321

13.2.1 速度依赖321

13.2.2 输入值依赖321

13.2.3 不确定性322

13.2.4 死锁(deadlock)322

13.2.5 死等(starvation)322

13.3 并发程序的性质323

13.4 低级并发机制和并发原语323

13.4.1 基于共享变量的同步机制323

13.4.2 基于通信的原语330

13.5 小结331

习题332

第14章 进程交互机制和并发程序设计语言334

14.1 基于变量共享的高层并发机制334

14.1.1 条件临界区334

14.1.2 监控器337

14.1.3 路径表达式343

14.2 基于信息传递的高层并发机制344

14.2.1 异步信息传递344

14.2.2 同步消息传递348

14.3 远程过程调用和会合354

14.3.1 远程过程调用RPC355

14.3.2 会合357

14.3.3 Ada的任务359

14.4 多原语的并发机制363

14.4.1 进程交互主要技术的回顾363

14.4.2 多原语并发程序表示法364

14.4.3 SR语言366

14.5 并发程序设计语言367

14.6 小结370

习题372

第15章 描述性程序设计语言375

15.1 概述375

15.2 置标语言378

15.2.1 SGML379

15.2.2 HTML385

15.2.3 XML388

15.3 脚本语言395

15.3.1 JavaScript396

15.3.2 Perl403

15.3.3 PHP405

15.3.4 C Shell408

15.4 小结409

习题410

第16章 指称语义的原理与应用412

16.1 指称语义原理412

16.1.1 语义函数和辅助函数412

16.1.2 语义域415

16.1.3 命令式语言的特殊域416

16.2 指称语义示例418

16.2.1 过程式小语言IMP419

16.2.2 IMP的语义域、语义函数和辅助函数419

16.2.3 IMP的指称语义420

16.3 程序抽象的语义描述422

16.3.1 函数抽象423

16.3.2 过程抽象424

16.3.3 参数机制的语义描述425

16.4 复合类型427

16.4.1 最简单的复合变量的语义描述428

16.4.2 数组变量的语义描述430

16.5 程序失败的语义描述433

16.6 指称语义应用433

16.6.1 指称语义用于设计语言434

16.6.2 指称语义用于程序性质研究437

16.6.3 语义原型440

16.7 小结443

习题444

第17章 代数语义学448

17.1 代数基础448

17.1.1 抽象代数448

17.1.2 ∑-代数451

17.1.3 全等类454

17.1.4 泛同构映射456

17.2 代数规格说明457

17.2.1 Sp代数公理459

17.2.2 隐式算子与条件公理459

17.2.3 保留、完整性和一致性461

17.3 数据类型的代数规格说明461

17.3.1 简单类型的代数规格说明462

17.3.2 参数化规格说明464

17.4 λ演算的代数规格说明469

17.5 小结471

附录472

参考文献500

热门推荐