8.第一代计算机
早在二战之前,人们就对研发进行大规模数据运算的计算机产生了兴趣,但战时处理复杂运算的需求加速了计算机的开发进程。其主要动力之一就是炮手在射击数英里外的目标时需要达到一个合理的精准度。发射表向炮手提供了合适的仰角参数,并标注了对应火炮的射程。这种为特定火炮和炮弹定制的发射表还能够确定炮弹击中目标时的速度。
虽然布什的微分分析仪缩短了运算时间,但其速度还不够快。自动程序控制计算机(ASCC,也称为Mark 1)加速了这一进程,不仅体积更大,而且是向公众发布的首台计算机。其设计者霍华德·艾肯(Howard Aiken)在哈佛攻读博士时就开始探索机械计算装置。很多学者认为,这标志着计算机时代的开端。艾肯带着他的计算机构想找到IBM, IBM总裁托马斯·沃森(Thomas Watson)组织了IBM工程师来继续其设计工作,虽然资金大部分来自海军。艾肯专注于研究计算机的运算功能,而由沃森决定其外观。沃森执意要用抛光钢和玻璃罩住长51英尺、高8英尺的计算机,这就确定了未来同规模计算机的视觉样式(见图15)。Mark 1在所有已建造的同类机器中是最大的,能够正确无误地完成一系列程控运算。Mark 1在1943年初建成,后被移到哈佛大学,并于1944年初开始为海军舰船局服务,几个月后转为公众服务。后来,Mark 1还被用于建造原子弹方面的计算工作。
图15 霍华德·艾肯、IBM工程师和哈佛Mark1计算机(1944年)由IBM公司提供,版权归IBM公司所有。http://omi2000.glogster.com/firs-generation-of-computers/
虽然IBM在Mark 1上下了很大功夫,沃森把它的研发更多地看作是为军用,而非商用。相关研究在其他地方也在进行。贝尔电话实验室的工程师开发了一系列使用金属装置也就是继电器的计算机,用继电器的开关状态来控制电流。实验室的关键人物是数学家史提必兹(George R. Stibitz),他在1937年建造了一台用继电器技术进行数学运算的计算机。公司高管同意出资开发一个更大的模型,于是,1940年完成了复杂数字计算器(CNC),这标志着计算领域的一个重大飞跃。其工作原理是,电传打字机作为第一台计算机终端,可以通过电话线将其指令传给计算机,而完成的运算结果可以通过同一条电话线回传给打字机。虽然一次只能使用一个终端,但是该系统可以容纳数台终端。尽管获得了成功,但是贝尔实验室对建造通用计算机不感兴趣,而是专攻战时项目,例如可以帮助炮手跟踪移动目标的M-9火炮射击指挥仪。
NDRC和OSRD都没有完全认识到计算机的未来潜力,因此,引发计算机革命的机器是在政府主导的战时研究组织以外研发的。为了更高效地准备火炮发射表,设计出了电子数字积分计算机(ENIAC)。通常认为,ENIAC开启了高速电子计算的时代。ENIAC比前任速度快了很多倍,并且有能力通过再编程解决范围更广的问题。虽然海军资助了Mark 1设计和研发的大部分工作,但是陆军军械部资助了ENIAC,并计划在其弹道研究实验室里使用这些计算机。
ENIAC的设计和生产是在宾夕法尼亚大学的莫尔电子工程学院进行的,该学院与弹道研究实验室建立了正式的关系。莫尔学院先前已经培训了几百个妇女用台式计算机为实验室进行弹道计算。在这些机器被称为计算机之前,大家把这些妇女命名为“计算机”。但是,她们的工作赶不上对发射表的需求,弹道研究实验室开始对物理教授约翰·莫克利(John Mauchly)和电气工程师J.普雷斯伯·埃克特(J. Presper Eckert)的电子数字计算机项目感兴趣了。这台计算机最后在莫尔学院建成,除了莫克利和埃克特两人之外,还有其他很多人参与了此项目。1943年7月,开始建造,1945年12月,ENIAC运行了第一个程序(见图16)。其计算速度比以前类似Mark 1的机电式计算机快了1000多倍。最终的结构是由电线互相连接的几个不同类型的单元组成,在一个大房间里排成了马蹄形。虽然ENIAC是由男人设计的,但它所有的程序员都是女性。这些女性都得掌握计算机的数学复杂性及其捉摸不定的运算。
图16 1945年约翰·莫克利、J.普雷斯伯·埃克特和ENIAC计算机(维基百科)