大家好,接着上文的图灵机,继续介绍机器的进化。
世界上第一台电子计算机是ENIAC(埃尼阿克),这是课本上所写的。但计算机学界对于究竟哪台是第一台电子计算机其实存在着争议,除了 ENIAC 以外,Z3 计算机、ABC 都是“世界上第一台计算机”的有力竞选者。
Z3计算机
1936年,德国工程师楚泽制造了一台计算机 Z1,采用了二进制,并使用巴贝奇在分析机中提到的“穿孔带”结构来输入程序,是世界上第一台电子-机械式二进制可编程(Electro-Mechanical Binary Programmable)计算机。
在制造 Z1 时(见图4),楚泽并没有得到政府的支持,只得到几个朋友提供的少量资助,他只能自掏腰包来维持研究,因此 Z1 的性能较差,严格上来说只能算是一个模型。
图4 Z1计算机
然而楚泽并没有放弃。1937年,楚泽在朋友的帮助下得到一些废弃的继电器,他利用这些废弃物独自组装电磁式计算机 Z2。虽然这些电子元件比较旧,但依旧发挥了巨大的功效。在这些电子元件的帮助下,Z2 的计算性能突飞猛进,并成功引起了德国飞机研究所的关注。
德国飞机研究所愿意资助楚泽研究性能更好的Z3计算机,并希望将Z3计算机应用于飞机制造。楚泽不负所托,于1941年完成了Z3计算机的研究。Z3 计算机具有优异的数学运算性能,除了能够为制造飞机提供计算方面的帮助外,楚泽还为它编写了一个国际象棋的程序。
遗憾的是,由于战争,Z3 在1944年的一次空袭中被炸得粉碎。1945年,楚泽又制造出一台 Z4 计算机,甚至为其开发了一套编程语言。由于战争原因,楚泽和他的计算机研究一直是国家机密,不为外人所知。直到1958年, 计算机学界才知道他的成果。
不过这时,全世界都已经普遍认为1945年建成的 ENIAC 是第一台电子计算机,因此很少有人知道楚泽其实才是第一位电子计算机的发明者。
ABC计算机
ABC 的全称是“阿塔纳索夫-贝瑞计算机”(Atanasoff-Berry Computer),其构造如图5所示。其中阿塔纳索夫(Atanasoff)和贝瑞(Berry)是它的两位发明者的姓氏。
图5 ABC
阿塔那索夫是一位物理学教授,他在教授课程的过程中,就常常试着用电子技术来帮助学生解决复杂的计算问题,这为后来的 ABC 埋下了伏笔。
阿塔那索夫在设计计算机的过程中做出了4 个重要决定 :采用电子管元件 ;采用二进制代替十进制 ;采用电容器作为存储器 ;采用逻辑运算代替数字运算。这4项决定在当时看来是极具创新性的,明确了ABC计算机的建造思路。
1939年,阿塔纳索夫和他的学生贝瑞完成了ABC样机的建造。不过当年美国发生了严重的经济危机,资源极度匮乏,学校认为把重要的二极管元件浪费在这种毫无意义的发明上是浪费资源,因此没有同意阿塔纳索夫的申请,并且拆除了ABC 样机,后来看到的 ABC 计算机是1997年建造的复制品。
ENIAC
第二次世界大战时,美国对于各种弹道表的计算和制作效率低下,迫切需要一台能够快速运算且保证运算结果准确的计算机。1943年,研制ENIAC的绝密计划——莫克利-埃克特计划应运而生。
最初军方想要的计算机是专门用来进行弹道计算的机器,但研发者的想法并非如此,他们希望能够建造一种通用型的计算机,可以根据不同的程序来处理各种各样的问题。所以在要求军方的资助时,研发者们巧妙地将 ENIAC 描述成为“一台能够解决多种弹道计算问题的多功能计算机”。
在最初的计划中,ENIAC将消耗大约5000个电子管,经费预算150000美元;而建造完成时,ENIAC用掉了18000多个电子管,消耗经费400000美元,几乎达到原计划的3倍。
1943年6月开始研制的 ENIAC,由于研制过程花费了太多时间,并没有来得及在第二次世界大战中展示自己的身手。由于ENIAC在战场上没有任何立功机会,军方决定将这个耗费巨资搭建的计算机拆除,将计算机的零件用在更有用的地方。
就在军方计划对ENIAC 撤资时,冯·诺依曼给ENIAC布置了一项新任务:为氢弹的研制提供计算帮助。ENIAC这才终于有了用武之地。到退役为止,ENIAC 共运行了 8 万多个小时,为氢弹的研制、天气预测、风洞开发都做出了卓越的贡献。
冯·诺依曼在ENIAC的建造过程中曾提出中肯的设计建议。在最初设计时,ENIAC 与现代计算机其实有着较大差异。
ENIAC的程序与计算部件是分离的,在进行计算时,需要人工进行程序替换,之后再启动计算功能,这对于计算机的运行效率有着非常大的阻碍。
针对这一点,冯·诺依曼曾写过一项著名的“101页报告”,提出要设计出能够将程序储存在内部的计算机,冯·诺依曼称之为 EDVAC(离散变量自动计算机)。EDVAC 不用进行人工切换,由计算机自动依次执行程序,后来这种计算机也被称为“冯·诺依曼机”。
不过,由于 ENIAC 计算机研发小组发生了分裂,EDVAC一直到1951年才被研制出来。尽管如此,其结构对现代计算机也还是产生了巨大影响。今天所使用的计算机也大多属于“冯·诺依曼机”的改进型。
Z3 计算机、ABC 和 ENIAC 都是计算机发展史上最闪亮的明星,科学家们为此做出很大的努力。
正是这些不断开拓的科学家们经过努力研究,开辟出一片改变人类生活的信息产业的新天地,大家才能够享受今天的技术便利。