第1章 计算的起源与早期的计算工具 1
1.1 计算的起源 1
1.1.1 数的概念及记数方式的诞生 1
1.1.2 古埃及数学及记数体系 2
1.1.3 巴比伦数学及记数体系 3
1.1.4 中国古代记数体系及算术 4
1.1.5 古印度数学及计数体系 8
1.2 早期的计算工具 9
1.2.1 世界最早的计算工具——中国算筹 9
1.2.2 耐普尔算筹 11
1.2.3 计算尺的发明 12
参考文献 14
第2章 机械计算机的研制 15
2.1 契卡德研制的机械计算机 15
2.2 帕斯卡加法计算机 16
2.3 莫兰德机械计算机 17
2.4 莱布尼茨对帕斯卡计算机的改进 18
2.5 程序控制概念的提出 19
2.6 巴贝奇的成就与悲剧 21
2.7 爱达与程序设计思想 24
2.8 霍勒里斯发明数据分析处理机 25
2.9 模拟计算机的诞生 27
2.9.1 奥涅尔手摇式计算机 27
2.9.2 布什微分分析仪 28
参考文献 29
第3章 电磁计算机的研制 30
3.1 斯蒂比兹与电磁式数字计算机 30
3.2 朱斯与第一台通用程序控制计算机 31
3.3 哈佛Mark系列自动程序控制计算机 33
3.3.1 艾肯与Mark系列自动程序控制计算机 33
3.3.2 赫柏与Mark系列计算机 35
哈佛大学 36
参考文献 39
第4章 电子计算机时代 40
4.1 电子计算机产生的条件和背景 40
4.1.1 电子管的发明 40
4.1.2 晶体管的发明 41
4.1.3 集成电路的诞生 43
4.2 阿塔诺索夫、贝瑞与ABC计算机 44
4.3 英国Colossus计算机 46
4.4 第一台数字电子计算机——ENIAC 47
4.4.1 莫克莱、埃克特与ENIAC设计团队 47
宾夕法尼亚大学 53
4.4.2 冯·诺依曼提出EDVAC方案 54
4.4.3 戈德斯坦与ENIAC计算机 55
4.5 第一台存储程序计算机——EDSAC 56
4.6 曼彻斯特大学的MARK计算机 58
4.7 图灵、威尔金森与ACE电子计算机 60
参考文献 61
第5章 电子计算机的发展与应用 62
5.1 电子管计算机时代 62
5.1.1 第一台通用计算机UNIVAC 62
5.1.2 SEAC和SWAC计算机 63
5.1.3 冯·诺依曼、波莫尼与IAS计算机 65
5.1.4 从IBM 604到IBM 701、IBM 650 66
5.1.5 麻省理工学院Whirlwind计算机 68
麻省理工学院 71
5.2 晶体管计算机时代 74
5.2.1 晶体管计算机的发明与个人计算机LINC的诞生 74
5.2.2 IBM Stretch和UNIVAC Larc计划 76
5.3 集成电路计算机时代 79
5.3.1 布鲁克斯、伊万斯与IBM 360系列计算机 80
5.3.2 DEC的辉煌与奥尔森的悲剧 84
5.3.3 “小型机之父”——戈登·贝尔 86
5.3.4 卡斯特罗与DGC Nova小型计算机 88
5.4 中大型计算机时代 89
5.5 巨型机的研究与发展 91
5.5.1 诺雷斯、克雷与CDC系列巨型计算机 91
5.5.2 IBM研制超级计算机 94
5.5.3 中国“银河”巨型计算机 95
参考文献 97
第6章 计算机科学理论的形成 98
6.1 布尔与布尔代数 98
6.2 香农对布尔代数的实验研究 99
6.3 维纳提出计算机设计的原则 100
6.4 图灵与图灵机模型 101
6.5 冯·诺依曼体系计算机 106
参考文献 108
第7章 微处理器及其发展 109
7.1 微处理器概述 109
7.2 Intel创立 111
7.2.1 “硅谷人才摇篮”——仙童 111
7.2.2 Intel三杰——诺伊斯、摩尔和格鲁夫 113
7.3 微处理器的诞生与发展 116
7.3.1 霍夫与第一块微处理器Intel 4004 116
7.3.2 Zilog公司与Z-80微处理芯片 120
7.3.3 32位微处理器的诞生 120
7.3.4 Pentium微处理器 123
7.3.5 多媒体扩展指令集微处理器 124
7.3.6 64位微处理器 127
7.3.7 RISC和CISC技术 129
7.4 AMD与微处理器 130
参考文献 133
第8章 微型计算机及其发展 134
8.1 施乐与Xerox Alto微型计算机 134
8.2 第一台微型计算机——Altair 8800 137
8.3 家酿电脑俱乐部 138
8.4 微软创立 139
8.5 苹果电脑的诞生与发展 143
8.5.1 乔布斯、沃兹尼亚克创立苹果公司 143
8.5.2 苹果电脑的辉煌 146
8.5.3 跌入低谷的“苹果” 148
8.6 IBM-PC的诞生 150
8.6.1 IBM-PC之父——唐·埃斯特利奇 150
8.6.2 开放、兼容的IBM-PC 151
8.6.3 IBM在PC上的失误及其教训 152
8.6.4 康柏、宏基、戴尔电脑的崛起 153
参考文献 155
第9章 数据表示与数据组织 156
9.1 计算机中的数据表示 156
9.1.1 数据位及其存储 156
9.1.2 数制 158
9.1.3 数的定点及浮点表示 167
9.1.4 数的原码、反码及补码表示 170
9.1.5 数字编码 173
9.1.6 算术运算 181
9.1.7 逻辑运算 183
9.2 数据结构 184
9.2.1 数据结构基础 184
9.2.2 数组 186
9.2.3 表 187
9.2.4 堆栈 190
9.2.5 队列 193
9.2.6 树 194
参考文献 200
第10章 数据存储技术 201
10.1 存储器概述 201
10.1.1 存储器的分类 201
10.1.2 存储器的主要技术指标 203
10.2 早期的数据存储方法 203
10.2.1 延迟线存储器 204
10.2.2 磁鼓存储器 205
10.2.3 磁芯存储器 205
10.3 磁表面存储原理 207
10.3.1 磁表面存储器的记录原理 207
10.3.2 磁表面存储器的记录方式 208
10.4 磁带存储器 211
10.4.1 磁带机的诞生 211
10.4.2 磁带机及其结构原理 212
10.4.3 磁带的记录格式 214
10.5 磁盘存储器 214
10.5.1 软磁盘 214
10.5.2 硬磁盘 218
10.5.3 磁盘阵列 225
10.6 半导体存储器 227
10.6.1 只读存储器 227
10.6.2 随机存储器 231
10.7 光盘存储技术 233
10.7.1 光盘存储器的分类 233
10.7.2 光盘存储器的存取原理 234
10.7.3 光盘存储器 235
10.7.4 光盘存储器的发展 235
10.8 存储技术的新发展 236
10.8.1 网络附加存储NAS 237
10.8.2 存储区域网络SAN 237
10.9 高速缓冲存储器 238
10.9.1 地址映象 238
10.9.2 替换算法 241
10.9.3 Cache的读/写过程 241
10.10 虚拟存储器 242
10.10.1 页式虚拟存储器 243
10.10.2 段式虚拟存储器 244
10.10.3 段页式虚拟存储器 245
参考文献 246
第11章 程序设计语言原理及其发展 247
11.1 早期的程序设计语言 247
11.1.1 机器语言 247
11.1.2 汇编语言 248
11.1.3 高级语言的诞生 249
11.2 程序设计语言概念 252
11.2.1 变量和数据类型 252
11.2.2 数据结构 253
11.2.3 赋值语句 255
11.2.4 控制语句 255
11.2.5 注释 257
11.2.6 过程 257
11.2.7 参数 258
11.2.8 函数 261
11.2.9 输入/输出语句 261
11.3 巴克斯与FORTRAN语言 263
11.3.1 历史背景 263
11.3.2 FORTRAN语言的诞生及其发展 263
11.3.3 FORTRAN语言的主要特征 264
11.3.4 FORTRAN语言的发展 264
11.3.5 巴克斯-诺尔范式 265
11.4 函数式程序设计语言LISP 266
11.4.1 表处理概念的提出 266
11.4.2 LISP的诞生 267
11.4.3 LISP的主要特征 268
11.4.4 Scheme和COMMON LISP 269
11.5 逻辑程序设计语言PROLOG 270
11.5.1 逻辑程序设计语言的理论基础 270
11.5.2 PROLOG的发展 273
11.5.3 PROLOG的主要特点 274
11.6 ALGOL语言的诞生与发展 276
11.6.1 历史背景 276
11.6.2 ALGOL-58的诞生 277
11.6.3 ALGOL-60的诞生 278
11.6.4 ALGOL-60语言的主要特征 279
11.7 COBOL语言 281
11.7.1 历史背景 281
11.7.2 COBOL语言的诞生 281
11.7.3 COBOL的特点 282
11.8 Basic语言 283
11.9 PL/I语言 285
11.9.1 历史背景 285
11.9.2 CP/L设计过程 286
11.9.3 CP/L的主要特征 286
11.10 APL语言 287
11.10.1 APL的诞生过程 287
11.10.2 APL的主要特征 288
11.11 Pascal语言 288
11.11.1 Pascal语言的诞生 289
11.11.2 Pascal的主要特征 289
11.11.3 Modula及其特征 290
11.12 Ada语言 291
11.12.1 历史背景 291
11.12.2 Ada的诞生过程 292
11.12.3 Ada语言的特性 293
11.12.4 Ada语言的发展 293
11.13 Simula语言 294
11.13.1 Simula语言的诞生过程 294
11.13.2 Simula语言的主要特性 296
11.13.3 Simula语言的发展 296
11.14 Smalltalk语言 297
11.14.1 Smalltalk语言的诞生 297
11.14.2 Smalltalk语言的主要特性 298
11.15 C语言 299
11.15.1 C语言的诞生过程 299
11.15.2 C语言的特点 301
11.16 C++ 302
11.16.1 C++的产生及发展 302
11.16.2 C++的主要特性 303
11.17 Java语言 304
11.17.1 Java的开发过程 304
11.17.2 Java的主要特性 306
参考文献 307
第12章 操作系统及其发展 309
12.1 操作系统概述 309
12.1.1 手工处理阶段 310
12.1.2 批处理系统 311
12.1.3 多道程序系统 313
12.1.4 分时系统 314
12.1.5 实时系统 316
12.1.6 微机操作系统 318
12.1.7 多处理器系统 318
12.1.8 网络操作系统 320
12.1.9 分布式操作系统 322
12.2 操作系统的功能 323
12.2.1 处理机管理 323
12.2.2 存储管理 323
12.2.3 设备管理 323
12.2.4 文件管理 324
12.2.5 作业管理 324
12.3 第一个微机操作系统CP/M 324
12.4 磁盘操作系统 325
12.4.1 从CP/M到MS-DOS 325
12.4.2 MS-DOS的局限性 328
12.5 视窗操作系统Windows 328
12.6 UNIX操作系统 332
12.7 LINUX操作系统 333
参考文献 336
第13章 数据库技术及其发展 337
13.1 数据库系统概述 337
13.1.1 数据库系统的基本概念 337
13.1.2 数据管理技术的产生和发展 339
13.2 数据模型与数据库系统 342
13.2.1 数据模型及其组成要素 342
13.2.2 概念模型 343
13.2.3 基于层次模型的数据库系统 344
13.2.4 基于网状模型的数据库系统 346
13.2.5 基于关系模型的数据库系统 347
13.2.6 关系数据库标准语言SQL 349
13.2.7 常用的数据库管理系统 350
13.3 格雷与事务处理技术 351
13.4 数据库技术研究现状 352
13.4.1 分布式数据库 352
13.4.2 联邦式数据库 353
13.4.3 并行数据库 353
13.4.4 主动数据库 353
13.4.5 知识库 354
13.4.6 面向对象数据库 354
13.4.7 多媒体数据库 355
13.4.8 模糊数据库 355
13.4.9 数据仓库与数据挖掘 355
13.5 管理信息系统 356
13.5.1 管理信息系统概述 356
13.5.2 管理信息系统的开发方法 358
13.5.3 管理信息系统的发展 359
13.6 软件危机的产生与软件工程的发展 361
13.6.1 软件危机的产生 361
13.6.2 “软件工程”概念的提出 363
13.6.3 软件工程的发展 364
参考文献 373
第14章 计算机网络及其发展 374
14.1 计算机网络概述 374
14.1.1 计算机网络分类 374
14.1.2 计算机网络的拓扑结构 375
14.1.3 计算机网络体系结构 377
14.2 早期的计算机网络 380
14.3 ARPA网络 382
14.4 罗伯茨与ARPANET 384
14.5 分组交换网的研究 388
14.5.1 克兰罗克首次提出分组交换的概念 389
14.5.2 巴伦提出分布式通信网络理论 389
14.5.3 戴维斯提出分组交换技术 390
14.6 IMP的研制与第一节点远程通信试验 392
14.7 TCP/IP协议 395
14.7.1 TCP/IP协议的发明 395
14.7.2 TCP/IP的基本原理 397
14.8 电子邮件 405
14.9 以太网技术的研究和发展 407
14.10 Internet的诞生及其发展 409
14.10.1 Internet的诞生 409
14.10.2 Internet的快速发展 409
14.10.3 万维网的诞生与发展 411
14.10.4 Internet在中国的发展 415
14.10.5 Internet提供的主要服务 417
14.10.6 Internet发展展望 419
加州大学伯克利分校 420
参考文献 422
第15章 计算机科学理论的进一步发展 423
15.1 计算科学的基本内容 423
15.1.1 计算科学的基本问题 423
15.1.2 计算科学的基本内容 424
15.1.3 计算科学与其他相关学科的关系 425
15.2 计算科学的学科形态与核心概念 426
15.3 计算科学中的典型问题 428
15.3.1 哥尼斯堡七桥问题 428
15.3.2 四色问题 429
15.3.3 36军官问题 430
15.3.4 哈密尔顿回路及旅行推销员问题 431
15.3.5 Hanoi塔问题 432
15.3.6 生产者-消费者问题与哲学家共餐问题 433
15.4 算法及其复杂性问题 434
15.4.1 什么是算法 434
15.4.2 什么是算法复杂性 435
15.5 计算复杂性问题的研究与发展 436
15.5.1 拉宾、斯科特对非确定性有限状态自动机理论的研究 436
15.5.2 库克、卡普对NP完全性问题的研究 438
15.5.3 计算复杂性理论体系的建立 440
15.6 人工智能科学的诞生与发展 442
15.6.1 数理逻辑的早期研究与人工智能科学的诞生 442
15.6.2 “符号主义”学派及其发展 443
15.6.3 联接主义学派 447
15.6.4 行为主义学派 448
15.6.5 人工智能主要研究内容 449
15.6.6 麦卡锡、明斯基对人工智能科学的贡献 450
普林斯顿大学 452
15.7 人工神经网络 455
15.7.1 多层感知神经网络 456
15.7.2 竞争型神经网络 457
15.7.3 Hopfield神经网络 457
15.8 模糊逻辑 458
参考文献 459
第16章 计算机产业的崛起与发展 460
16.1 “蓝色巨人”IBM 460
16.1.1 托马斯·沃森与IBM的早期发展 460
16.1.2 小沃森与“蓝色巨人”的成长 462
16.1.3 重振“蓝色巨人”雄风 464
16.2 惠普之道 467
16.2.1 惠普诞生 467
16.2.2 惠普之道 468
16.3 王安电脑 469
16.4 SUN的崛起 472
斯坦福大学与硅谷 473
参考文献 478
后记 479