图书介绍

程序设计语言概念2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

程序设计语言概念
  • (美)John C. Mitchell著;冯建华等译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302111073
  • 出版时间:2005
  • 标注页数:438页
  • 文件大小:38MB
  • 文件页数:452页
  • 主题词:程序语言-高等学校-教材

PDF下载


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

下载说明

程序设计语言概念PDF格式电子书版下载

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

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

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

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

图书目录

目录2

第1部分 函数与基本原理2

第1章 导言2

1.1 程序设计语言2

1.2 目标3

1.2.1 总体目标3

1.2.2 特殊主题3

1.3 程序设计语言的历史4

1.4 组织:概念和语言5

第2章 可计算性7

2.1 部分函数与可计算性7

2.1.1 表达式、错误和非终止符7

2.1.2 部分函数8

2.1.3 可计算性9

2.2 本章小结11

习题11

3.2 好的语言设计13

3.1 Lisp语言的历史13

第3章 Lisp语言:函数、递归和列表13

3.3 语言简述15

3.4 Lisp设计中的创新18

3.4.1 语句和表达式18

3.4.2 条件表达式19

3.4.3 Lisp抽象机20

3.4.4 把程序作为数据23

3.4.5 函数表达式24

3.4.7 高阶函数25

3.4.6 递归25

3.4.8 垃圾收集26

3.4.9 纯Lisp与副作用29

3.5 本章小结30

习题30

第4章 基本原理38

4.1 编译器和语法38

4.1.1 一个简单编译器的结构38

4.1.2 文法和解析树41

4.1.3 解析和优先级43

4.2 朗母达演算44

4.2.1 函数和函数表达式44

4.2.2 朗母达表达式45

4.2.3 朗母达演算编程49

4.2.4 归约、汇合和范式51

4.2.5 朗母达演算的重要特征52

4.3 指称语义52

4.3.1 目标语言和元语言53

4.3.2 二进制数的指称语义54

4.3.3 While程序的指称语义55

4.3.4 透视和非标准语义58

4.4 函数型语言和命令型语言60

4.4.1 命令语句和声明语句60

4.4.2 功能型程序和命令型程序61

4.5 本章小结65

习题66

5.1.1 Algol 6074

5.1 Algol家族的程序语言74

第2部分 过程、类型、内存管理与控制74

第5章 Algol与ML语言74

5.1.2 Algol 6876

5.1.3 Pascal77

5.1.4 Modula78

5.2 C语言的发展78

5.3 LCF系统和ML80

5.4 ML程序设计语言82

5.4.1 交互会话和运行时环境82

5.4.2 基本类型和类型构造器85

5.4.3 模式、声明、函数表达式89

5.4.4 ML数据类型的声明92

5.4.5 ML的引用单元与赋值94

5.4.6 ML小结97

5.5 本章小结98

习题98

6.1.1 程序的组织和文档105

6.1 程序设计中的类型105

第6章 类型系统和类型推测105

6.1.2 类型错误106

6.1.3 类型与优化107

6.2 类型安全和类型检查108

6.2.1 类型安全108

6.2.2 编译时和运行时的类型检查108

6.3 类型推测110

6.3.1 第一个类型推测的示例110

6.3.2类型推测算法111

6.4 多态和重载118

6.4.1 参数多态118

6.4.2 参数多态的实现120

6.4.3 重载122

6.5 类型声明和类型等价性123

6.5.1 透明的类型声明123

6.5.2 C语言的声明和结构124

6.5.3 ML类型声明125

6.6 本章小结126

习题127

第7章 作用域、函数和存储管理133

7.1 块结构的语言133

7.2 内嵌块135

7.2.1 活动记录和局部变量135

7.2.2 全局变量和控制链138

7.3 函数和子程序139

7.3.1 函数的活动记录139

7.3.2 参数传递141

7.3.3 全局变量(一阶情况)144

7.3.4 末端递归(一阶情况)146

7.4 高阶函数148

7.4.1 一阶函数148

7.4.2 将函数传递给函数149

7.4.3 从嵌套作用域中返回函数152

7.5 本章小结154

习题155

8.1.2 结构化控制168

8.1.1 意大利面条式的代码168

第8章 顺序语言中的控制168

8.1 结构化控制168

8.2 异常169

8.2.1 异常机制的目的169

8.2.2 ML异常171

8.2.3 C++异常173

8.2.4 关于异常的更多内容175

8.3 延续179

8.3.1 表示“程序其余部分”的函数179

8.3.2 延续传递形式和末端调用180

8.3.3 延续的编译183

8.4 函数和求值顺序183

8.5 本章小结186

习题187

第3部分 模块、抽象与面向对象程序设计192

第9章 数据抽象和模块化192

9.1 结构化程序设计192

9.1.1 数据细化193

9.1.2 模块化194

9.2 支持抽象机制的语言196

9.2.1 抽象197

9.2.2 抽象数据类型198

9.2.3 ML抽象数据类型198

9.2.4 表达无关性201

9.2.5 数据类型介绍202

9.3 模块204

9.3.1 Modula和Ada205

9.3.2 ML模块207

9.4 一般抽象210

9.4.1 C++函数模板210

9.4.2 标准的ML算符212

9.4.3 C++标准模板库215

9.5 本章小结218

习题220

10.1 面向对象设计226

第10章 面向对象语言的概念226

10.2 面向对象语言中的4个基本概念227

10.2.1 动态查找227

10.2.2 抽象229

10.2.3 子类型231

10.2.4 继承232

10.2.5 作为对象的闭包233

10.2.6 继承不是子类型234

10.3 编程结构235

10.4 设计模式236

10.5 本章小结239

10.6 展望:Simula、Smalltalk、C++、Java239

习题240

第11章 对象的历史:Simula和Smalltalk246

11.1 Simula面向对象机理246

11.1.1 对象和仿真246

11.1.2 Simula的主要概念247

11.2 Simula中的对象247

11.2.2 一个点线圆的例子248

11.2.1 Simula中面向对象的基本特点248

11.2.3 示例代码和对象表示250

11.3 Simula中的子类和继承251

11.3.1 对象类型和子类型252

11.4 Smalltalk的发展254

11.5 Smalltalk语言的特点255

11.5.1 术语255

11.5.2 类和对象255

11.5.3 继承258

11.6.1 动态查找和多态260

11.5.4 Smalltalk的抽象性260

11.6 Smalltalk的灵活性260

11.6.2 布尔变量和块261

11.6.3 self和super262

11.6.4 系统扩充:Ingalls测试263

11.7 子类型与继承的重要性264

11.7.1 对象类型作为接口264

11.7.3 子类型和继承265

11.7.2 子类型265

11.8 本章小结267

习题268

第12章 C++对象与运行效率277

12.1 设计目标和限制277

12.1.1 与C的兼容性277

12.1.2 C++的成功278

12.2 C++概述278

12.2.1 增加了C中没有的对象279

12.2.3 好的决定和问题所在282

12.2.2 面向对象的特点282

12.3 类、继承和虚函数284

12.3.1 C++类和对象284

12.3.2 C++派生类(继承)285

12.3.3 虚函数287

12.3.4 为什么C++的查找比Smalltalk的查找简单288

12.4 子类型292

12.4.1 子类型原理292

12.4.2 公有基类293

12.4.4 抽象基类294

12.4.3 public成员的特殊类型294

12.5 多重继承295

12.5.1 多重继承的实现296

12.5.2 命名冲突、继承和虚拟基类298

12.6 本章小结301

习题302

第13章 可移植性和安全性:Java语言319

13.1.2 设计决策320

13.1 Java语言概述320

13.1.1 Java语言的目标320

13.2 Java的类和继承322

13.2.1 类和对象322

13.2.2 包和可视性325

13.2.3 继承325

13.2.4 抽象类和接口327

13.3.1 类型的分类328

13.3 Java的类型及子类型关系328

13.3.2 类和接口的子类型关系329

13.3.3 数组、协变和反协变330

13.3.4 Java异常类的层次关系331

13.3.5 子类型多态和通用编程333

13.4 Java系统架构336

13.4.1 Java虚拟机336

13.4.2 类加载器337

13.4.3 Java链接器、检验器及类型约束337

13.4.4 字节码解释器和方法查询338

13.5 安全特性342

13.5.1 缓冲区泄漏攻击343

13.5.2 Java沙箱344

13.5.3 安全和类型安全346

13.6 本章小结347

习题349

第14章 并发和分布式编程358

第4部分 并发性与逻辑编程358

14.1 并发的基本概念359

14.1.1 执行顺序和非确定性359

14.1.2 通信、协调和原子性361

14.1.3 互斥和封锁361

14.1.4 信号量364

14.1.5 管程365

14.2 Actor模型366

14.3.1 线程和通道369

14.3 并发ML369

14.3.2 选择式通信和保护命令371

14.3.3 一流的同步操作:事件373

14.4 Java的并发性377

14.4.1 线程、通信与同步378

14.4.2 同步方法380

14.4.3 虚拟机与存储模型382

14.4.4 分布式程序设计与远程方法调用386

14.5 本章小结388

习题390

第15章 逻辑编程范例和Prolog396

15.1 逻辑编程的历史396

15.2 逻辑编程范例的简要概述397

15.2.1 说明性编程397

15.2.2 交互编程397

15.3 作为原子动作统一解决的等式398

15.3.1 项398

15.3.3 最通用的合一置换399

15.3.2 置换399

15.3.4 合一算法400

15.4 子句作为过程声明的一部分402

15.4.1 简单子句402

15.4.2 计算过程402

15.4.3 子句404

15.5 Prolog编程405

15.5.1 单个程序的多重使用405

15.5.2 逻辑变量406

15.6 Prolog中的数学409

15.6.1 数学运算符410

15.6.2 数学比较关系410

15.6.3 对算术表达式的赋值412

15.7 控制、双性语法和元变量414

15.7.1 剪切414

15.7.2 双性语法和元变量415

15.7.3 控制设备416

15.7.4 失败的否定418

15.7.5 高阶编程和Prolog中的元编程419

15.8 Prolog的评价421

15.9 书目评价423

15.10 本章小结423

附录A 程序实例补充425

A.1 程序和面向对象机制425

A.1.1 类型的程序:典型案例版本426

A.1.2 shape程序:面向对象版本430

附录B 术语表433

热门推荐