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

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Terrence W .Pratt著,(美)Marvin V.Zelkowitz 傅育熙等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505367307
  • 页数:461 页
图书介绍:本书在一定广度和深度上介绍了程序语言的发展历史和基本概念,讲述了程序语言语法、语义和编译实现之间的关系,介绍了数据类型、顺序控制、子程序、封装、继承等概念以及其实现技术,涉及函数式语言、逻辑式语言、命令式语言和面向对象的语言,包括排版、并行、分布式和网络程序语言等,分析了13种不同语言的编程实例。本书适合于所有对程序语言感兴趣的读者,可用于作为大专院校计算机系本科生教材或教学参考书。

第1章 程序语言设计问题 1

1.1 为什么学习程序语言 1

1.2 程序语言简史 2

1.2.1 早期语言的发展 3

1.2.2 软件结构的演化 5

1.2.3 应用领域 9

1.3 程序语言的角色 11

1.3.1 如何构成一种好语言 13

1.3.2 语言范例 17

1.3.3 语言标准 20

1.3.4 国际化 22

1.4 编程环境 23

1.4.1 对语言设计的影响 23

1.4.2 环境框架 25

1.4.3 作业控制与过程语言 25

1.5 C简介 26

1.6 进一步阅读的建议 28

1.7 习题 28

第2章 机器体系结构对语言的影响 30

2.1 计算机的操作 30

2.1.1 计算机的硬件结构 30

2.1.2 固件计算机 34

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

2.2 虚拟计算机和绑定时间 37

2.2.1 虚拟计算机和语言实现 38

2.2.2 虚拟机的层次 38

2.2.3 绑定和绑定时间 40

2.2.4 Java概览 42

2.3 进一步阅读的建议 44

2.4 习题 44

第3章 语言翻译问题 46

3.1 编程语言语法 46

3.1.1 通用语法标准 46

3.1.2 语言的语法要素 49

3.1.3 主程序-子程序结构 51

3.2 翻译的步骤 53

3.2.1 源程序的分析 54

3.2.2 目标程序的综合 56

3.3 形式编译模式 58

3.3.1 BNF文法 59

3.3.2 有限状态自动机 65

3.3.3 Perl概述 69

3.3.4 下推自动机 71

3.3.5 常规的语法分析策略 72

3.4 递归下降语法分析 73

3.5 Pascal概述 74

3.6 进一步阅读的建议 76

3.7 习题 76

第4章 建立语言属性的模型 79

4.1 语言的形式性质 79

4.1.1 Chomsky层次文法 80

4.1.2 不可判定性 82

4.1.3 算法复杂性 86

4.2 语言的语义 88

4.2.1 属性文法 89

4.2.2 指称语义 91

4.2.3 ML概述 97

4.2.4 程序验证 98

4.2.5 代数数据类型 101

4.3 进一步阅读的建议 104

4.4 习题 104

第5章 基本数据类型 107

5.1 类型和对象的属性 107

5.1.1 数据对象、变量和常量 107

5.1.2 数据类型 110

5.1.3 声明 114

5.1.4 类型检查和类型转换 115

5.1.5 赋值和初始化 119

5.2 标量数据类型 121

5.2.1 数字数据类型 121

5.2.2 枚举类型 126

5.2.3 布尔类型 127

5.2.4 字符型 128

5.3 复合数据类型 129

5.3.1 字符串 129

5.3.2 指针和程序员构造的数据对象 131

5.3.3 文件和输入输出 133

5.4 FORTRAN概述 136

5.5 进一步阅读的建议 137

5.6 习题 138

第6章 封装 141

6.1 结构化数据类型 142

6.1.1 结构化数据对象和数据类型 142

6.1.2 数据结构类型规范 142

6.1.3 数据结构类型的实现 144

6.1.4 数据结构的声明和类型检查 146

6.1.5 向量和数组 147

6.1.6 记录 155

6.1.7 列表 160

6.1.8 集合 163

6.1.9 可执行数据对象 165

6.2 抽象的数据类型 166

6.2.1 数据类型概念的发展 166

6.2.2 信息隐藏 167

6.3 通过子程序实现封装 168

6.3.1 作为抽象操作的子程序 168

6.3.2 子程序定义和调用 170

6.3.3 作为数据对象的子程序定义 174

6.4 类型定义 175

6.4.1 类型相同 176

6.4.2 带有参数的类型定义 179

6.5 C++概述 181

6.6 进一步阅读的建议 182

6.7 习题 183

第7章 继承 188

7.1 再论抽象数据类型 188

7.2 继承 194

7.2.1 派生类 194

7.2.2 方法 197

7.2.3 抽象类 199

7.2.4 Smalltalk概述 200

7.2.5 对象和消息 201

7.2.6 有关抽象的概念 205

7.3 多态 206

7.4 进一步阅读的建议 208

7.5 习题 208

第8章 顺序控制 210

8.1 隐式的和显式的顺序控制 210

8.2 表达式中的顺序 210

8.2.1 树结构表示 211

8.2.2 执行时的表示 217

8.3 语句之间的顺序控制 220

8.3.1 基本语句 220

8.3.2 结构化的顺序控制 224

8.3.3 基本程序 231

8.4 非算术表达式的顺序化 234

8.4.1 Prolog简介 234

8.4.2 模式匹配 236

8.4.3 合一 239

8.4.4 回溯 243

8.4.5 归结 244

8.5 进一步阅读的建议 245

8.6 习题 245

第9章 子程序控制 248

9.1 子程序顺序控制 248

9.1.1 简单的Call-Return子程序 249

9.1.2 递归子程序 254

9.1.3 Pascal的forward声明 254

9.2 数据控制的属性 256

9.2.1 命名和引用环境 257

9.2.2 静态和动态作用域 260

9.2.3 块结构 262

9.2.4 局部数据和局部引用环境 264

9.3 参数传递 267

9.3.1 实际和形式参数 268

9.3.2 参数传递的方法 269

9.3.3 参数传递语义 272

9.3.4 参数传递的实现 272

9.4 显式共同环境 280

9.4.1 动态域 282

9.4.2 静态域和块结构 284

9.5 参考资料 290

9.6 习题 290

第10章 存储管理 295

10.1 需要存储的元素 295

10.2 程序员和系统控制的存储管理 296

10.3 静态的存储管理 297

10.4 堆的存储管理 298

10.4.1 LISP概况 298

10.4.2 固定大小的单元 300

10.4.3 可变长的单元 305

10.5 进一步阅读的建议 308

10.6 习题 308

第11章 分布式处理 311

11.1 子程序控制的变体 311

11.1.1 异常和异常处理程序 311

11.1.2 协同程序 315

11.1.3 子程序调度 316

11.2 并行程序设计 317

11.2.1 并发运行 318

11.2.2 保护命令 319

11.2.3 Ada简介 321

11.2.4 任务 323

11.2.5 任务的同步 324

11.3 硬件的发展 333

11.3.1 处理器设计 333

11.3.2 系统设计 335

11.4 软件体系结构 337

11.4.1 持久性数据和事务系统 337

11.4.2 网络和客户-服务器计算 338

11.5 进一步阅读的建议 340

11.6 习题 340

第12章 网络程序设计 342

12.1 桌面出版 343

12.1.1 LATEX文档处理 343

12.1.2 WYSIWYG编辑器 345

12.1.3 Postscript 345

12.1.4 Postscritp虚拟机 346

12.2 万维网 350

12.2.1 互联网 350

12.2.2 CGI脚本 358

12.2.3 Java小应用程序 360

12.2.4 XML 362

12.3 进一步阅读的建议 363

12.4 习题 363

附录A 语言概要 364

A.1 ADA 364

A.2 C 378

A.3 C++ 387

A.4 FORTRAN 396

A.5 JAVA 404

A.6 LISP 408

A.7 ML 415

A.8 PASCAL 425

A.9 PERL 433

A.10 Postscript语言 436

A.11 Prolog 439

A.12 Smalltalk 444

A.13 进一步阅读的建议 452

参考文献 453