在研究艾肯的“ASCC”一个月之后,霍珀和布洛赫很清楚地认识到这个机器根本不是自动的。没有大量的计划和编码,马克一代的自动化是无法实现的。布洛赫认为,这个过程类似于一个“依次公布射击名单——读出操作的顺序”的监管者。例如,在任何给定的运算中,霍珀必须将输出值的精确度限定到小数(如,第10位,第100位,第1 000位)。这一过程是通过一套相关的插线阵列来完成的,而插线阵列必须不断地重新插入到逐个的问题当中。事实上,每台机器的运行都有一个相关的插线阵列,而每个插入指令都必须具体精确到针对机器的每一次运转。插入指令的一个错误就会导致给定运转的失败,而且,正如霍珀凭着经验所察觉到的,一次粗心大意地将电线交叠会产生灾难性的后果。 为了努力缩短为计算机编码所需的时间,马克一代安装了内置数学函数,包括乘法、除法和三个在现今手持式计算器中普通应用的运算:三角函数、正弦函数和科学计数法(10x)。事实上,这些运算负责相当一部分计算机的继电器,而且艾肯在它们的设计上面投入了大量的精力。对于他所有的努力,霍珀得出的结论是,手工为这些运算编码是最好的。为了产生精确到23位的结果,硬接线操作程序需要将近200次计算机循环,或者大约一分钟;而手工编码只需要那个时间的几分之一而已。大多数节省的时间都归因于手工编码的灵活性。如果在一个给定的问题中,变量x代表一艘船行驶的角度,那么常识表明,这个问题只在十分有限的范围内有解决的价值。哈佛的这个机械头脑却还未聪明到能够区分倾覆的船和漂浮的船。 霍珀发现了其他限制计算机自动功能的怪异的硬件特性。在寄存器中,第24个纵列代表一个负向量。因为是循环进位的电路,每个寄存器都能够将第24位纵列进位到第一纵列。这意味着每当一个问题产生进位结果的时候,如果是负向量,那么9就会在位移的结果中被当做是最重要数字的剩余,否则就会出现许多负数。如果所有的9都出现在存储寄存器中,那么就会出现负零。如果所有的零都在寄存器中,那么就会出现正零。记录负零、正零和九变成了其内部任务,然而,这对得出问题的正确结果来说十分关键。最后,霍珀和布洛赫在战争期间发明的编码方法就不得不做出改进,以适应这台机器怪异的硬件设计。 霍珀对马克一代硬件的兴趣表明了硬件与软件在现代计算机的起源阶段并未明显地区分开来。这种硬件与软件的模糊性在其他主要的美国战事计算机中更加明显,如由宾夕法尼亚大学的约翰·莫克利和小J. P. 埃克特在美国陆军的财务支持下发明的完全电子计算的机器——ENIAC。埃克特和莫克利采用了1.8万个真空电子管作为计算开关,而不是机电继电器,因此达到了每分钟5 000次的较高计算速度。因为电子速度远比将指令和数据通过纸带输入计算机的速度快得多,所以,为了表示需要解决的问题,ENIAC必须进行物理改装。即为了解决正是为之设计的弹道学问题,其硬件重新进行了电线连接。从那之后,编码不再存在,只有硬件操作。 罗伯特·坎贝尔恰当地指出:“ENIAC的系统设计更多的是来源于模拟技术,而非任何其他东西。这可以说是向系统设计的模拟型数字数据的转化。”11换句话说,计算机的“编程”基本上就是计算机物理部件相互连接的方式。从这个意义上来说,ENIAC与Vannevar Bush的微分分析器十分相似,该分析器是由这位享誉盛名的麻省理工学院工程师在20世纪30年代发明的一种精密的机械计算仪器。这种设计的相似性并非偶然,宾夕法尼亚大学也有一台微分分析器,而埃克特和莫克利都曾接受过其使用训练。在1945年到费城访问时,霍珀在首次接触ENIAC的经历中重申了这一点: 当我参观ENIAC时,哈佛与埃克特和莫克利研究的巨大差异都是编程。你看ENIAC——你插入了部件,那么你基本上就为每个工作都创造了一种特别的计算机,而我们习惯于编程和用程序控制的概念;自动排序和ENIAC的插接板系统存在着强烈的对比。 为帮助解决为了每个问题都要重组ENIAC的硬件这个耗时的艰巨任务,埃克特和莫克利从美国陆军导弹研究实验室聘请了六位女性。导弹研究实验室雇佣了近200台“电脑”来为大炮计算发射表,其中大多是新近刚从费城和巴尔的摩地区大学毕业的女性。与哈佛的坎贝尔、霍珀和布洛赫一样,ENIAC的女性工作者们很快就意识到,精确编制计算机程序的唯一方法是彻底熟悉了解其硬件和电路设计。软件的先驱者从根本上来说就是硬件专家。
优雅人生——驯服机械怪兽
书名: 优雅人生
作者: Kurt W·Beyer
出版社: 机械工业出版社华章公司
原作名: Grace Hopper and the Invention of the Information Age
译者: 包艳丽 | 刘珍 | 陈菲
出版年: 2010-12-25
页数: 256
定价: 39.00元
装帧: 平装
ISBN: 9787111325864