伟大的设计师巴贝奇

    1816年7月17日,直布罗陀海峡波涛汹涌,在随波逐流的森筏上,瘫倒着15个人,这些断水绝粮,已经绝望了的海难者,忽然发现海平线上升起一根桅杆,他们惊呆了,简直不敢相信眼前的景象,可能是海市蜃楼吧?当30只充满血丝、失魂落魄的眼睛确认真的有一条船向他们驶来,生的光芒闪现出来,他们挣扎着站起来,拼命地挥动着手臂,奋力地从干渴欲裂的喉咙中发出嘶哑的求救的喊声。这15人是遇难的“梅杜萨”号战舰365名水手中的幸存者。他们靠着残忍的厮杀,吃人肉、喝人尿在海上漂泊了13个昼夜。在他们获救后,悲痛地向人们讲述“梅杜萨”号三桅旗舰是怎样偏离航向、迷失方向、搁浅断裂的……新闻媒体马上做了详细的报道,整个欧洲震动了。人们纷纷指责船长的无能,同时也尖锐地指出海航表中的错误势必影响海中船只的准确定位。画家奥多·席里柯根据这个悲惨的事件画了一幅生动的油画,把15名遇险者绝处逢生的表情和内心世界描绘得惟妙惟肖。这幅佳作至今还收藏在罗浮宫中。

    事隔不久,一位年轻学者手里拿着一份1766年编印的航海表,匆匆地走进伦敦制表局大门。当他知道接待他的人正是他要找的官员时,毫不客气地说:“先生,我今天来是向您指出正在使用中的航海表严重错误的地方。”年轻人把一张在许多数据下用笔勾画了醒目线的航海表放在官员面前,“经过计算核对这些数据都是不正确的,有些甚至相差甚远”。不等对方说话,年轻人又说:“这种不负责任的航海表,造成了多少灾难,夺去了多少无辜人的生命,难道不应该马上废除它吗?”来人尖锐的语言,严肃的表情和愤怒的目光使官员惊恐不安,不知所措地问“请问,先生您……”

    当得知来人是英国剑桥大学教授、著名英国数学家巴贝奇时(Charles Bebbage,1792—1871),官员的脸上露出感激之情说:“巴贝奇教授,多谢您能核对计算。如果您愿意的话,请您给我们的制表工作提出改进意见。”制表局对巴贝奇的计算极其信赖,因为他是著名的数学家,是剑桥大学卢卡斯讲座的数学教授,这一殊荣很少有人能够得到,讲座的第一位教授是巴罗,第二位是牛顿,第三位就是巴贝奇。另外,科学界都知道巴贝奇从1812年起就在设计能自动计算的带有寄存器的计算机。他不但自己制造机械零件,还设计和制造生产零件的设备和机床,他是研究计算的奇才。第二天,巴贝奇应邀参观造表工场。

    巴贝奇走进造表工场,心情格外沉重。他看到工场简陋的设备,看到为数不多的手摇计算机在操作人员的手中不停地转动,看到计数人员在忙碌地一边核对一边抄写,看到计算人员苍白的脸色和疲倦、呆滞的眼神,看到检验人员在检查冗长的数据单时的尴尬和无奈表情,巴贝奇的心缩紧了。他想:“唉,计算人员太辛苦了,数表的差错在于制表步骤太繁琐,设备简陋,计算器只能做加、减、乘、除运算,很难胜任稍复杂的计算需要,应该有所改进。”从此,巴贝奇走上了设计使人们从繁琐的计算中真正解放出来的自动计算机的艰苦道路。

    几乎与巴贝奇同时,法国政府正紧锣密鼓地进行度量衡制改革,一切以十进制为基础,把原来的直角90度改为100度,把一分60秒改为100秒,这样一来,原来的三角函数表、对数表等等都必须重新编制。法国政府把这需要大量计算的繁重任务交给数学家普罗奈负责。为了完成这项艰巨的工作,普罗奈想出了一个分工计算的智力放大法。他把工作人员分成两个队,两个队人数相同,做同样的运算,以便相互校对。每一队为3个组:第一组由5—6名数学家组成,提出要计算的简明分析公式;第二组9—10名熟悉数学的人,把公式分解成适于计算的形式,并计算相距5或10的一定间隔分布的关键数据;第三组人最多,约100人,他们只是按第二组提出的计算格式和关键数据做重复计算,得出最后的结果。后来由于某种原因法国政府没有将这项改革实施下去,但是普罗奈的工作方法是一项极好的创造。

    沉醉于计算工具研制的巴贝奇,从普罗奈分组分工的方法中得到了启示,他发现这是一种先进的化繁就简的方法,并马上吸取过来,应用在设计上。巴贝奇认为任何一项复杂而繁重的计算都可以分解为若干简明的分析公式,而分析公式又可以人为地化简成最适合计算的形式。这样复杂的计算就变成若干简单多项式的计算,利用多项式的数值差分规律(即n次多项式的n次数值差分为同一常数),求得计算结果的步骤大多是相对固定形式的重复计算,而且这恰恰是最繁重的一步。如果能制造出完成简单多项式重复有限步骤的计算机,那不就是最大限度地降低计算人员的劳动吗?实际上巴贝奇的想法就是我们今天的程序设计思想。经过10年的努力,1822年巴贝奇制成了一架适用于计算多项式值的计算机——差分机。它包括3个寄存器,同时又是运算器,它们可以保存3个10万以内的数,并执行加法运算,精度可达到6位数,它还能执行整个计算程序,是一个带有固定程序的专用自动数字计算机。巴贝奇是世界上第一个提出程序设计思想的人。

    成功的喜悦使巴贝奇的思想更加活跃,他又开始设计一个更大规模的、能够更精确编制航海表的差分机。这个机器大约2吨重,计划有7个寄存器,精确度可达20位,并且附有自动印刷设备,以避免人工抄写可能出现的差错。英国政府出于对海军长远利益的考虑,慷慨地拿出17000英镑支持巴贝奇的工作。但是由于当时精密机械制造水平相当低,没有人能按照巴贝奇要求的精密度制造出合格的杠杆和齿轮,迫使巴贝奇一次又一次地修改设计,大大地增加了开支,经费用完了,巴贝奇自己又投入13000英镑,以维研制工作。10年过去了,制造工艺上的问题仍没有得到解决,巴贝奇为此一筹莫展。英国首相布尔宣布,停止对巴贝奇的财政支持,制造更大规模的差分机的工作正式停止。失去了政府的支持和信任,巴贝奇痛苦极了。

    然而,巴贝奇并没有因为差分机的失败而气馁,他坚信机器虽然没有制造成功,但这种设计思想是正确的,必须坚持下去。因为计算机是人类进步中迫切需要的工具,是极有生命力的。为了有更多的时间和精力从事他心爱的计算机研制工作,巴贝奇辞去了剑桥大学卢卡斯讲座数学教授的职务,全身心地投入建造他思想中的模型——自动计算机的创造中去。大约在1834年,巴贝奇完成了一种可以控制计算程序的通用数字计算机新设计,他将此称为“分析机”。这台“分析机”有专门控制运算程序的机构,可以进行各种具体的数字运算。设计运算速度是1分钟能进行60次加法运算,完成两个50位数的乘法,只需1分钟。“分析机”以蒸气为动力,全部作业都利用各种齿轮和齿条等的咬合、脱离、旋转、平移等机械原理传动。并用穿孔卡片控制内部的操作,因此可以进行自动计算、自动打印。它还有两个逻辑单元,即被巴贝奇称之为“存储器”的记忆单元,这是由很多刻有十进制数字的轮子组成,可以存储数字。另外,“分析机”有两处设计最精彩:一是用穿卡片来控制;一是设计了现在叫做条件转移的指令,即在解题时,可以根据某个计算结果的不同情况,从可能继续运算的两条路线中选择一条做下去。

    “分析机”的分工、结构及整机的适应性,几乎与现代计算机异曲同工,它完全具备了现代计算机所具有的基本功能,体现了现代计算机的几乎所有核心部件和主要设计思想。它包括了五大部件:即输入机构、存储器、运算器、控制器以及输出装置。这是计算机发展史上一次极重大的创新,为此巴贝奇被誉为自动计算机的鼻祖。

    巴贝奇不断地改进和完善着他的设计,他先后花费0多年,提出30多种不同方案,设计了200多套完整的图纸。为了设计制造这种机器他献出了一切,最后他的“分析机”标准结构终于初步形成。

    “分析机”是一种超越时代的美妙设计,可惜它的提出早了100多年,这种思想用机械的方法是不可能实现的。

    巴贝奇的设计在当时确实只是空中楼阁,但是他给后人留下了宝贵的精神财富和杰出的设计。

    在晚年,他曾感慨地说:“如果一个人不因我一生的鉴戒而却步,仍然一往无前,制成一部本身具有全部数学分析能力的机器……那么我愿将我的声誉毫不吝惜地让给他,因为只有他能够完全理解我的种种努力以及这些努力所得到成果的真正价值。”是的,今天的人们已经完全理解了巴贝奇设计思想的真正意义。

    几十年之后,阿尔肯和朱斯等人实现了巴贝奇的梦想。阿尔肯(H.Aiken,1900—?,美国科学家)研制的自动计算机几乎是巴贝奇分析机的翻版。难怪阿尔肯从史料中发现巴贝奇这个人时,意识到自己所做的工作正是先驱者——巴贝奇所做过的工作。幸运的是,由于电子技术和继电元件的发展,阿尔肯可以用电磁元件代替精度不高的机械部件。当阿尔肯读了巴贝奇留给后人的遗嘱时,他感到这位伟大的设计大师正直接与他说话。阿尔肯惊叹:“假如巴贝奇晚生75年,我就会失业了。”朱斯(K·Zuse,1908—?,德国科学家)用继电器取代了机械元件,研制成Z—2机和Z—3机,其计算速度每分钟可达几十次,加法为0.3秒,乘法为4—5秒。

    阿尔肯和朱斯等人研制的计算机,是第一批通用机电自动计算机,都受到巴贝奇设计思想的极大影响。然而在它们运用时就已经过时了,因为继电器的开关速度大约为1%秒,机电式计算机的运算速度已经达到极限,这就注定了机电式计算机必须要让电子计算机所取代。