电脑史前史评话

Author: 叶平 Date: 1998年 第01期 08版

#1引   子
  流年似水,逝者如斯。
  记得有一位日本作家说过:“弄清过去5万年的事情之后,也许不一定知道未来500年会怎样。”他说的是关于宗教的事。对于电脑来讲,不要说是未来500年,甚至10年之后的事情,也无人讲得清道得明。然而,把时间之矢倒过来发射,50年以前电脑的来龙去脉却清晰地记录在众多的文献资料里。那些为催生电脑而建功立业的伟人先驱之奇闻趣事,相信初涉电脑的列位看官定然深感兴趣。为此之由,说书人拣取若干有趣有名的故事,以“史前史”为题,借评话之体,敷衍成篇,供诸位在打字编程疲劳之时,解累排乏,消磨时间。
  闲话少叙,书归正传。不过在打开电脑,敲击键盘之际,却拿不定把握从何年何月何时何事讲起。
  众人皆知电脑的学名是电子计算机,“史前史”似乎必须从计算工具的出现和使用为起点,至少可以追溯到我们的祖先用小石头或者用手指帮助计数的远古时代。英语里的“Calculus”(计算)一词来源于拉丁语,既有“算法”的含义,也有肾脏或胆囊里的“结石”之意。远古的人们用石头来计算捕获的猎物,石头就是他们的计算机。世界著名科普大师阿西莫夫说道,人类最早的计算机是手指,英语单词“digit”既表示“手指”又表示“整数数字”,绝非偶然的巧合。
  不过,爱看通俗小说的说书人,脑海中却深深刻印着谢尔顿的小说名篇《假如明天来临》中一个情节:风流倜傥的杰夫精心设下圈套,向经销商兜售一种袖珍计算机。杰夫先生以如簧之舌,把这种计算机说成是“价格低廉,绝无故障,节约能源,十年中无需任何保养”。商人们听得兴高彩烈,立即慷慨解囊买回样机,小心翼翼打开包装……你道它是何物?原来就是算盘!中国古人发明的算盘,谁能说它不是“计算机”?一个熟练的录入员用计算机做加法,计算速度无论如何也跟不上一个珠算高手的指头。据说,1946年好事者还为此下过赌注,由驻日美军士兵伍德操纵台式计算器,日本店员松恒打算盘,结果每场都是伍德败北,输得个一塌糊涂。
  手指、石头、算盘,说话间扯得离题太远,似乎有驴头马嘴之嫌。与现代电脑血缘关系最近的是机械式计算机,我们的“史前史评话”,就从帕斯卡的机械计算机说起吧。
#1第一回 帕斯卡转轮进位  莱布尼茨锦上添花
  话说公元1649年,法国有个税收员喜得贵子。聪慧的男孩自小显示出过人的天份,他就是大名鼎鼎的科学家帕斯卡(Blaise Pascal)。少年帕斯卡每天瞅着父亲费力地计算税率税款什么的,便想为父亲制造一台可以计算税款的机器。
  19岁那年,他真的做成了人类有史以来第一台机械计算机。
  帕斯卡的计算机是一种系列齿轮组成的装置,用手摇着转动,只能做加减法。然而,即使只做加法,也有个“逢十进一”的进位问题。绝顶聪明的帕斯卡采用了一种棘轮装置。当定位齿轮朝9转动时,棘轮便逐渐升高;一旦齿轮转到0,棘轮便“咔嚓”一声跌回起始位置,推动十位数的齿轮前进一档。如果各位见过录音机上磁带计数器的工作方式,对此就会有更深的认识。现在,在法国巴黎工艺学校、英国伦敦科学博物馆都可以看到帕斯卡计算机原型。
  帕斯卡不幸英年早逝,死时年仅39岁。他留给世人一句至理名言:“人好比是脆弱的芦苇,但他又是有思想的芦苇。”1971年面世的程序设计高级语言PASCAL,正是为了纪念这位先驱。
  话分两头,且说帕斯卡逝世不久,与法兰西相邻国度的莱茵河畔,一位英俊的年轻人正挑灯夜读。虽然在帕斯卡发明加法器的时候,这位青年尚未出世,但这篇由帕斯卡亲自撰写的关于加法计算机的论文使他大受鼓舞和启发。他就是因独立创立了微积分而与牛顿齐名的德国大数学家莱布尼茨(Gottfried Leibnitz)。
  为了运算那些复杂的微分公式,莱布尼茨于1674年也制作了一台机械计算机。不过,莱布尼茨技高一筹,他为计算机增添了一种名曰“步进轮”的装置。步进轮是一个有9个齿的长圆柱体,9个齿均匀分布于圆柱表面;旁边另有个小齿轮可以沿着轴向移动,以便逐次与步进轮啮合。每当小齿轮转动一圈,步进轮可根据它与小齿轮啮合的齿数,分别转动1/10圈、2/10圈……,直到9/10圈,这样一来,它就能够连续重复地做加法了。
  连续重复地进行加法运算有何用处?熟悉程序设计的列位看官一点即明,这就是现代电脑做乘除运算的伎俩。不仅如此,莱布尼茨还独具慧眼,从中国古代八卦图中参悟出二进制数之真谛,为现代电脑程序设计奠定了基础。不幸的是,数学大师在晚年竟然误入歧途,醉心于去证明什么“上帝从无(0)创造宇宙(1)”之类的命题,不能不令后人扼腕长叹。
  机械计算机经由莱布尼茨的妙手改进,再为它加个电动机,不就成了名符其实的“电动计算机”?后来广泛使用的台式计算机正是因此而水到渠成。然而,在下曾经听说,阿西莫夫大师很不以为然,他曾讲到:“台式计算机代表着一种僵死的尽头,而不是推向将来的浪潮”。
#1第二回 加噶德提花引线 巴贝奇立志创奇
  也许是因为台式机械计算机“没头没脑”,除了计算简单的代数式外别无它长,人们更需要一种能与自己交换信息的机器,一种能够在人的控制下自动工作的计算机。
  把人类的思想传送给机器,或者说,人与机器之间的对话,始作俑者却不是研制计算机的那些前辈。
  且说自18世纪开始,法国的纺织行业因为采用了新机器而呈现一派兴旺景象。1725年,一位纺织机械师布乔(Basile Bouchon)突发奇想,他设法把所有的经线用一排织针控制着运动,然后取来一卷纸带,根据图案打出一些小孔,把它压在织针上。启动机器后,正对着小孔的针能穿过去钩起经线,其它的针则被挡住不动。这样一来,编织针就能够自动按照图案去挑选经线。
  真正成功的改进是在八十年后,另一位法国机械师加噶德(Joseph Jacquard)大约在1804年完成了古典“提花编织机”的设计。加噶德的提花机能够同时操纵1200个编织针,而控制图案的穿孔纸带换成了穿孔卡片。这种提花编织机的基本原理,甚至到了电脑时代的今天,依然没有多大改动。说书人闲暇时曾多次留连于街头绒线编织作坊前,饶有兴趣地观看绒衣编织小姐操作编织机,同时看着那些穿孔卡片和绚丽多姿的绒衣图案而浮想联翩:不知道“编程序”的“编”字,是否来源于这“编织机”的“编”字?早期电脑使用的穿孔纸带和卡片是否也“师承”于编织机的“门下”?
  列位看官,请恕在下在编织机上花去了过多的笔墨,殊不知正是这编织机的穿孔卡片,引来了电脑“史前史”上一位惊世骇俗的人物和一段壮丽悲怆的故事。
  话题将带着列位跨过英吉利海峡,来到英伦三岛的著名高等学府——剑桥大学。这里有位性情古怪的人物。这位先生虽然脾气暴躁,却又憨厚倔犟,认准了的事决不回头。他在巴黎展览会上看到了那台提花织机,便倾囊购买了用该机织成的一幅5平方英尺的大型丝织品——加噶德本人的肖像。
  如果这位英国先生只是对编织图案艺术有特殊癖好,我们当然就无话继续往下讲。然而,据先生自己说,他要“利用这种美妙的发明,借助类似的方法对计算机下达命令”。他想用卡片控制机器的思相火花,去引燃计算机的“灵魂之火”,从而想要成为计算机世界的“普罗米修斯”。
  今天出版的许多计算机书籍上,都登载着这位先生的照片。宽阔的额,狭长的嘴,锐利的目光似乎不能容忍世俗的偏见,坚定但绝非缺乏幽默的外貌,给人一种思想深邃的学者的印象。想来列位都知道他的大名——查尔斯·巴贝奇(Charies Babbage)。
  巴贝奇1792年出生在英格兰西南部的托特纳斯,是一位富有的银行家的儿子。童年时代的巴贝奇显示出极高的数学天赋,考入剑桥大学后,他发现自己掌握的代数知识甚至超过了教师。1816年,24岁的年青人荣幸地受聘担任了剑桥“路卡辛讲座”的数学教授。这是一个很少有人能够获得的殊荣,牛顿的老师巴鲁是第一位,牛顿是第二位。
  实际上,巴贝奇很早就完成了大量的发明和创造,足以使他跻身于科学巨匠的行列。例如,英国在世界上率先推行的“一便士邮资制度”就得益于巴贝奇的运筹学研究成果。今天我们向全国各省市发信,无论路程远近都只需贴上5角钱的邮票,也是依据了同样的原理。因为巴贝奇的研究指出,邮局为一封信的收集、盖戳和投递所花费用,要比运输费用多得多。此外,他还发明了火车上的速度计和排障器,设计出用忽隐忽现灯光辨别灯塔的方法;他还在研究电报密码的编译等方面多有建树……。假如巴贝奇继续在这些数学理论和科技发明领域里耕耘,本来是可以走上鲜花铺就的坦途。然而,这位旷世奇才却选择了一条崎岖险路。
  事情恐怕还得从法国讲起。18世纪末,法兰西发起了一项宏大的计算工程——人工编制《数学用表》。列位在读中学时大概都用过这种《数学用表》。编制精确的数学表,在没有先进计算工具的当时,可是件极其艰巨的工作。法国数学界召集了大批精兵强将,组成了一种人工计算流水线,算得个天昏地暗,才完成了17卷大部头书稿。即使如此,人工手算的数学表仍然存在许多错误。
  人们现在不能确切地认定,这件事是否就是巴贝奇萌生研制计算机思想的起因,不过可以设想两者之间会有必然联系。
  巴贝奇在他的自传《一个哲学家的生命历程》里,写到了大约发生在1812年的一件事。在此,说书人把巴奇亲自写的这段话转述给列位听一听:
  有一天晚上,我坐在剑桥大学的分析学会办公室里,神志恍惚地低头看着面前打开的一张对数表。这时,有一位会员走进屋来,瞧见我的样子,忙喊着:“喂!你梦见什么啦?”我指着对数表回答说:“我正在考虑这些表也许能用机器来计算!”
  从那一刻起,年仅20岁的巴贝奇已暗自立下了创“非常之业”的宏图大志。他毅然放弃了在经济学、语言学、生物学方面的多种爱好,义无反顾地迈出坚定的第一步。只是他没有想到,自己的后半辈子竟会过得如此之痛苦艰辛;也不会想到,他后来会结识一位红颜知己,演绎出电脑“史前史”里,最早的硬件专家和最早的软件专家含辛茹苦、联手攻关的一段佳话。
#1第三回 俏阿达出师未捷身先死 伟天才常使英雄泪沾巾
  巴贝奇立下了创建“非常之业”的凌云壮志,迈出了研制计算机坚实的第一步。他的第一个目标是完成一台能够自动制表的差分机。所谓“差分”之含义,即是把函数表的算式转化为多项式的差分运算,实质仍是加法器,但能够按照设计者的安排自动完成整个运行过程,已经有了程序设计的萌芽。
  巴贝奇初战告捷。1822年造出的第一台机器运算精度达到了6位小数,当即就演算出好几种函数表来。
  “春风得意马蹄疾”,巴贝奇在成功的鼓舞下奋笔上书皇家学会,提出要制造第二台差分机,使它的运算精度达到20位小数。列位都知,就是在今天的电脑上,这种精度也是相当可观。英国政府看到有利可图,十分慷慨地为这台大型差分机提供了17000英镑的资助,巴贝奇自己也贴进了13000英镑巨款。
  英国政府和巴贝奇都失算了。列位看官可以设身处地为巴贝奇想一想,即使用今天的加工设备和技术,要想造出这种高精度的机械也绝非易事。巴贝奇苦苦地撑了两个十年,终于在1842年,痛苦地停止了大型差分机的研制。
  1842年在巴贝奇的一生中是不平常的一年。英国政府宣布了断绝对他的一切资助,连科学界的友人都用一种怪异的目光看着他。但这时,一缕春风吹开了巴贝奇的心扉。在最困难的时候,他收到了一封不仅表示理解而且还希望与他共同工作的来函。信的末尾,绢秀字体的签名表明她是洛甫雷斯伯爵夫人,巴贝奇过去认识的一位年轻美貌的女士。
  洛甫雷斯伯爵夫人的本名阿达·奥古斯塔(Ada Autusta),是英国著名大诗人拜伦的独生女。她比巴贝奇的年龄要小20多岁。
  阿达没有继承其父诗一般的浪漫,却继承了母亲天才的数学能力。少女时代,母亲的一位朋友就带她参观过巴贝奇的差分机。
  30年的困难和曲折并没有使巴贝奇屈服,阿达的友情援助更坚定了他的决心。 在1834年,巴贝奇已经提出了一项新的更大胆的设计。他最后冲刺的目标,不是仅仅能够制表的差分机,而是一种通用的数字计算机。巴贝奇把这种新的设计叫做“分析机”,它能够用来解算各种数学题目,达到每秒运算一次的速度。同时,为分析机编制一批函数计算程序的重担落到了阿达柔弱的肩上。
  今天我们再回首看看巴贝奇的设计,分析机的思想仍然闪烁着天才的光芒。
  巴贝奇为分析机构思了一种齿轮式的“存储库”和“运算室”。此外,巴贝奇也构思了送入和取出数据的机构,以及在“存储库”和“运算室”之间来来去去运输数据的部件。分析机最了不起的设计,则是把加噶德的穿孔卡片引了进来,巴贝奇打算用这种卡片上的孔来表达二进制数“0”和“1”,用以控制运算操作的顺序,他甚至考虑到如何使这台机器执行条件转移的动作。
  列位看了上面的介绍,一定会联想到现代电脑的构成。一个多世纪过去后,现代电脑的结构几乎就是巴贝奇分析机的翻版,只不过它的主要部件被换成了大规模集成电路,不再是齿轮和转轴罢了。巴贝奇当之无愧为计算机系统设计的“开山鼻祖”。
  巴贝奇的红颜知己同样为分析机呕心沥血。阿达开天辟地第一回为计算机编出了程序,其中包括计算三角函数的程序、级数相乘程序、伯努利函数程序等等。阿达编制的这些程序,即使到了今天,软件界的后辈小子们仍然不敢轻易改动一条指令。阿达还为程序设计创建了一套系统的理论,人们公认她是世界上第一位软件工程师,一些地区的书刊,还把她请上了软件界“开山祖师奶”的宝座。
  列位看官之中,可能有人还不知道,美国国防部据说是花了250亿美元来开发一种语言,希望这种语言能成为数千种电脑语言的标准。1981年,这种语言被命名为ADA(阿达)语言,这正是“巾帼终不让须眉,阿达英名传千古”。
  不过,以上讲的都是后话。
  由于孤军奋战和无休无止的脑力劳动,他们的健康受到了极大的损害。1852年,怀着对分析机成功的美好梦想和无言的悲怆,巾帼软件奇才阿达魂归黄泉,香消玉殒,死时年仅36岁,恰好与她父亲拜伦逝世的年龄相同。阿达去后,巴贝奇又默默地独自坚持了近20年,晚年的他已经不能准确地发音,甚至不能有条理地表达自己的意思,但是他仍然百折不挠地坚持工作。
  上帝似乎对巴贝奇和阿达不公平,分析机终于没能造出来,他们失败了。他们的失败是因为他们看得太远,分析机的设想超出了他们所处时代至少有一个世纪!以当时的科学技术条件,实际去制造这种机器只能够酿成一出历史的悲剧。然而,巴贝奇留给了计算机界的后辈一份极其珍贵的精神遗产,包括30种不同的设计方案,2000多张图纸,5万多张零件图……,更包括那种为追求理想而奋不顾身的拼搏精神。
  讲到此处,说书人已是泪眼朦胧,耳边似乎传来巴贝奇对后人讲的那段话:
#1  “任何人如果不接受我失败的教训,还仍然下决心去研制一台可以完成数学分析的全部工作的机器的话,我不怕把自己交给他去作出应有的评价,因为只有他才完全了解我工作的性质及其成果的价值。”