(计算机的英文原词“computer”是指从事数据计算的人。而他们往往都需要借助某些机械计算设备或模拟计算机。)
沿着时间轴我们可以大概将计算机的发展历史分为四个阶段
目录
1.机械计算设备时代
1.1机械形式计算向电子式计算转变的一些关键点
1.1.1二进制的提出
11.1.2程序概念的出现
1.1.3穿孔纸带及穿孔卡片的发明
*1.1.4图灵机与“可计算性”
2.电子计算机时代
2.1图灵完全机电一体计算机“Z3”
2.2世界上第一台真正意义上的电子(数字)计算机
3.通用计算机时代
3.1第一台通用自动计算机,马克1号(Mark I)
3.2真正意义上的通用型电子计算机“ENIAC”
4.存储程序计算机时代
4.1存储程序工作原理的提出和IAS计算机
4.2第一台存储程序通用计算机的“EDSAC”诞生
这些早期计算设备的祖先包括有算盘,以及可以追溯到公元前87年的被古希腊人用于计算行星移动的安提基特拉机械。
后来我们人类的计算设备在不断的进步,比如最早的人类已知的一个计算器,就是开普勒的好友为他设计的一个木结构,里面有传动齿轮来帮助他进行天气的计算。比如著名的微积分领域的莱布尼茨,由他设计的机械计算器内部带有连杆传动的机械计算设备。到19世纪20世纪交界的时候,开始出现了按键式的机械计算器,巧妙地使用按键键程的差异,通过精密的轴承了转角传动,获得等比例的运算,他的发明人是菲尔特。这样一种机械按键式的计算器,一直沿用到20世纪的中叶(一个跟电子计算机交替的时代)。
(在这期间,机械按键式的计算器不断向电子计算机迈进)
随着中世纪末期欧洲数学与工程学的再次繁荣,1623年德国博学家Wilhelm Schickard(德语:Wilhelm Schickard)率先研制出了欧洲第一部计算设备,这是一个能进行六位以内数加减法,并能通过铃声输出答案的“计算钟”。使用转动齿轮来进行操作。
1642年法国数学家布莱士·帕斯卡在英国数学家William Oughtred所制作的“计算尺”的基础上,将其加以改进,使能进行八位计算。还卖出了许多制品,成为当时一种时髦的商品。
1679年3月15日戈特弗里德·威廉·莱布尼茨发明了一种计算法,用两位数代替原来的十位数,即1 和 0。
查尔斯·巴贝奇于1820年构想和设计了第一部完全可程序化计算机。但由于技术条件、经费限制,以及无法忍耐对设计不停的修补,这部计算机在他有生之年始终未能问世。约到19世纪晚期,许多后来被证明对计算机科学有着重大意义的技术相继出现,包括打孔卡片以及真空管。德裔美籍统计学家赫尔曼·何乐礼设计了一部制表用的机器,其中便应用打孔卡片来进行大规模自动数据处理。
1801年,法国人约瑟夫·玛丽·雅卡尔对织布机的设计进行改进,使用一系列打孔的纸卡片来作为编织复杂图案的程序。尽管这种被称作“雅卡尔织布机”的机器并不被认为是一部真正的计算机,但是其可编程性质使之被视为现代计算机发展过程中重要的一步。
公元1880年,美利坚合众国举行了一次全国性人口普查,为当时5000余万的美国人口登记造册。当时美国经济正处于迅速发展的阶段,人口流动十分频繁;再加上普查的项目繁多,统计手段落后,从当年元月开始的这次普查,花了7年半的时间才把数据处理完毕。采矿工程师赫曼·霍列瑞斯(H.Hollerith)想到了纺织工程师法国人约瑟夫·玛丽·雅卡尔80年前发明的穿孔纸带,1888年,霍列瑞斯博士完成了自动制表机设计并申报了专利。他发明的这种机电式计数装置,比传统纯机械装置更加灵敏,因而被1890年后历次美国人口普查选用,获得了巨大的成功。例如,1900年进行的人口普查全部采用霍列瑞斯制表机,平均每台机器可代替500人工作,全国的数据统计仅用了1年多时间。
虽然霍列瑞斯发明的并不是通用计算机,除了能统计数据表格外,它几乎没有别的什么用途,然而,制表机穿孔卡第一次把数据转变成二进制信息。在以后的计算机系统里,用穿孔卡片输入数据的方法一直沿用到20世纪70年代,数据处理也发展成为电脑的主要功能之一。
在20世纪前半叶,为了迎合科学计算的需要,许多专门用途的、复杂度不断增长的模拟计算机被研制出来。这些计算机都是用它们所针对的特定问题的机械或电子模型作为计算基础。1930-1940年代,计算机的性能逐渐强大并且通用性得到提升,现代计算机的关键特色被不断地加入进来。
1937年,年仅21岁的麻省理工学院研究生克劳德·香农发表了他的重要论文《对继电器和开关电路中的符号分析》,文中首次提及数字电子技术的应用。他向人们展示了如何使用开关来实现逻辑和数学运算。此后,他通过研究万尼瓦尔·布什的微分模拟器(英语:differential analyser)进一步巩固了他的想法。这是一个标志着二进制电子电路设计和逻辑门应用开始的重要时刻,而这些关键思想诞生的先驱,应当包括:阿尔蒙·斯特罗格,他为一个含有逻辑门电路的设备申请了专利;尼古拉·特斯拉,他早在1898年就曾申请含有逻辑门的电路设备;李·德富雷斯特,于1907年他用真空管代替了继电器。
在这个由机械按键式的计算器向电子计算机过渡的时代里去定义所谓的“第一部电子计算机”可谓相当困难。在这里我们要致敬一位开启新时代前夜的前辈——艾伦·麦席森·图灵(Alan Mathison Turing)。百度:图灵的事迹和成就
在这个时间点上,1936年, Alan Turing在伦敦权威的数学杂志上发表了一篇划时代的重要论文《可计算数字及其在判断性问题中的应用》(On Computable Numbers, with an Application to theEntscheidungsproblem)。文章的中文翻译
在这篇开创性的论文中,图灵给“可计算性”下了一个严格的数学定义:可计算性( calculability)是指一个实际问题是否可以使用计算机来解决,定义为“可以在有限步骤内被解决的问题”(数理逻辑)很多非数值问题(比如文字识别,图象处理等)都可以通过转化成为数值问题来交给计算机处理,即从理论上证明了制造通用计算机的可能性。并提出著名的“图灵机(Turing Machine)”的设想一台完全属于想象中的"计算机”,它完全忽略硬件状态,考虑的是硬件结构。
1941年5月12日,德国工程师康拉德·楚泽完成了他的图灵完全机电一体计算机“Z3”,这是第一部具有自动二进制数学计算特色以及可行的程序化功能的计算机,但还不是“电子”计算机。
世界上第一台真正意义上的电子数字计算机实际上是1937年开始设计,于1939年由美国爱荷华州立大学物理系副教授约翰·文森特·阿塔那索夫(JohnVincent Atanasoff)和其合作者克利福特·贝瑞(Clifford Berry,当时还是物理系的研究生)研制成功的一台完整的样机,取名为ABC(Atanasoff-Berry Computer)代表的是包含他们两人名字的计算机。
不过这台机器还只是个样机,并没有完全实现阿塔那索夫的构想。1942年,太平洋战争爆发,阿塔那索夫应征入伍,ABC的研制工作也被迫中断。这台计算机是电子与电器的结合,电路系统中装有300个电子真空管执行数字计算与逻辑运算,机器使用电容器来进行数值存储,数据输入采用打孔读卡方法,还采用了二进位制。
因此,ABC的设计中已经包含了现代计算机中四个最重要的基本概念,从这个角度来说它是一台真正现代意义上的电子计算,同时也是“图灵机”第一个硬件实现。所以,阿塔那索夫应该是公认的“电子数字计算机之父”。
真正意义上的通用型电子计算机出现于1946年2月14日,名为ENIAC(Electronic Numerical Integrator and Computer)电子数字积分计算机,它是世界上第一台通用计算机。
它是图灵完全的电子计算机,能够重新编程,解决各种计算问题。ENIAC曾一直被人们误认为是世界上第一台真正意义上的电子计算机,国内的教科书也一直这样表述。ENIAC于1943年开始制造,完成于1946年2月,但是它的设计思想基本来源于ABC,只是采用了更多的电子管,运算能力更强大。
它的负责人是莫克利(John W. Mauchly)和艾克特(J. Presper Eckert)由美国宾夕法尼亚大学研制,其特点有:由电子真空管组成;用于解决复杂弹道计算问题;每秒可进行5000次加法运算;可进行平方、立方、sin、cos等运算;用十进制表示信息并运算;采用手动编程,通过设置开关和插拔电缆来实现,即ENIAC上的“程序”是由其接线和交换机的状态定义的,这与后来出现的存储程序电子机器大不相同。一旦编写了程序,就必须通过手动复位插头和开关将其机械地设置到机器中。
至此,计算机的发展史想要真正走向现代计算机就缺不了冯·诺依曼体系结构的理论的创造者,美籍匈牙利数学家冯·诺依曼(John von Neumann)。百度百科:冯·诺依曼
1944年,冯·诺依曼参加原子弹的研制工作,涉及到极为困难的计算。同年夏的一天,冯·诺依曼巧遇美国弹道实验室的军方负责人戈尔斯坦,他正参与ENIAC的研制工作。冯·诺依曼被戈尔斯坦介绍加入ENIAC研制组, 1945年,他们在共同讨论的基础上,冯·诺依曼以“关于EDVAC的报告草案”为题,起草了长达101页的总结报告: ,发表了全新的“存储程序通用电子计算机方案”。一向专搞理论研究的普林斯顿高等研究院批准让冯·诺依曼建造计算机,其依据就是这份报告。
1946年,普林斯顿高等研究院( the Institute for Advance Studyat Princeton , IAS )开始设计“存储程序”计算机,被称为IAS计算机(1951年才完成,并不是第一台存储程序计算机, 1949年由英国剑桥大学完成的EDSAC是第一台)。
在那个报告中提出的计算机结构被称为冯·诺依曼结构。冯·诺依曼结构最重要的思想是“存储程序(Stored-program)"工作方式:任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。
冯·诺依曼结构计算机也称为冯·诺依曼机器( Von NeumannMachine )。冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念。几乎现代所有的通用计算机大都采用冯·诺依曼结构,因此,IAS计算机就是现代计算机的原型机。
早期的计算机有固定的程序,改变它的功能需要重新布线和重新构造机器。而随着存储程序计算机的提议,这种状况改变了。
电子延迟存储自动计算器(英文:Electronic Delay Storage Auto-matic Calculator、EDSAC)是英国的早期计算机。1946年,英国剑桥大学数学实验室的莫里斯·威尔克斯教授和他的团队受冯·诺伊曼的First Draft of a Report on the EDVAC的启发,以EDVAC为蓝本,设计和建造EDSAC,1949年5月6日正式运行,是世界上第一台实际运行的存储程序式电子计算机。项目的投资方是英国的J. Lyons & Co. Ltd.,该公司后来推出基于EDSAC设计的第一代商业应用电子计算机LEO I。
EDSAC早期应用集中在解决气象学、遗传学和X光结晶学等方面的问题。1951年,Miller和Wheeler利用EDSAC发现了一个当时最大的79位素数。1951年,A.S. Douglas开发出OXO(井字游戏),输出到阴极射线管,是最早的电子计算机视频游戏。1960年代,EDSAC用于收集椭圆曲线解的数值现象,这引出了贝赫和斯维讷通-戴尔猜想。
EDSAC的后继机型EDSAC2于1958年投入使用。EDSAC2引入了微程序(microprogramme)和位片(en:bit-slice)的概念。
后来,计算机由晶体管计算机时代进入了集成电路计算机时代,同时计算机语言发展也进入了“面向人类”的语言阶段,被人们称之为“高级语言”。计算机发展进入了高速模式。直到今天,电脑已经永久性地紧密结合在我们的个人生活结构和社会结构之中。它已经成为对社会具有重要意义的和在经济上必不可少的事物。计算机技术已成为我们生活中的一个公认的组成部分。
当然,一门科学的发展之路也是十分艰辛的,离不开科学家们废寝忘食,呕心沥血的工作,没有他们的激情奋斗,也就没有我们如今绚丽多彩的生活。