1981年,美国宾夕法尼亚大学为自己的骄子——一台叫做“埃尼阿克”(ENIAC)的电子计算机举办了一个别开生面的生日庆祝会:让埃尼阿克(ENIAC)与最新式的电子计算机比赛。埃尼阿克是一个占地170平方米、重30吨的庞然大物,当年制造它花费了近50万美元巨资。当它在这个庆祝会上接受生日祝贺的时候,虽然不过35岁,但在它的那个小巧玲珑、价值不过500美元的竞赛对手面前,它已经显得老态龙钟。
胜负实际上无需比赛早就已判明:埃尼阿克(ENIAC)不是新一代计算机的对手。埃尼阿克(ENIAC)并不为自己的逊色而沮丧,它实际上早在1955年就已经光荣引退,住进了“计算机养老院”——波士顿博物馆。无论电子计算机发展到第几代,无论新秀们多么出类拔萃,埃尼阿克(ENIAC)永远都是人类的骄傲,因为它被公认是世界上第一台通用数字电子计算机,它成就了计算机以后的发展。
ENIAC在硝烟中问世
1943年,世界反法西斯战争出现了历史性的转折,美、英等盟国加紧准备开辟反法西斯的“第二战场”。就在这一年,美国宾夕法尼亚大学莫尔电机系同阿伯丁试炮场联合执行一项任务,为各种型号和口径的火炮计算弹道表。任务紧迫,平均每天要提供6张表,而计算量相当繁重,一张完整的弹道表包括2000~4000条弹道,计算一条弹道平均需要做750次乘法和更多的加、减法。阿伯丁试炮场起用了一台大型的模拟计算机,这种模拟计算机是美国工程师在20世纪30年代发明的,它用机械齿轮旋转的角度来表示数值的大小,可用来解常微分方程,称为微分分析仪。模拟机在当时已经算是相当先进的计算机了,甚至一些人产生了用模拟机就可以解决一般科学计算问题的希望。可是尽管试炮场在启动模拟机的同时还雇佣了100名姑娘操作台式机械计算机进行辅助性计算,完成一张弹道表也往往需要1个月以上的时间,计算结果的精确性也不能令人满意。
这时,一份由莫尔电机系36岁的物理学家莫希莱(J.W.Mauchly)和24岁的工程师埃克特(J.P.Eckert)合写的报告,由陆军军械部派出的联络官格尔斯坦中尉提到了军械部召开的一次专家会议上。这是一份关于制造电子计算机的可行性报告,听完格尔斯坦的简短说明,军械部的科学顾问、著名数学家维伯伦仰靠在座椅上沉思了片刻,突然站起身来对试炮场弹道实验室负责人西蒙上校大声说道:“西蒙,给格尔斯坦这笔经费!”随即离开会议室。
研制第一台电子计算机的序幕,就在这一戏剧性的场面中揭开了。当时,离电子管的最早的几项发明问世还不到40年,而且它们主要是用于通讯工程,数字电路是在20世纪30年代末才发展起来的。同样具有戏剧性的是,当发明家德福雷斯特于1906年发明三极管而引起一场公诉纠纷的时候,法庭看见这位穷困潦倒的青年人手中拿着的那个小玩意,竟怀疑他是一个骗子,怎么也不会想到那个“没有价值的玻璃管”竟会成为20世纪电子文明的起源。这件事情说明要判断一项新发明的价值是多么的不容易,何况研制第一台电子计算机是一项耗资几十万美元的浩大工程呢!当时就有专家认为电子设备在能够有把握地应用于计算目的之前,还需要大大改进其可靠性。如果不是有维伯伦这样的科学家作出富有远见的建议,美国军方是很难做出批准研制的风险决策的。
负责研制第一台电子计算机的莫尔电机系小组,是一个人才结构合理、整体效能很高的科研集体。格尔斯坦中尉曾经在大学任过数学助理教授,有很高的数学素养,尤其具有出色的组织才能;莫希莱是物理学家,他提供了电子计算机的总体设计;埃克特担任总工程师,善于解决一系列困难、复杂的技术问题。在他们富有成效的合作和努力下,研制工作进展顺利,经过两年半的奋战,方案修订了12次,经费开支超过了48万美元。1945年底,这台名叫“电子数值积分和计算机”、英文(ElectronicNumericalIntegratorAndComputer)缩写为ENIAC的电子计算机,终于在赞扬声和反对声中伴着硝烟诞生了。机器重130吨,占地170平方米,耗电量150千瓦。1946年2月15日举行了正式的揭幕典礼。20世纪60年代,莫希莱和埃克特在回顾这段往事时指出,ENIAC的部件没有一个不是在10年或15年前就可以制造的,而电子计算机却没有早在10年或15年前发明出来,一部分原因是那时还没有这种迫切需要。他们肯定地说,如果他们不发明计算机也还会有其他人在大体上相同的时期把它发明出来。
历史事实也正是如此。1939年,年轻的德国工程师朱斯开始研制一种用继电器制造的Z3,1941年投入运转,这是世界上第一台通用程序控制数字计算机。与此同时,美国国际商业机器公司(IBM公司)通过哈佛大学研究生艾肯研制出了使用继电器的通用程序控制数字计算机MARKⅠ和MARKⅡ。这些机电式的数字计算机,把巴贝奇的梦想变成了现实,为现代电子计算机的诞生开辟了道路。
还有一个重要的历史事实是,美国依阿华州立学院的保加利亚裔物理教授阿塔纳索夫,在1937年提出了试制可以求解含30个未知数的线性方程组的电子计算机的方案,可是他只得到了600美元的赞助,只够买一个部件。然而,他的设计给莫希莱留下了深刻的印象。
现代计算机的诞生是从三位数学家开始的:图灵、维纳和冯·诺依曼。正是这三驾数学马车把电脑带上了路,开始了计算机史诗般的历程。
冯·诺依曼其人其事
莫尔小组开始工作不久,1944年的一个偶然机会,冯·诺依曼(VonNeumann)听说了这个消息。他立刻专程赶到莫尔学院参观制作中的ENIAC,并参加了一系列改进设计的专家讨论会。他指出ENIAC容量小,外插型程序设计是重要的缺陷,因为要进行一次计算,用外插线路实现程序的工作有时就需要一两天,当时莫尔小组由于缺乏经验和计算机结构理论的指导无法克服这种缺陷。此时冯·诺依曼已经意识到这个工作的意义,他果断决定投身其中。当时冯·诺依曼正在曼哈顿参加第一颗原子弹的制造工作,他在计算原子核裂变反应过程时,遇到了极大的困难。100名计算员不停地用台式计算机进行计算,仍无法按时完成用于核反应过程所需要的数亿次计算。他的洞察力使他立刻断定,参加电子计算机的制造工作是解决这个难题的最有希望的途径。
冯·诺依曼懂七国文字,在美国学界已有盛名,他的参加使莫尔小组引起社会的极大关注,创造了十分良好的社会环境。他与年轻人的关系不像部下与长官,而是平等讨论,彼此尊重,年轻人的热情和创造精神没有受到约束,他的坚实的科学基础和极强的组合能力与年轻人结合在一起,极大地提高了莫尔小组的整体水平,使莫尔小组变成了人才能力放大器。这种当时少有、现在仍为人们敬仰的科研组织典范,必定最先敲响存储程序电子计算机时代的钟声。
1944年8月至1945年6月,冯·诺依曼与莫尔学院合作,组织莫尔小组向计算机领域的高峰发起了一次总攻。小组在ENIAC的同时展开了更先进的存储程序通用自动电子计算机EDVAC(ElectronicDiscreteVariableAutomaticComputer的简称,意为离散变量自动电子计算机)的设计和论证。冯·诺依曼让莫尔小组的莫希莱、埃克特、戈尔斯坦等青年专家和工程人员进行讨论,并把青年人的创造性思维火花进行综合,加上自己的分析,分门别类提出问题请大家继续研究,这样的讨论反复进行并定期发布讨论报告,短短的10个月内小组就把概念变成了方案。冯·诺依曼亲自动手写下了《关于EDVAC的报告草案》,这是亘古未有的奇迹。
这个报告便是计算机史上著名的“101页”报告,“报告”既有设计方案,又有实现的具体说明。方案明确规定了新机器由五个组成部分,即计数器CA、逻辑控制器CC、存储器M、输入I、输出O,并描述了五个部分的功能和相互关系。EDVAC方案针对ENIAC设计上的缺陷提出了两项对计算机发展产生重大影响的改进方法: