计算机简史
阅读须知
- 参考资料:计算机简史(第三版)
- 作者信息: 【英】马丁·坎贝尔–凯利 |【美】 威廉·阿斯普雷
用计算机来命名我们书桌上的这种无处不在的机器,其实是一种误导。回溯维多利亚时代乃至第二次世界大战期间,“computer”一词描述的是一种职业,它在《牛津英语词典》中的定义为:“执行计算的人;计算员、计算者;尤指受雇于天文台、勘测等领域进行计算的人。”
Part.1
这一切源自于数学用表的编制:对数表、三角函数表、海员的航海用表、天文学家的星表、精算师的人寿保险表、建筑师的土木工程表。这些用表全由计算员编制而成。
查尔斯·巴贝奇的制表故事:为了推动制表的工作,而发明一种制表机器“差分机”,又进一步提出制造“分析机”能执行人类指定的任何计算.
- 清算所与电报
清算所需要进行大规模数据的计算。
电报最初是解决早期铁路系统通信问题的一种方案.后来因为其商用价值而推广。
- 人口普查在美国成为极大规模的数据处理问题
赫尔曼·何乐礼在后来开发了一种用于处理人口普查数据的机械系统——1896年创立制表机公司,奠定了IBM的基础——打孔计数机器,用于人口普查.
-
美国对办公设备的钟爱
-
打字机——记录信息
开创了办公设备行业的三大特征:完善的产品与低成本制造、负责产品销售的销售机构以及引导员工使用技术的培训机构。
- 归档系统——存储信息
- 第一代加法机——处理信息
- 查尔斯·R. 弗林特合并三家公司:制表机公司、计算尺公司(店主磅秤的制造商)与国际时间记录公司(生产自动记录设备用于记录员工进出工作场所的时间),并从三家公司的名称中各取出一个字母贡献给新的控股公司,组成“计算-制表-记录公司”,简称C-T-R,在1942年C-T-R 更名为 IBM
巴贝奇分析机:将算术运算与数字存储两种功能分开
潮汐预报器与模拟计算设备——微分分析仪
天气预报工厂
科学计算服务公司
- 哈佛马克一号——来自于求解非线性微分方程的需要——巴贝奇
第一种完成制造的全自动计算机——计算机时代的象征
- 数理逻辑
判定问题:是否存在能判定所有数学问题的确定方法或过程
- 艾伦·图灵——图灵机
Part.2
第一台成功的电子计算机从宾夕法尼亚大学莫尔电气工程学院中的一个项目中发展而来.
莫尔学院——战时弹道射表的计算
- 阿塔纳索夫-贝里计算机——电子计算机
二进制运算、电子开关元件等概念
- 莫奇利与埃克特的合作——莫奇利起草《高速电子管计算装置的使用》
- 戈德斯坦推动莫奇利的想法进一步实现与弹道研究实验室签订合同.
- "PX项目" 与1943年4月9日启动,制造电子数字积分计算机(ENIAC)的工作正式展开
- 1.8万个电子管、7万个电阻、1万个电容、6000个开关以及1500个继电器
- 埃克特主导项目
- 编程问题:
- 哈佛马克一号等计算机采用打孔卡或纸带进行编程。
- 而ENIAC 必须针对特定问题专门布线,需要花费数小时甚至数天时间才能更换程序
- 1944年冯·诺伊曼(与戈德斯坦的谈话中得知)介入ENIAC项目
- “PY项目”:离散变量自动电子计算机(EDVAC)
- 计算机的存储设备将用于保存程序的指令以及它所操作的数据
- 冯诺依曼提提出其模型:中央控制、中央运算、存储器、输入、输出元件.
- 采用二进制存储
- 术语计算机存储器(computer memory)发端于此
- 1945年6月30日,报告名为《EDVAC报告书的第一份草案》发表. 冯诺依曼单独署名
- 工程师与逻辑学家的矛盾——1946年团队分崩离析
-
EDSAC被威尔克斯制造出来,世界上第一台实用的存储程序计算机由此诞生
-
步入商界——因计算机制造商与商业用户之故,计算机不再是数学工具,而转变为电子数据处理设备
- 进入计算机行业的公司可以分为三类:
- 电子与控制设备制造商、办公设备公司以及创业型企业
- IBM、雷明顿-兰德、伯勒斯、NCR、安德伍德、门罗、皇家等商用机器制造商
- 创业型企业
- 1946年3月,埃克特与莫奇利创办电子控制公司:通用自动计算机 UNIVAC
- 最大胆的创举是采用磁带存储
- 研发BINAC 二进制自动计算器
- 四处寻找投资但是,美国赌金计算器公司总裁的遇难,让他们失去了投资。
- 被雷明顿-兰德收购
- UNIVAC在大选之夜大放异彩
- IBM 机电技术到电子技术(对现有产品进行进化改造)
- 全尺寸计算机:磁鼓计算器和磁带处理机
- 开发了一套称为报告程序生成器(RPG)的编程系统
- 公司内部的产品线互不兼容,需要制造一系列“兼容”计算机
- 1963年底开发工作全面展开 System/360
Part.3
- 旋风计划:实时系统
- 机票预定系统
- IBM :条形码
-
程序设计
- 需要更好的符号系统
- 为减少程序错误的最佳途径莫过于开发“子程序库”,子例程(重用现有代码的思想)
从本质上说,计算机程序设计包括两种转换过程:首先,将实际问题(更确切地说是问题的解)转换为一系列可供计算机执行的步骤,即所谓的算法;其次,将这种算法转换为特定计算机使用的特定指令。
-
自动编程系统
- 格雷斯·默里·霍珀:A-0编译器->B-0编译器(FLOW-MATIC)
- 成功解决方案:IBM:FORTRAN|1957年4月
- 之前耗时数天或数周编写和运行的程序,现在只需要几小时或一两天就能完成
- 操作系统:软件危机
- 结构化编程
- 麻省理工学院:分时系统
- 达特茅斯 BASIC 为研制分时系统而开发的简单编程语言
- MAC计划,麻省理工学院决定利用高级研究计划局提供的资金研制一种更大的分时计算机系统:Multics 失败
- 贝尔实验室 Unix操作系统:Multics的副产品
- 出自肯·汤普森与丹尼斯·M.里奇
- 里奇专门为此开发了C语言,并利用后者重写了整个系统。C语言是为了开发编程系统而设计的“系统实现语言”
- Linux操作系统继承了Unix的衣钵,由芬兰计算机科学本科生林纳斯·托瓦兹在1992年开发
- 微电子革命
- 半导体与硅谷
- 晶体管的研究:仙童半导体
- 仙童之子:英特尔\ADM
Part.4
- 无线电行业兴起:起初作为点对点通信技术进行推广的无线电,后来被改造成服务于大众消费者的广播娱乐媒体,与这项技术的初衷已大相径庭。其次,无线电业余爱好者在这种转变中扮演了至关重要的角色。
- 个人计算机也遵循类似的发展道路。微处理器是一种使能技术,耗时数年才能出现在大众消费者所期待的产品中。计算机业余爱好者在这一转变中也有重要的角色。
- 微软/苹果/软件
- 图形化界面GUI(WIMP接口:窗口 Windows、图标 Icons、 鼠标 Mouse、下拉菜单 Pull-down)
- 施乐公司
- 麦金塔计算机/windows
- 因特网/万维网/电子邮件/移动便携设备/Web2.0