《程序设计语言 设计与实现 第3版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:Terrence W.Pratt,Marvin V.Zelkowita著;傅育熙等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1998
  • ISBN:7505345990
  • 页数:467 页
图书介绍:

第一部分 概念 1

第1章 程序语言的学习 1

1.1 为什么要学习程序设计语言 1

1.2 程序语言简史 3

1.2.1 早期语言的发展历史 3

1.2.2 程序语言的地位 6

1.3 程序设计语言的要素 7

1.3.1 良好语言的特征 7

1.3.2 应用领域 11

1.3.3 语言标准 13

1.4 环境对语言的影响 16

1.4.1 批处理环境 16

1.4.2 交互式环境 17

1.4.3 嵌入式系统环境 17

1.4.4 编程环境 18

1.4.5 环境框架 20

1.5 参考资料 21

1.6 习题 21

第2章 语言的设计 23

2.1 计算机的结构和操作 23

2.1.1 计算机硬件结构 23

2.1.2 固件计算机 27

2.1.3 翻译器和软件模拟计算机 28

2.2 虚拟计算机和约束时间 30

2.2.1 语法和语义 31

2.2.2 虚拟计算机和语言实现 32

2.2.3 计算机的层次 32

2.2.4 约束和约束时间 34

2.3 语言范例 37

2.4 参考资料 40

2.5 习题 40

3.1.1 通用的语法标准 42

3.1 编程语言的文法 42

第3章 语言的翻译 42

3.1.2 语言的语法要素 45

3.1.3 主程序-子程序结构 47

3.2 翻译的步骤 50

3.2.1 源程序的分析 51

3.2.2 目标程序的综合 53

3.3. 形式编译模式 55

3.3.1 BNF文法 56

3.3.2 有限状态自动机 62

3.3.3 下推自动机 66

3.3.4 有效的语法分析算法 67

3.3.5 语义模型 70

3.4 参考资料 73

3.5 习题 73

4.1 类型和对象的性质 76

4.1.1 数据对象、变量和常量 76

第4章 数据类型 76

4.1.2 数据类型 79

4.1.3 基本数据类型的表示 80

4.1.4 基本数据类型的实现 82

4.1.5 说明 83

4.1.6 类型检查和类型转换 84

4.1.7 赋值和初始化 88

4.2.1 数字数据类型 90

4.2 基本数据类型 90

4.2.2 枚举类型 95

4.2.3 布尔类型 96

4.2.4 字符型 97

4.2.5 国际化 97

4.3 结构数据类型 98

4.3.1 结构化数据对象和类型 98

4.3.2 数据结构类型的说明 99

4.3.3 数据结构类型的实现 100

4.3.4 数据结构的说明和类型检查 103

4.3.5 向量和数组 104

4.3.6 记录 111

4.3.7 表 116

4.3.8 字符串 120

4.3.9 指针及程序员构造的数据对象 122

4.3.10 集合 124

4.3.11 可执行的数据对象 125

4.3.12 文件及其输入/输出 126

4.4 参考资料 130

4.5 习题 130

第5章 抽象I:封装 135

5.1 抽象的数据类型 136

5.1.1 数据类型的概念和发展 136

5.1.2 信息隐藏 137

5.2 子程序实现的封装 138

5.2.1 作为抽象操作的子程序 139

5.2.2 子程序的定义和调用 140

5.2.3 作为数据对象的子程序定义 145

5.3 类型定义 145

5.3.1 类型相同 147

5.3.2 带有参数的类型定义 150

5.4 存储管理 152

5.4.1 运行时需要存储的主要元素 152

5.4.2 程序员和系统控制的存储管理 154

5.4.3 静态的存储管理 155

5.4.4 基于堆栈的存储管理 155

5.4.5 堆存储管理:固定大小单元 157

5.4.6 堆存储管理:可变长的单元 162

5.5 参考资料 165

5.6 习题 166

6.1 隐含的顺序控制和明确的顺序控制 169

6.2 数学表达式的定序 169

第6章 顺序控制 169

6.2.1 树结构表示法 170

6.2.2 执行时表示法 176

6.3 非数学表达式的定序 180

6.3.1 模式配对 180

6.3.2 合一 183

6.3.3 回溯 187

6.4 语句之间的顺序控制 188

6.4.1 基本语句 188

6.4.2 结构化的顺序控制 192

6.4.3 基本程序 199

6.5 参考资料 202

6.6 习题 203

第7章 子程序控制 205

7.1 子程序顺序控制 205

7.1.1 简单的Call-Return子程序 206

7.1.2 递归子程序 209

7.2 数据控制的属性 210

7.2.1 命名和引用环境 211

7.2.2 静态和动态作用域 215

7.2.3 块结构 217

7.2.4 局部数据和局部引用环境 218

7.3 子程序中的共享数据 222

7.3.1 参数和参数传递 223

7.3.2 显式共同环境 235

7.3.3 动态域 237

7.3.4 静态域和块结构 239

7.4 参考资料 245

7.5 习题 245

第8章 抽象Ⅱ:继承 250

8.1 再论抽象数据类型 250

8.2 继承 256

8.2.1 派生类 257

8.2.2 方法 259

8.2.3 抽象类 261

8.2.4 对象和消息 262

8.2.5 有关抽象的概念 265

8.3 多态性 266

8.4 参考资料 268

8.5 习题 268

第9章 语言设计进展 270

9.1 子程序控制的变体 271

9.1.1 异常和异常处理程序 271

9.1.2 协同程序 275

9.1.3 子程序调度 276

9.1.4 非顺序执行 277

9.2 并行程序设计 277

9.2.1 并发运行 278

9.2.2 卫式语句 279

9.2.3 任务 281

9.2.4 任务的同步 283

9.3 语言的形式性质 291

9.3.1 Chomsky层次文法 292

9.3.2 不可判定性 294

9.3.3 算法复杂性 298

9.4 语言的语义 300

9.4.1 指称语义 300

9.4.2 程序验证 306

9.4.3 代数数据类型 309

9.4.4 消解 312

9.5 硬件 313

9.5.1 处理器设计 314

9.5.2 系统设计 316

9.6 软件的体系结构 317

9.6.1 持久性数据和事务系统 318

9.6.2 网终和客户机/服务器计算 318

9.6.3 桌面排版 320

9.6.4 程序设计语言的发展趋势 321

9.8 习题 322

9.7 参考资料 322

第二部分 范例和语言 326

第10章 简单过程式程序设计语言 326

10.1 FORTRAN 326

10.1.1 发展历史 327

10.1.2 程序举例 327

10.1.3 语言概述 327

10.1.4 数据对象 330

10.1.5 顺序控制 334

10.1.6 子程序和存储管理 339

10.1.7 抽象与封装 341

10.1.8 对该语言的评价 341

10.2.1 发展历史 342

10.2.2 程序举例 342

10.2 C 342

10.2.3 语言概述 343

10.2.4 数据对象 346

10.2.5 顺序控制 350

10.2.6 子程序和存储管理 353

10.2.7 抽象与封装 355

10.2.8 对该语言的评价 355

10.4 习题 356

10.3 参考资料 356

第11章 块结构过程式程序设计语言 358

11.1 PASCAL 358

11.1.1 发展历史 358

11.1.2 程序举例 359

11.1.3 语言概述 359

11.1.4 数据对象 362

11.1.5 顺序控制 366

11.1.6 子程序和存储管理 368

11.1.8 对该语言的评价 373

11.1.7 抽象与封装 373

11.2 参考资料 374

11.3 习题 374

第12章 基于对象的语言 376

12.1 ADA 376

12.1.1 发展历史 376

12.1.2 程序举例 377

12.1.3 语言概述 378

12.1.4 数据对象 381

12.1.5 顺序控制 388

12.1.6 子程序和存储管理 391

12.1.7 抽象与封装 396

12.1.8 对该语言的评价 398

12.2 C++ 398

12.2.1 发展历史 398

12.2.3 语言概述 399

12.2.2 程序举例 399

12.2.4 数据对象 403

12.2.5 顺序控制 407

12.2.6 子程序和存储管理 408

12.2.7 抽象与封装 410

12.2.8 对该语言的评价 410

12.3.3 语言概述 411

12.3.2 程序举例 411

12.3.1 发展历史 411

12.3 Smalltalk 411

12.3.4 数据对象 414

12.3.5 顺序控制 415

12.3.6 子程序和存储管理 417

12.3.7 抽象与封装 420

12.3.8 对该语言的评价 420

12.4 参考资料 421

12.5 习题 421

13.1.1 发展历史 423

第13章 函数式程序设计语言 423

13.1 LISP 423

13.1.2 程序举例 424

13.1.3 语言概述 424

13.1.4 数据对象 427

13.1.5 顺序控制 428

13.1.6 子程序和存储管理 431

13.1.7 抽象与封装 435

13.1.8 对该语言的评价 435

13.2 ML 435

13.2.1 发展历史 435

13.2.2 程序举例 435

13.2.3 语言概述 436

13.2.4 数据对象 438

13.2.5 顺序控制 441

13.2.6 子程序和存储管理 443

13.2.7 抽象与封装 445

13.2.8 对该语言的评价 447

13.3 参考资料 447

13.4 习题 448

第14章 逻辑式程序设计语言 450

14.1 Prolog 450

14.1.1 发展历史 450

14.1.2 程序举例 451

14.1.3 语言概述 451

14.1.4 数据类型 453

14.1.5 顺序控制 454

14.1.6 子程序和存储管理 456

14.1.7 抽象与封装 457

14.1.8 对该语言的评价 457

14.2 参考资料 457

14.3 习题 457

参考文献 459