1943年是历史上一个有趣的时期。第二次世界大战在全世界范围内造成了巨大的死亡和破坏;Alan Turing在布莱切利公园(Bletchley Park)结束了德国Enigma法规;美国陆军正在努力完善第一批原子弹的设计。
我们都听过Alan Turing和他那著名的Enigma破解机的故事。然而,大多数人完全没有意识到现代计算机的蓝图并非由图灵或布莱切利公园的科学家设计。被称为计算之父不无理由,但他并没有像我们所知的那样发明计算机。
事实证明,计算机其实主要是由另一个绝密的战时研究项目PX项目研发的。
故事始于宾夕法尼亚大学,由摩尔工程学院的一群聪明的科学家组成。该团队正在尝试构建以前从未构建过的东西,这是一种革命性的新型电子机器,能够以令人难以置信的速度计算弹道和火炮射击表。
约翰·普雷斯帕·埃克特(John Presper Eckert)和约翰·威廉·莫奇利(John William Mauchly)正在进行这项绝密研究。这两位杰出的计算机科学家从美国陆军军械局(Army Ordnance Department)获得资金,建造了这台创新的新机器。
电子数字积分器与计算机(ENIAC)被许多人认为是第一台电子通用计算机。代号为PX项目的ENIAC是图灵完备的,旨在为陆军编制计算火炮射击表的程序。
ENIAC重达30多吨,长80英尺,体积十分庞大。它需要大量的人力才能组装,而且它由超过20,000个真空管和5,000,000个手工焊接接头组成。当时,ENIAC在当时是前所未有的最复杂的电子系统。在接通电源的日子里,ENIAC使用了超过170千瓦的电力。事实上,它耗费了太多的资源,甚至有传言说由于ENIAC的消耗,费城的市民使用的灯在打开时会变暗。
“当电脑开机时,费城的灯光暗了下来……”
ENIAC的革命性主要体现在它可以在30秒内计算出一个轨迹,而一个人用手工计算则需要20多个小时。
Eckert和Mauchly的机器取得了巨大成功,军队对它的设计和性能都感到很满意。他们的机密研究项目也没有被忽视。事实上,它吸引了科学界最优秀、最聪明的人的关注,其中就包括著名的数学家和计算机科学家约翰·冯·诺伊曼(John von Neumann)。
约翰·冯·诺伊曼于1943年加入普林斯顿大学。他本身就是一位杰出的科学家; 他是一个神童,曾写过150多篇科学论文,是爱因斯坦的导师和同事。巧合的是,冯·诺依曼当时也在为美国军方从事另一个机密项目,即曼哈顿计划。在听说这台新机器的性能后不久,冯·诺依曼就意识到它在战争中的潜在用途,并于1944年夏天作为访问顾问加入了ENIAC研究团队。
当埃克特和莫奇利第一次构思出这种机器时,他们并不知道,ENIAC最终将被广泛用于改进氢弹设计所需的计算。
事实上,ENIAC对氢弹的发展非常重要,据ENIAC项目科学家Herman Goldstine在他的著作《计算机:从Pascal到von Neumann》中的说法,ENIAC的首次官方测试是对氢弹进行计算,而不是最初设计的火炮表计算。尽管ENIAC非常出色,但它的发明者很快意识到,利用约翰•冯•诺伊曼(John Von Neumann)的一些想法,它的设计可以得到进一步改进,并且在ENIAC甚至运行其第一个项目之前就开始研究它的继任者。
约翰·冯·诺依曼加入ENIAC项目的时间有点晚,无法参与第一台机器的设计,但他确实参与了下一台机器的讨论和设计,这台机器后来被称为电子离散变量自动计算机(EDVAC)。
第一次技术丑闻
关于新型EDVAC机器的想法层出不穷;EDVAC团队将定期开会讨论如何建造新的绝密机器。根据《计算历史编年史》的作者Michael R. Williams所说,新的EDVAC机器的设计是一项团队工作,而不是个人。
作为团队成员,约翰·冯·诺依曼(John von Neumann)参加了许多会议,他记笔记的习惯使他详细记录了这些设计讨论的结果。
约翰·冯·诺依曼(John von Neumann)整理了新EDVAC机器的设计、会议记录和架构,并决定将它们写进一份报告中。受到战争努力的迫切性的激励,并希望撰写一份报告,详细说明他认为未来类似的机器如何设计用于帮助战争。他亲手写了这份报告,并把这些笔记寄回费城,在那里,他的同事赫尔曼·戈德斯廷(Herman Goldstine)把它们打印了出来。
1945年6月30日,冯·诺依曼和戈德斯廷决定发表一份101页的电子离散变量自动计算机(EDVAC)报告初稿。不幸的是,该报告只以草稿形式发表过;冯·诺依曼发现自己太忙了,无法写下完整的计算机的设计,因为他一直专注于就原子问题向政府提供建议,并继续进行曼哈顿项目的工作。
Goldstine将论文副本分发给EDVAC的核心成员和一些经过高级安全许可的政府和教育机构。这篇论文很快就传到了英国的曼彻斯特,艾伦·图灵(Alan Turing)和艾伦·威尔克斯(Alan Wilkes)读了它。
很难描述这篇论文在当时有多轰动。它第一次有效地描述了所有现代计算机的蓝图;创造了第一台存储程序数字计算机的蓝图。
对他的同事来说不幸的是,约翰·冯·诺依曼在他的报告草稿中没有提到或指出他们的大部分重要贡献。第一份草稿包含了他们的许多想法,但没有注明出处。
更糟糕的是,Goldstine在输入冯·诺依曼的研究笔记时,把约翰·冯·诺依曼列为这篇论文的唯一作者,这就是为什么现在一些教科书普遍认为冯·诺依曼是计算机之父的原因。
这让他的同事感到非常恼火,因为论文中的许多想法实际上早于冯•诺伊曼对ENIAC和EDVAC项目的咨询。不仅如此,现代计算机的总体设计被称为冯·诺依曼式架构,这是研究团队不得不吞下的苦果。
然而,缺少对Eckert和Mauchly的团队努力的归属或引用是有原因的。当时,EDVAC项目是高度机密的。冯·诺依曼和戈德斯廷都意识到这种机器对国防的重要性,并发表声明说,如果要制造更多的机器,就必须扩大报告的分发范围。根据《自然和人工系统适应的观点》(PANAS)的作者,戈德斯廷在处理这个问题时没有引用任何ENIAC的机密设计,并试图使用更通用的术语来避免任何专利侵权。他还大量借鉴了麦卡洛克(McCulloch)和皮茨(Pitts)的著作,他们最近发表了一个神经元数学模型的新想法。
“我们认为冯·诺依曼采纳了我们的许多想法,并用麦卡洛克和皮茨的‘神经元符号’重写了它们”——埃克特1976年在洛斯阿拉莫斯会议上说
围绕这一事件的事实仍然没有定论。据PANAS的作者说,当时EDVAC项目的负责人里德沃兰(Reid Warran)教授参加了1945年4月和5月与冯诺伊曼举行的许多全天会议,他对这些会议记忆犹新。他对埃克特·莫切利控告冯·诺依曼的回答简短扼要:
“你不必与约翰尼在一起超过五分钟就能意识到他不是那种会写出别人想法的人”。
—EDVAC主任Reid Warren教授
在第一份草案出炉后不久,EDVAC小组就解散了,部分原因是与牛津大学的知识产权纠纷。事故发生后,EDVAC工程团队被替换。具有讽刺意味的是,尽管对知识产权存在种种争议,但EDVAC机器最终建成时与冯•诺依曼的提议几乎没有相似之处,因为它没有将程序存储在与数据相同的内存中。即便如此,争吵和痛苦仍将持续数十年。
专利计算机
埃克特和莫奇利在1947年申请了专利,但在贝尔实验室或其他机构的各种挑战下,这项专利直到1964年才被授予。他们最初的公司在勉强摆脱破产后被斯佩里·兰德(Sperry Rand)收购。
斯佩里·兰德(Sperry Rand)一直试图迫使其他电脑公司以1.5%的销售费用为ENIAC设计授权,否则将面临专利侵权诉讼。IBM决定以1000万美元和解,但当时另一家大型电脑制造商霍尼韦尔(Honeywell)在1967年决定起诉斯佩里•兰德(Sperry Rand),而不是支付超过2.5亿美元的版税。
这成为了美国历史上最重要和最漫长的法律案件之一,斯佩里·兰德真的拥有电脑的独家有效专利吗?
这场官司历时6年,共有77名证人出庭作证,25,686件证物,以及一份长达20,667页的最终文字记录。法官厄尔拉尔森(Earl R. Larson)的最终判决于1973年10月19日公布,结果对霍尼韦尔有利;1964年ENIAC专利无效。
对Eckert和Mauchly的最后一个打击是,专利失效的一个关键原因是1945年冯诺依曼博士的报告。
不仅如此,计算机科学家约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)在此案中还被戏剧系地争议他是否在1937年发明了现代计算机。
Atanasoff架构?
约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)的机器后来被称为Atanasoff-Berry计算机,简称ABC。这台机器是1937年构思出来的,直到今天人们仍然还在争论ABC是否应该被认为是第一台数字计算机。它的设计目的只是解决线性方程组,但它仍然有纸卡写入器/读卡器,它使用真空管,二进制指令和电子开关。但是,与ENIAC或EDVAC不同,ABC不能用于通用计算,因为它不可编程或图灵完整。
毫无疑问,约翰·冯·诺依曼博士是科学史上最杰出的学者之一。在他55年的生命中,他为数学、物理和计算机科学做出了无数的贡献。
尽管由于当时项目的机密性,他并没有将其归功于他的同事,但许多现代编程语言、软件、硬件和计算机架构都是从Eckert和Mauchly的EDVAC团队以及冯诺依曼1945年那篇“臭名昭著”的论文的原始思想中派生出来的。
冯·诺依曼和戈德斯坦在1945年做出的选择最终开辟了计算机研究领域,这意味着现代计算机无法获得专利。单就这个原因而言,约翰•冯•诺伊曼(John von Neumann)仍有理由被认为是现代计算机之父。
欢迎点击“京东云”了解更多精彩内容。