《程序设计语言原理 原书第7版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Robert W. Sebesta著;张勤,王方矩译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2007
  • ISBN:7111208536
  • 页数:496 页
图书介绍:本书是一本在美国、加拿大得到广泛使用的大学教材,全书的主旨是为读者提供对现有的和未来的程序设计语言进行客观评估所需的工具,增强读者学习新语言和理解语言实现的能力。本书第7版从常用的程序设计语言的演化史讲起,将程序设计语言的基本概念层层展开,并通过比较各种程序设计语言的特点和关联、总结出评估程序设计语言结构的标准。与其他程序设计语言的教材不同的是:本书着重讨论语言的结构与特征及其在各种情景中的不同设计与实现,以此说明如何根据给定的任务选择合适的语言。

第1章 基本概念 1

1.1 学习程序设计语言原理的缘由 1

1.2 程序设计应用领域 3

1.3 语言评估标准 4

1.4 影响语言设计的因素 13

1.5 语言分类 15

1.6 语言设计中的权衡 16

1.7 实现方法 16

1.8 程序设计环境 21

小结*复习题*练习题 21

第2章 主要程序设计语言的发展 24

2.1 Zuse的Plankalkül语言 24

2.2 最小硬件的程序设计:伪代码 26

2.3 IBM704计算机与Fortran 28

2.4 函数式程序设计:LISP语言 32

2.5 迈向成熟的第一步:ALGOL60 36

2.6 商务记录计算机化:COBOL 41

2.7 分时操作的开始:BASIC 44

2.8 用途广泛的语言:PL/I 48

2.9 两种早期的动态语言:APL和SNOBOL 51

2.10 数据抽象的开始:SIMULA 67 52

2.11 正交性语言的设计:ALGOL 68 52

2.12 早期ALGOL系列语言的后代产品 54

2.13 基于逻辑的程序设计:Prolog 59

2.14 历史上规模最大的语言设计:Ada 60

2.15 面向对象的程序设计:Smalltalk 64

2.16 结合命令式与面向对象的特性:C++ 66

2.17 一种基于命令式的面向对象语言:Java 69

2.18 脚本语言:JavaScript、PHP及Python 71

2.19 一种基于C的新世纪语言:C# 74

2.20 标志与程序设计混合式语言 76

小结*文献注释*复习题*练习题 78

第3章 描述语法和语义 81

3.1 概述 81

3.2 描述语法的普遍问题 81

3.3 描述语法的形式方法 83

3.4 属性文法 92

3.5 描述程序的意义:动态语义 96

小结*文献注释*复习题*练习题 110

第4章 词法分析和语法分析 114

4.1 概述 114

4.2 词法分析 115

4.3 语法分析问题 118

4.4 递归下降语法分析 120

4.5 自底向上语法分析 125

小结*复习题*练习题*程序设计练习题 131

第5章 名字、绑定、类型检测和作用域 134

5.1 概述 134

5.2 名字 134

5.3 变量 136

5.4 绑定概念 138

5.5 类型检测 145

5.6 强类型化 145

5.7 类型兼容 147

5.8 作用域 149

5.9 作用域与生存期 154

5.10 引用环境 155

5.11 命名常量 156

小结*复习题*练习题*程序设计练习题 158

第6章 数据类型 164

6.1 概述 164

6.2 基本数据类型 165

6.3 字符串类型 167

6.4 用户定义的序数类型 170

6.5 数组类型 173

6.6 关联数组 182

6.7 记录类型 185

6.8 联合类型 188

6.9 指针类型与引用类型 191

小结*文献注释*复习题*练习题*程序设计练习题 200

第7章 表达式与赋值语句 204

7.1 概述 204

7.2 算术表达式 204

7.3 重载操作符 210

7.4 类型转换 212

7.5 关系表达式和布尔表达式 214

7.6 短路求值 215

7.7 赋值语句 217

7.8 混合模式赋值 219

小结*复习题*练习题*程序设计练习题 220

第8章 语句层次的控制结构 223

8.1 概述 223

8.2 选择语句 224

8.3 循环语句 230

8.4 无条件分支 240

8.5 守卫的命令 241

8.6 结论 243

小结*复习题*练习题*程序设计练习题 244

第9章 子程序 247

9.1 概述 247

9.2 子程序的基本原理 247

9.3 子程序的设计问题 251

9.4 局部引用环境 252

9.5 参数传递方法 253

9.6 子程序名作为参数 267

9.7 重载子程序 269

9.8 通用子程序 269

9.9 函数的设计问题 274

9.10 用户定义的重载操作符 275

9.11 协同程序 275

小结*复习题*练习题*程序设计练习题 277

第10章 实现子程序 281

10.1 调用与返回的一般语义 281

10.2 实现“简单”子程序 281

10.3 实现具有栈动态局部变量的子程序 283

10.4 嵌套子程序 287

10.5 块 293

10.6 实现动态作用域 294

小结*复习题*练习题 296

第11章 抽象数据类型和封装结构 300

11.1 抽象概念 300

11.2 数据抽象介绍 300

11.3 抽象数据类型的设计问题 302

11.4 语言示例 305

11.5 有参数的抽象数据类型 313

11.6 封装结构 315

11.7 命名封装 317

小结*复习题*练习题*程序设计练习题 320

第12章 支持面向对象的程序设计 323

12.1 概述 323

12.2 面向对象程序设计 323

12.3 面向对象语言的设计问题 325

12.4 Smalltalk对面向对象程序设计的支持 328

12.5 C++对面向对象程序设计的支持 330

12.6 Java对面向对象程序设计的支持 338

12.7 C#对面向对象程序设计的支持 340

12.8 Ada 95对面向对象程序设计的支持 341

12.9 JavaScript的对象模型 344

12.10 面向对象结构的实现 346

小结*复习题*练习题*程序设计练习题 349

第13章 并发 352

13.1 概述 352

13.2 子程序层次并发的介绍 354

13.3 信号量 357

13.4 管理 360

13.5 消息传递 362

13.6 Ada对并发的支持 362

13.7 Java线 371

13.8 C#线 376

13.9 语句层次的并发 378

小结*文献注释*复习题*练习题*程序设计练习题 379

第14章 异常处理 383

14.1 异常处理介绍 383

14.2 Ada中的异常处理 387

14.3 C++中的异常处理 392

14.4 Java中的异常处理 395

14.5 Java的事件处理 402

14.6 Java的事件处理 403

小结*文献注释*复习题*练习题 407

第15章 函数式程序设计语言 411

15.1 概述 411

15.2 数学函数 412

15.3 函数式程序设计语言的基础 413

15.4 第一种函数式程序设计语言:LISP 414

15.5 Scheme概述 416

15.6 COMMON LISP 428

15.7 ML 429

15.8 Haskell 431

15.9 函数式语言的应用 434

15.10 函数式语言和命令式语言的比较 434

小结*文献注释*复习题*练习题*程序设计练习题 435

第16章 逻辑程序设计语言 438

16.1 概述 438

16.2 谓词演算的简短介绍 438

16.3 谓词演算与定理证明 441

16.4 逻辑程序设计概述 442

16.5 Prolog的起源 443

16.6 Prolog的基本元素 444

16.7 Prolog的缺陷 454

16.8 逻辑程序设计的应用 458

小结*文献注释*复习题*练习题*程序设计练习题 460

参考文献 462

索引 471