作者:田达玮, 秦曾昌
编辑:婉珺
世界上第一台电子计算机是啥? 你可能很快就能答出:“埃尼阿克(ENIAC)”。毕竟历史课本上是这样写的。
但是在计算机学界,对于究竟谁是第一台电子计算机其实存在着争议,除了ENIAC以外,Z-3、ABC计算机都是世界上第一台计算机的有力竞选者。
下面我们来一一介绍这三位候选“机”。
(工作人员正在设置ENIAC一个函数表上的开关。图片来源:Wikimedia Commons)Z-3 1936年,德国工程师康拉德·楚泽(Konrad Zuse)制造了一台Z-1计算机,这台计算机采用的是二进制,并且采用巴贝奇分析机中提到的“穿孔带”结构来输入程序,它是世界上第一台电子-机械式-二进制-可编程(Electro-Mechanical Binary Programmable )计算机。
(楚泽)
在制造Z-1计算机时,楚泽并没有得到政府的支持,只是受到几个朋友极少的资助,因此他只能自掏腰包来维持Z-1的研究,因此Z-1的性能较差,严格上也只能算是一个模型。但楚泽并没有放弃。
在1937年,他又在朋友帮助下得到一些废弃的继电器,用这些废弃的继电器,楚泽开始独自组装电磁式计算机Z-2。虽然这些电子元件比较旧,但依旧发挥了巨大的功效。在这些电子元件的帮助下,Z-2的计算性能突飞猛进,并成功引起了德国飞机研究所的关注。德国飞机研究所愿意资助楚泽研究性能更好的Z-3计算机,并希望将Z-3计算机应用于飞机制造上。楚泽不负所托,于1941年完成了Z-3计算机。
Z-3具有优异的数学运算性能。 除了能够为制造飞机提供计算方面的帮助外,楚泽还为他编写了一个国际象棋的程序,这可以说是最早在计算机上的国际象棋游戏了。但由于战争,Z-3在1944年的一次空袭中被炸得粉碎。在1945年,楚泽又制造了一台Z-4计算机,并为其开发了一套编程语言Plankalkuel。
由于战争原因,楚泽和他的计算机研究一直是国家机密,不为外人所知。直到1958年,计算机学界才知道他的成果。不过这个时候,全世界都已经普遍认为1945年建成的ENIAC是第一台电子计算机,再加上楚泽的计算机是为当时的纳粹政府服务,因此也几乎没有人来为楚泽申辩,也就很少有人知道 楚泽其实才是第一位电子计算机的发明者 。
ABC ABC的全称是Atanasoff-Berry Computer,其中Atanasoff和Berry是它的两位发明者:约翰·文森特·阿塔那索夫以及他的学生克里福特·贝瑞。
(阿塔纳索夫和贝瑞)
阿塔那索夫是爱荷华州立大学(Iowa State University)的物理教授,他在教授课程的过程中,常常试着用电子技术来帮助学生解决复杂的计算问题,这为后来的ABC埋下了伏笔。
在阿塔那索夫设计的计算机过程中,他做出了四个十分重要的决定:
1、采用电子管元件;
2、采用二进制代替十进制;
3、采用电容器作为存储器;
4、采用逻辑运算代替数字运算。
当时常用到的电子元件有电子管和继电器,电磁继电技术在当时使用的十分广泛,技术成熟度高,性能更稳定,如前面提到的Z系列计算机,还有1944年建造的ASCC采用的就是继电器元件。而电子管在当时的应用很少,可靠性也比较低,因此选择电子管这个元件是一项非常冒险的决定。而其他三项决定在当时看来也是极具创新性的。这四项重要的决定明确了阿塔纳索夫的计算机的建造思路。
1939年,阿塔纳索夫和他的学生贝里完成了ABC样机的建造。到1940年底,ABC成功运行,并且可以解一系列复杂的方程式。于是他们向学校提出经费申请,希望能够建造一台功能完善的计算机。但由于1939年美国发生了严重的经济危机资源极度匮乏,学校认为把重要的二极管元件浪费在这种毫无意义的发明上是浪费资源,因此没有同意阿塔纳索夫的申请。不仅如此,学校还决定将ABC样机拆除,把零件用到“更有价值的地方”去了。后来我们看到的ABC计算机,是在1997年建造的复制品。
(1997年阿塔纳索夫-贝瑞计算机的复制品,位于爱荷华州立大学达勒姆中心。图片来源:creativecommons.org/licenses/by-sa/3.0/)从构思到建造ABC,阿塔纳索夫花费了近5年时间,而剽窃这一成果,只需要5天。 1941年6月,约翰·莫克利 (John Mauchly)(ENIAC的主要建造者之一)在阿塔纳索夫家里花了5天时间“钻研”ABC的研究思路及成果,这为后来的ENIAC研制提供了清晰的方向。后来,莫克利(John Mauchly)和埃克特(Presper Eckert)为ENIAC申请了专利, 并且完全没有提及阿塔纳索夫为此所做的贡献,这让阿塔纳索夫十分气愤。
尽管莫克利矢口否认去过阿塔纳索夫家里,但美国联邦法院在经过详细的调查后,于1973年10月19日撤销了莫克利和埃克特对于ENIAC的专利权,认定 阿塔纳索夫是电子计算机的发明人 。
如此看来,无论是Z-3计算机还是ABC计算机,实际上都比ENIAC更早建成。
(ENIAC)
目前对于ENIAC,已不再称其为第一台电子计算机,而是称为第一台通用型电子计算机(尽管Z-3更早诞生)。
ENIAC 二战时,美国对于各种弹道表的计算和制作效率低下,迫切需要一个能够快速运算且保证运算结果准确的计算机。因此1943年,研制ENIAC的绝密计划——莫克利-埃克特计划应运而生。
最初军方想要的计算机是专门用来进行弹道计算的机器,但研发者的想法并非如此,他们希望能够建造一种通用型的计算机,可以根据不同的程序来处理各种各样的问题。所以在要求军方的资助时,研发者们巧妙地将ENIAC描述成为“ 一台能够解决多种弹道计算问题的多功能计算机 ”。
由于需要解决多种问题,建造ENIAC所需的物资和时间也远超过了最初的计划:在最初的计划中,ENIAC将消耗大约5000个电子管,经费预算150000美元;而建造完成时,ENIAC用掉了18000多个电子管,消耗经费400000美元,超过了原计划的3倍以上。
1943年6月开始研制的ENIAC,由于研制过程花费了太多的时间,并没有来得及在二战中展示自己的身手。战争于1945年9月结束,而ENIAC在11月才缓缓地投入试运行。由于在战场上ENIAC没有任何立功机会,军方决定将这个耗费巨资搭建的计算机拆除,将零件用在“更有用的地方”。就在军方计划对ENIAC撤除自助时,冯诺依曼给ENIAC布置了一项新的任务: 为氢弹的研制提供计算帮助,这使得ENIAC开始展现自己的本领 。
尽管现在认为ENIAC并非是第一台电子计算机, 但ENIAC在诸多领域提供了相当大的帮助是无法忽视的事实。到退役为止,ENIAC共运算8万多小时,为氢弹的研制、天气预测、风洞的开发都做出了卓越的贡献。相比之下,第一台电子计算机ABC却在建成后即被拆除,几乎没有用武之地,因此人们对ENIAC的高度评价也不是没有道理的。
冯·诺依曼与 ENIAC 来自于匈牙利的天才冯·诺依曼不仅是博弈论创始人,也被誉为“计算机之父”。虽然图灵构建了“图灵机”的伟大理论设想,但是他没有设计制作,甚至也没有在死前看到一台实际可以使用的“通用计算机”的问世。
(阿兰·图灵。图片来源:turingarchive.org)
冯·诺依曼在ENIAC的建造过程中曾提出中肯的设计建议 。在最初设计时ENIAC与现代计算机其实是有差异的,ENIAC的程序与计算部件是分离的,在进行计算时,需要人工进行程序替换,之后再启动计算功能,这对于计算机的运行效率有着非常大的阻碍。
针对这一点,冯·诺依曼曾写过一项著名的“ 101页报告 ”,提出要设计出能够将程序储存在内部的计算机,冯诺依曼称之为EDVAC(离散变量自动计算机)。EDVAC不用进行人工切换,由计算机自动依次执行程序,后来这种计算机也被称为“冯·诺依曼机”。不过由于ENIAC计算机研发小组发生了分裂,EDVAC一直到1951年才被研制出来。尽管如此,其结构对现代计算机也还是产生了巨大影响。 我们今天所使用的计算机也大多属于冯诺依曼机的改进型 。
(冯·诺依曼)
其实,第一台计算机这个头衔究竟属于谁也许并不那么重要,Z-3,ABC,和ENIAC都是计算机发展史上最闪亮的星。真正重要的是科学家们为此作出的努力,正是这些不断开拓的科学家们的努力研究,开辟出一片改变人类生活的信息产业的新天地,我们才能够享受今天的技术便利,因此,三台计算机的设计者都应当得到我们的尊敬。
作者名片