《程序设计语言概念》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Robert W. Sebesta著;林琪,侯妍译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2006
  • ISBN:7508324900
  • 页数:504 页
图书介绍:本书的根本目的是向读者提供一些必要的工具,以便对现有以及将来出现的程序设计语言做出适当的评价,另外还力图帮助读者打好学习编译器设计的基础。

目录 1

前言 1

第1章 入门知识 1

1.1 为什么研究程序设计语言的概念 1

1.2 程序设计领域 3

1.3 语言评价标准 5

1.4 对语言设计的影响 14

1.5 语言分类 16

1.6 语言设计权衡 17

1.7 实现方法 18

1.8 编程环境 22

小结 23

复习思考题 23

有关问题集 24

第2章 主要程序设计语言的发展之路 25

2.1 Zuse的Plankalkül 26

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

2.3 IBM 704和Fortran 29

2.4 数式程序设计:LISP 34

2.5 优化前进的第一步:ALGOL60 38

2.6 计算机化的商业记录:COBOL 43

2.7 分时的起步:BASIC 47

人物访谈 50

2.8 面向全盘:PL/I 52

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

2.10 数据抽象的萌芽:SIMULA 67 56

2.11 正交设计:ALGOL68 56

2.12 ALGOL之后的一些早期语言 58

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

2.14 历史上付出最大设计投入的语言:Ada 64

2.15 面向对象程序设计:Smalltalk 68

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

2.17 基于命令式的面向对象语言:Java 73

2.18 面向Web的脚本语言:JavaScript和PHP 76

2.19 新千年的新语言:C 79

小结 80

参考书目 80

复习思考题 81

有关问题集 82

第3章 描述语法和语义 84

3.1 引言 84

3.2 描述语法的一般问题 85

3.3 描述语法的形式化方法 86

3.4 属性文法 97

3.5 描述程序的含义:动态语义 102

小结 115

参考书目 116

复习思考题 116

有关问题集 117

第4章 词法和语法分析 120

4.1 引言 120

4.2 词法分析 121

4.3 解析问题 124

4.4 递归下行解析 126

4.5 自底向上解析 131

小结 136

复习思考题 137

有关问题集 138

程序设计练习 139

第5章 名、绑定、类型检查和作用域 140

5.1 引言 140

5.2 名 141

5.3 变量 143

5.4 绑定概念 145

人物访谈 148

5.5 类型检查 152

5.6 强类型 153

5.7 类型兼容性 154

5.8 作用域 156

5.9 作用域和生命期 163

5.10 引用环境 163

5.11 命名常量 165

5.12 变量初始化 166

小结 167

复习思考题 167

有关问题集 168

程序设计练习 173

第6章 数据类型 174

6.1 引言 174

6.2 基本数据类型 175

6.3 字符串类型 178

6.4 用户自定义序数类型 181

6.5 数组类型 184

6.6 关联数组 194

人物访谈 194

6.7 记录类型 197

6.8 联合类型 201

6.9 指针和引用类型 204

小结 213

参考书目 214

复习思考题 214

有关问题集 215

程序设计练习 216

第7章 表达式和赋值语句 217

7.1 引言 217

7.2 算术表达式 218

7.3 重载操作符 224

7.4 类型转换 225

7.5 关系和布尔表达式 228

7.6 短路计算 230

7.7 赋值语句 231

复习思考题 234

7.8 混合模式赋值 234

小结 234

有关问题集 235

程序设计练习 237

第8章 语句级控制结构 238

8.1 引言 238

8.2 选择语句 239

8.3 循环语句 246

人物访谈 253

8.4 无条件分支 256

8.5 卫哨命令 257

8.6 结论 260

小结 261

程序设计练习 262

有关问题集 262

复习思考题 262

第9章 子程序 265

9.1 引言 265

9.2 子程序基本知识 266

9.3 子程序的设计问题 270

9.4 局部引用环境 271

9.5 参数传递方法 272

人物访谈 277

9.6 子程序名作为参数 287

9.7 重载子程序 289

9.8 类属子程序 289

9.9 函数的设计问题 293

9.11 协同程序 294

9.10 用户自定义重载操作符 294

小结 297

复习思考题 297

有关问题集 298

程序设计练习 299

第10章 实现子程序 300

10.1 调用和返回的一般语义 300

10.2 实现“简单”子程序 301

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

10.4 嵌套子程序 308

人物访谈 309

10.5 块 315

10.6 实现动态作用域 317

小结 319

有关问题集 320

复习思考题 320

11.1 抽象的概念 323

第11章 抽象数据类型和封装构造 323

11.2 数据抽象引言 324

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

11.4 语言示例 327

人物访谈 327

11.5 参数化抽象数据类型 337

11.6 封装构造 339

11.7 命名封装 342

小结 343

复习思考题 344

有关问题集 345

程序设计练习 345

12.1 引言 346

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

12.2 面向对象程序设计 347

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

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

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

人物访谈 353

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

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

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

12.9 JavaScript的对象模型 367

12.10 面向对象构造的实现 369

小结 372

复习思考题 373

程序设计练习 374

有关问题集 374

第13章 并发 375

13.1 引言 375

13.2 子程序级并发介绍 377

13.3 信号量 380

13.4 监视器 384

13.5 消息传递 388

13.6 Java线程 398

13.7 C#线程 404

13.8 语句级并发 405

小结 407

参考书目 407

复习思考题 408

程序设计练习 409

有关问题集 409

第14章 异常处理和事件处理 410

14.1 异常处理介绍 410

14.2 Ada中的异常处理 415

14.3 C++中的异常处理 420

14.4 Java中的异常处理 423

人物访谈 424

14.5 事件处理介绍 430

14.6 Java的事件处理 431

小结 437

参考书目 437

复习思考题 438

有关问题集 438

程序设计练习 440

15.1 引言 441

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

15.2 数学函数 442

15.3 函数式程序设计语言的基础知识 444

15.4 第个函数式程序设计语言:LISP 444

15.5 Scheme介绍 447

15.6 COMMONLISP 459

15.7 ML 460

15.8 Haskell 462

15.9 函数式语言的应用 465

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

小结 466

参考书目 467

复习思考题 467

有关问题集 467

程序设计练习 468

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

16.1 引言 470

16.2 谓词算子的简要介绍 471

16.3 谓词算子和证明定理 473

16.4 逻辑程序设计概述 475

16.5 Prolog的起源 476

16.6 Prolog的基本元素 476

16.7 Prolog的缺陷 487

16.8 逻辑程序设计的应用 491

小结 492

参考书目 493

复习思考题 493

有关问题集 493

程序设计练习 494

参考文献 495