通用外部编程计算机在1930年代末开始出现,并在1……

摘要:ENIAC通常被描述为第一台通用计算机,但我认为这是不正确的。尚不清楚ENIAC是否具备图灵完备性。在其原始格式中,ENIAC通过物理重新配置进行编程,这是一项复杂且耗时的任务。ENIAC无法执行一些可定义的计算任务。

通用外部编程计算机在1930年代末开始出现,并在1950年代灭绝。它们是计算机进化中的一个短暂阶段——既不是完全的计算机,也超过了简单的计算机。

ENIAC通常被描述为第一台通用计算机,但我认为这是不正确的。尚不清楚ENIAC是否具备图灵完备性。在其原始格式中,ENIAC通过物理重新配置进行编程,这是一项复杂且耗时的任务。ENIAC无法执行一些可定义的计算任务。

在通过插拔电缆编程ENIAC时,其用户实际上是在每次操作时重新连接机器,将其转变为解决特定问题的特殊用途计算机。从某种意义上说,这与编程现代计算机时的情况类似;只是ENIAC和源于其概念的微分分析仪的变化是由人手动完成,而不是由计算机自动完成。

重要的一点是,无论设置过程多么耗时,这使得ENIAC能够解决广泛的数学问题,包括许多其设计者从未预见的问题。它并不完全是“通用计算机”——例如,它无法像阿塔纳索夫的机器那样解决大型线性方程组。但它能够重新配置以执行几乎无限的步骤序列,包括迭代操作,这使得ENIAC与迄今为止描述的其他电子计算器区分开来,并将其置于“计算器”和“计算机”两类之间。

ENIAC作为第一台计算机的地位主要归因于两个因素。美国的这一主张是在1946年提出的,当时存储程序计算的革命性意义尚未广泛理解,且关于其他早期设备的知识也未被广泛知晓。

在战后初期,只有美国愿意承认其开发了一台通用计算机。在战争结束后的30年里,英国没有提及布莱切利园在赢得北大西洋战役和显著缩短战争期间所发挥的关键作用。他们没有提到阿兰·图灵的重要贡献,因此,方便地没有提及他们如何通过无情地迫害他的同性恋而导致他自杀。特别是,他们没有提到十台科洛萨斯Mk II机器及其制造和操作人员。这些机器被开发用于破译名为“鱼”的德国密码,这种密码是由洛伦兹密码机产生的。与ENIAC类似,科洛萨斯Mk II机器也是通用外部可编程机器,支持条件分支。第一台科洛萨斯Mk II于1944年6月1日投入使用,恰逢诺曼底登陆。而ENIAC则在1945年秋季战后才投入运行。

支持ENIAC的游说团体还声称,只有ENIAC有直接的后代。他们实际上声称,科洛萨斯Mk II的保密性和其他机器的默默无闻阻止了任何知识的重新利用。当然,这种说法毫无根据。马克斯·诺依曼(Max Neumann)和阿兰·图灵都直接了解科洛萨斯Mk II机器,并且都参与了曼彻斯特Mk I原型的开发。来自布莱切利园的许多人后来在新兴的英国计算机工业工作,他们得以自由运用自己在电子计算方面的技能和知识,尽管他们仍然被束缚着不得谈论布莱切利园。

另一个更早的机器同样缺乏宣传,但却不乏影响,是约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)和克利福德·贝里(Clifford Berry)在爱荷华州立大学构建的机器。他们于1939年联合建造了一台原型机,并于1942年建造了一台全尺度模型。阿塔纳索夫-贝里计算机(Atanasoff-Berry Computer,简称ABC)并未长时间运行,速度远慢于ENIAC,且设计更为简单。它在第二次世界大战期间被拆解,但在此之前,约翰·W·毛克利曾见过它并询问阿塔纳索夫有关其操作的问题。ENIAC的发明者们无疑对ABC有所了解,并且在与ABC相关的专利诉讼中输掉了一场侵权案。

但ABC和科洛萨斯Mk II机器也不是第一台投入运行的通用外部可编程机器。康拉德·祖斯(Konrad Zuse)在其母国德国几乎被完全忽视。在第二次世界大战期间,他面临资金不足的困境,但仍然成功建立了Z3。这是他自1934年起开始的一系列机器中的第三台。Z3于1941年投入使用,采用外部程序控制,程序通过打孔电影胶卷编码,具有内存,并由继电器构成。

来源:科技未来花开

相关推荐