当代中国计算机产业发展趋势
无处不在、无所不能的电脑,已历经了50多个春华秋实。50余年在人类的历史长河中只是一瞬间,电脑却彻底改变了我们的生活。回顾电脑发展的历史,并依此上溯它的起源,真令人惊叹沧海桑田的巨变;历数电脑史上的英雄人物和跌宕起伏的发明故事,将给后人留下了长久的思索和启迪。请读者随着我们的史话倒转时空,从电脑最初的源头说起。
谁都知道,电脑的学名叫做电子计算机。以人类发明这种机器的初衷,它的始祖应该是计算工具。英语里“Calculus”(计算)一词来源于拉丁语,既有“算法”的含义,也有肾脏或胆囊里的“结石”的意思。远古的人们用石头来计算捕获的猎物,石头就是他们的计算工具。著名科普作家阿西莫夫说,人类最早的计算工具是手指,英语单词“Dight”既表示“手指”又表示“整数数字”;而中国古人常用“结绳”来帮助记事,“结绳”当然也可以充当计算工具。石头、手指、绳子……,这些都是古人用过的“计算机”。
不知何时,许多国家的人都不约而同想到用“筹码”来改进工具,其中要数中国的算筹最有名气。商周时代问世的算筹,实际上是一种竹制、木制或骨制的小棍。古人在地面或盘子里反复摆弄这些小棍,通过移动来进行计算,从此出现了“运筹”这个词,运筹就是计算,后来才派生出“筹”的词义。中国古代科学家祖冲之最先算出了圆周率小数点后的第6位,使用的工具正是算筹,这个结果即使用笔算也很不容易求得。
欧洲人发明的算筹与中国不尽相同,他们的算筹是根据“格子乘法”的原理制成。例如要计算1248×456,可以先画一个矩形,然后把它分成3×2个小格子,在小格子边依次写下乘数、被乘数的各位数字,再用对角线把小格子一分为二,分别记录上述各位数字相应乘积的十位数与个位数。把这些乘积由右到左,沿斜线方向相加,最后就得到乘积。1617年,英国数学家纳皮尔把格子乘法表中可能出现的结果,印刻在一些狭长条的算筹上,利用算筹的摆放来进行乘、除或其他运算。纳皮尔算筹在很长一段时间里,是欧洲人主要的计算工具。算筹在使用中,一旦遇到复杂运算常弄得繁杂混乱,让人感到不便,于是中国人又发明了一种新式的“计算机”。
谢尔顿在他的小说《假如明天来临》里讲过一个故事:骗子杰夫向经销商兜售一种袖珍计算机,说它“价格低廉,绝无故障,节约能源,十年中无需任何保养”。当商人打开包装盒一看,这台“计算机”原来是一把来自中国的算盘。世界文明的四大发源地——黄河流域、印度河流域、尼罗河流域和幼发拉底河流域——先后都出现过不同形式的算盘,只有中国的珠算盘一直沿用至今。珠算盘最早可能萌芽于汉代,定型于南北朝。它利用进位制记数,通过拨动算珠进行运算:上珠每珠当五,下珠每珠当一,每一档可当作一个数位。打算盘必须记住一套口诀,口诀相当于算盘的“软件”。算盘本身还可以存储数字,使用起来的确很方便,它帮助中国古代数学家取得了不少重大的科技成果,在人类计算工具史上具有重要的地位。
15世纪以后,随着天文、航海的发展,计算工作日趋繁重,迫切需要探求新的计算方法并改进计算工具。1630年,英国数学家奥特雷德使用当时流行的对数刻度尺做乘法运算,突然萌生了一个念头:若采用两根相互滑动的对数刻度尺,不就省得用两脚规度量长度吗?他的这个设想导致了“机械化”计算尺的诞生。奥特雷德是理论数学家,对这个小小的计算尺并不在意,也没有打算让它流传于世,此后二百年,他的发明未被实际运用。18世纪末,以发明蒸汽机闻名于世的瓦特,成功地制出了第一把名副其实的计算尺。瓦特原来就是一位仪表匠,他的蒸汽机工厂投产后,需要迅速计算蒸汽机的功率和气缸体积。瓦特设计的计算尺,在尺座上多了一个滑标,用来“存储”计算的中间结果,这种滑标很长时间一直被后人所沿用。
1850年以后,对数计算尺迅速发展,成了工程师们必不可少的随身携带的“计算机”,直到20世纪五、六十年代,它仍然是代表工科大学生身份的一种标志。
凝聚着许许多多科学家和能工巧匠智慧的早期计算工具,在不同的历史阶段发挥过巨大作用,但也将随着科学发展而逐渐消亡,最终完成它们的历史使命。
第一台真正的计算机是著名科学家帕斯卡(B.Pascal)发明的机械计算机。
帕斯卡1623年出生在法国一位数学家家庭,他三岁丧母,由担任着税务官的父亲拉扯他长大成人。从小,他就显示出对科学研究浓厚的兴趣。
少年帕斯卡对他的父亲一往情深,他每天都看着年迈的父亲费力地计算税率税款,很想帮助做点事,可又怕父亲不放心。于是,未来的科学家想到了为父亲制做一台可以计算税款的机器。19岁那年,他发明了人类有史以来第一台机械计算机。
帕斯卡的计算机是一种系列齿轮组成的装置,外形像一个长方盒子,用儿童玩具那种钥匙旋紧发条后才能转动,只能够做加法和减法。然而,即使只做加法,也有个“逢十进一”的进位问题。聪明的帕斯卡采用了一种小爪子式的棘轮装置。当定位齿轮朝9转动时,棘爪便逐渐升高;一旦齿轮转到0,棘爪就“咔嚓”一声跌落下来,推动十位数的齿轮前进一档。
帕斯卡发明成功后,一连制作了50台这种被人称为“帕斯卡加法器”的计算机,至少现在还有5台保存着。比如,在法国巴黎工艺学校、英国伦敦科学博物馆都可以看到帕斯卡计算机原型。据说在中国的故宫博物院,也保存着两台铜制的复制品,是当年外国人送给慈僖太后的礼品,“老佛爷”哪里懂得它的奥妙,只把它当成了西方的洋玩具,藏在深宫里面。
帕斯卡是真正的天才,他在诸多领域内都有建树。后人在介绍他时,说他是数学家、物理学家、哲学家、流体动力学家和概率论的创始人。凡是学过物理的人都知道一个关于液体压强性质的“帕斯卡定律”,这个定律就是他的伟大发现并以他的名字命名的。他甚至还是文学家,其文笔优美的散文在法国极负盛名。可惜,长期从事艰苦的研究损害了他的健康,1662年英年早逝,死时年仅39岁。他留给了世人一句至理名言:“人好比是脆弱的芦苇,但是他又是有思想的芦苇。”
全世界“有思想的芦苇”,尤其是计算机领域的后来者,都不会忘记帕斯卡在浑沌中点燃的亮光。1971年发明的一种程序设计语言——PASCAL语言,就是为了纪念这位先驱,使帕斯卡的英名长留在电脑时代里。
帕斯卡逝世后不久,与法兰西毗邻的德国莱茵河畔,有位英俊的年轻人正挑灯夜读。黎明时分,青年人站起身,揉了一下疲乏的腰部,脸上流露出会心的微笑,一个朦胧的设想已酝酿成熟。虽然在帕斯卡发明加法器的时候,他尚未出世,但这篇由帕斯卡亲自撰写的关于加法计算机的论文,却使他似醍醐灌顶,勾起强烈的发明欲。他就是德国大数学家、被《不列颠百科全书》称为“西方文明最伟大的人物之一”的莱布尼茨(G.Leibnitz)。
莱布尼茨早年历经坎坷。当幸运之神降临之时,他获得了一次出使法国的机会。帕斯卡的故乡张开臂膀接纳他,为他实现计算机器的夙愿创造了契机。在巴黎,他聘请到一些著名机械专家和能工巧匠协助工作,终于在1674年造出一台更完美的机械计算机。
莱布尼茨发明的新型计算机约有1米长,内部安装了一系列齿轮机构,除了体积较大之外,基本原理继承于帕斯卡。不过,莱布尼茨技高一筹,他为计算机增添了一种名叫“步进轮”的装置。步进轮是一个有9个齿的长圆柱体,9个齿依次分布于圆柱表面;旁边另有个小齿轮可以沿着轴向移动,以便逐次与步进轮啮合。每当小齿轮转动一圈,步进轮可根据它与小齿轮啮合的齿数,分别转动1/10、2/10圈……,直到9/10圈,这样一来,它就能够连续重复地做加法。
稍熟悉电脑程序设计的人都知道,连续重复计算加法就是现代计算机做乘除运算采用的办法。莱布尼茨的计算机,加、减、乘、除四则运算一应俱全,也给其后风靡一时的手摇计算机铺平了道路。
不久,因独立发明微积分而与牛顿齐名的莱布尼茨,又为计算机提出了“二进制”数的设计思路。有人说,他的想法来自于东方中国。
大约在公元1700年左右某天,友人送给他一幅从中国带来图画,名称叫做“八卦”,是宋朝人邵雍所摹绘的一张“易图”。莱布尼茨用放大镜仔细观察八卦的每一卦象,发现它们都由阳(—)和阴(--)两种符号组合而成。他挠有兴趣地把8种卦象颠来倒去排列组合,脑海中突然火花一闪——这不就是很有规律的二进制数字吗?若认为阳(—)是“1”,阴(--)是“0”,八卦恰好组成了二进制000到111共8个基本序数。正是在中国人睿智的启迪下,莱布尼茨最终悟出了二进制数之真谛。虽然莱布尼茨设计的计算机用的还是十进制,但他率先系统提出了二进制数的运算法则,直到今天,二进制数仍然左右着现代电脑的高速运算。
帕斯卡的计算机经由莱布尼茨的改进之后,人们又给它装上电动机以驱动机器工作,成为名符其实的“电动计算机”,并且一直使用到本世纪20年代才退出舞台。尽管帕斯卡与莱布尼茨的发明还不是现代意义上的计算机,但它们毕竟昭示着人类计算机史里的第一抹曙光。
要让机器听人类的话,按人类的意愿去计算,就要实现人与机器之间的对话,或者说,要把人类的思想传送给机器,让机器按人的意志自动执行。
说来也怪,实现人与机器对话的始作俑者却不是研制计算机的那些前辈,而是与计算机发明毫不相干的两位法国纺织机械师。他们先后发明了一种指挥机器工作的“程序”,把思想直接“注入”到了提花编织机的针尖上。
顾名思义,提花编织机具有升降纱线的提花装置,是一种能使绸布编织出图案花纹的织布机器。
应该是,提花编织机最早出现在中国。在我国出土的战国时代墓葬物品中,就有许多用彩色丝线编织的漂亮花布。据史书记载,西汉年间,钜鹿县纺织工匠陈宝光的妻子,能熟练地掌握提花机操作技术,她的机器配置了120根经线,平均60天即可织成一匹花布,每匹价值万钱。明朝刻印的《天工开物》一书中,还赫然地印着一幅提花机的示意图。可以想象,当欧洲的王公贵族对从“丝绸之路”传入的美丽绸缎赞叹不已时,中国的提花机也必定会沿着“丝绸之路”传入欧洲。
不过,用当时的编织机编织图案相当费事。所有的绸布都是用经线(纵向线)和纬线(横向线)编织而成。若要织出花样,织工们必须细心地按照预先设计的图案,在适当位置“提”起一部分经线,以便让滑梭牵引着不同颜色的纬线通过。机器当然不可能自己“想”到该在何处提线,只能靠人手“提”起一根又一根经线,不厌其烦地重复这种操作。
1725年,法国纺织机械师布乔(B.Bouchon)突发奇想,想出了一个“穿孔纸带”的绝妙主意。布乔首先设法用一排编织针控制所有的经线运动,然后取来一卷纸带,根据图案打出一排排小孔,并把它压在编织针上。启动机器后,正对着小孔的编织针能穿过去钩起经线,其他的针则被纸带挡住不动。这样一来,编织针就自动按照预先设计的图案去挑选经线,布乔的“思想”于是“传递”给了编织机,而编织图案的“程序”也就“储存”在穿孔纸带的小孔之中。真正成功的改进是在80年后,另一位法国机械师杰卡德(J.Jacquard),大约在1805年完成了“自动提花编织机”的设计制作。
那是举世瞩目的法国大革命的年代——攻打巴士底狱,推翻封建王朝,武装保卫巴黎,市民们高唱着“马赛曲”,纷纷走上街头,革命风暴如火如荼。虽然杰卡德在1790年就基本形成了他的提花机设计构想,但为了参加革命,他无暇顾及发明创造,也扛起来福枪,投身到里昂保卫战的行列里。直到19世纪到来之后,杰卡德的机器才得以组装完成。
杰卡德为他的提花机增加了一种装置,能够同时操纵1200个编织针,控制图案的穿孔纸带后来也换成了穿孔卡片。据说,杰卡德编织机面世后仅25年,考文垂附近的乡村里就有了600台,在老式蒸气机噗嗤噗嗤的伴奏下,把穿孔卡片上的图案变成一匹匹漂亮的花绸布。纺织工人最初强烈反对这架自动化的新鲜玩意的到来,因为害怕机器会抢去他们的饭碗,使他们失去工作,但因为它优越的性能,终于被人们普遍接受。1812年,仅在法国已经装配了万余台,并通过英国传遍了西方世界,杰卡德也因此而被受予了荣誉军团十字勋章和金质奖章。
杰卡德提花编织机奏响了19世纪机器自动化的序曲。在伦敦出版的《不列颠百科全书》和中国出版的《英汉科技词汇大全》两部书中,“JACQUARD”(杰卡德)一词的词条下,英语和汉语的意思居然都是“提花机”,可见,杰卡德的名字已经与提花机融为了一体。杰卡德提花机的原理,即使到了电脑时代的今天,依然没有更大的改动,街头巷尾小作坊里使用的手工绒线编织机,其基本结构仍与杰卡德编织机大体相似。
此外,杰卡德编织机“千疮百孔”的穿孔卡片,不仅让机器编织出绚丽多彩的图案,而且意味着程序控制思想的萌芽,穿孔纸带和穿孔卡片也广泛用于早期电脑以存储程序和数据。或许,我们现在把“程序设计”俗称为“编程序”,就引申自编织机的“编织花布”的词义。
今天出版的许多计算机书籍扉页里,都登载着巴贝奇(C.Babbage)的照片:宽阔的额,狭长的嘴,锐利的目光显得有些愤世嫉俗,坚定的但绝非缺乏幽默的外貌,给人以一个极富深邃思想的学者形象。
巴贝奇是一位富有的银行家的儿子,1792年出生在英格兰西南部的托特纳斯,后来继承了相当丰厚的遗产,但他把金钱都用于了科学研究。童年时代的巴贝奇显示出极高的数学天赋,考入剑桥大学后,他发现自己掌握的代数知识甚至超过了教师。毕业留校,24岁的年青人荣幸受聘担任剑桥大学“路卡辛讲座”的数学教授。这是一个很少有人能够获得的殊荣,牛顿的老师巴罗是第一名,牛顿是第二名。在教学之余,巴贝奇完成了大量发明创造,如运用运筹学理论率先提出“一便士邮资”制度,发明了供火车使用的速度计和排障器等等。假若巴贝奇继续在数学理论和科技发明领域耕耘,他本来是可以走上鲜花铺就的坦途。然而,这位旷世奇才却选择了一条无人敢于攀登的崎岖险路。
事情还得从法国讲起。18世纪末,法兰西发起了一项宏大的计算工程——人工编制《数学用表》,这在没有先进计算工具的当时,是件极其艰巨的工作。法国数学界调集大批数学家,组成了人工手算的流水线,算得天昏地暗,才完成了17卷大部头书稿。即便如此,计算出的数学用表仍然存在大量错误。据说有一天,巴贝奇与著名的天文学家赫舍尔凑在一起,对两大部头的天文数表评头论足,翻一页就是一个错,翻两页就有好几处。面对错误百出的数学表,巴贝奇目瞪口呆,他甚至喊出声来:“天哪,这些计算错误已经充斥弥漫了整个宇宙!”
这件事也许就是巴贝奇萌生研制计算机构想的起因。巴贝奇在他的自传《一个哲学家的生命历程》里,写到了大约发生在1812年的一件事:“有一天晚上,我坐在剑桥大学的分析学会办公室里,神志恍惚地低头看着面前打开的一张对数表。一位会员走进屋来,瞧见我的样子,忙喊道:‘喂!你梦见什么啦?’我指着对数表回答说:‘我正在考虑这些表也许能用机器来计算!’”巴贝奇的第一个目标是制作一台“差分机”。所谓“差分”的含义,是把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算。那一年,刚满20岁的巴贝奇从法国人杰卡德发明的提花编织机上获得了灵感,差分机设计闪烁出了程序控制的灵光——它能够按照设计者的旨意,自动处理不同函数的计算过程。
巴贝奇耗费了整整十年光阴,于1822年完成了第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数,当即就演算出好几种函数表。由于当时工业技术水平极低,第一台差分机从设计绘图到机械零件加工,都是巴贝奇亲自动手完成。当他看着自己的机器制作出准确无误的《数学用表》,高兴地对人讲:“哪怕我的机器出了故障,比如齿轮被卡住不能动,那也毫无关系。你看,每个轮子上都有数字标记,它不会欺骗任何人。”以后实际运用证明,这种机器非常适合于编制航海和天文方面的数学用表。
成功的喜悦激励着巴贝奇,他连夜奋笔上书皇家学会,要求政府资助他建造第二台运算精度为20位的大型差分机。英国政府看到巴贝奇的研究有利可图,破天荒地与科学家签订了第一个合同,财政部慷慨地为这台大型差分机提供出1.7万英镑的资助。巴贝奇自己也贴进去1.3万英镑巨款,用以弥补研制经费的不足。在当年,这笔款项的数额无异于天文数字——有资料介绍说,1831年约翰·布尔制造一台蒸汽机车的费用才784英磅。
然而,第二台差分机在机械制造工厂里触上了“暗礁”。
第二台差分机大约有25000个零件,主要零件的误差不得超过每英寸千分之一,即使用现在的加工设备和技术,要想造出这种高精度的机械也绝非易事。巴贝奇把差分机交给了英国最著名的机械工程师约瑟夫·克莱门特所属的工厂制造,但工程进度十分缓慢。设计师心急火燎,从剑桥到工厂,从工厂到剑桥,一天几个来回。他把图纸改了又改,让工人把零件重做一遍又一遍。年复一年,日复一日,直到又一个10年过去后,巴贝奇依然望着那些不能运转的机器发愁,全部零件亦只完成不足一半数量。参加试验的同事们再也坚持不下去,纷纷离他而去。巴贝奇独自苦苦支撑了第三个10年,终于感到无力回天。
那天清晨,巴贝奇走进车间,偌大的作业场空无一人,只剩下满地的滑车和齿轮,四处一片狼藉。他呆立在尚未完工的机器旁,深深地叹了口气。在痛苦的煎熬中,他无计可施,只得把全部设计图纸和已完成的部分零件送进伦敦皇家学院博物馆供人观赏。1842年,在巴贝奇的一生中是极不平常的一年。英国政府宣布断绝对他的一切资助,连科学界的友人都用一种怪异的目光看着他。英国首相讥讽道:“这部机器的唯一用途,就是花掉大笔金钱!”同行们讥笑他是“愚笨的巴贝奇”。皇家学院的权威人士,包括著名天文学家艾瑞等人,都公开宣称他的差分机“毫无任何价值”……
就在痛苦艰难的时刻,孤独苦闷的巴贝奇意外地收到一封来信,写信人不仅对他表示理解而且还希望与他共同工作。娟秀字体的签名,表明了她不凡的身份——伯爵夫人。
谁都知道,电脑的学名叫做电子计算机。以人类发明这种机器的初衷,它的始祖应该是计算工具。英语里“Calculus”(计算)一词来源于拉丁语,既有“算法”的含义,也有肾脏或胆囊里的“结石”的意思。远古的人们用石头来计算捕获的猎物,石头就是他们的计算工具。著名科普作家阿西莫夫说,人类最早的计算工具是手指,英语单词“Dight”既表示“手指”又表示“整数数字”;而中国古人常用“结绳”来帮助记事,“结绳”当然也可以充当计算工具。石头、手指、绳子……,这些都是古人用过的“计算机”。
不知何时,许多国家的人都不约而同想到用“筹码”来改进工具,其中要数中国的算筹最有名气。商周时代问世的算筹,实际上是一种竹制、木制或骨制的小棍。古人在地面或盘子里反复摆弄这些小棍,通过移动来进行计算,从此出现了“运筹”这个词,运筹就是计算,后来才派生出“筹”的词义。中国古代科学家祖冲之最先算出了圆周率小数点后的第6位,使用的工具正是算筹,这个结果即使用笔算也很不容易求得。
欧洲人发明的算筹与中国不尽相同,他们的算筹是根据“格子乘法”的原理制成。例如要计算1248×456,可以先画一个矩形,然后把它分成3×2个小格子,在小格子边依次写下乘数、被乘数的各位数字,再用对角线把小格子一分为二,分别记录上述各位数字相应乘积的十位数与个位数。把这些乘积由右到左,沿斜线方向相加,最后就得到乘积。1617年,英国数学家纳皮尔把格子乘法表中可能出现的结果,印刻在一些狭长条的算筹上,利用算筹的摆放来进行乘、除或其他运算。纳皮尔算筹在很长一段时间里,是欧洲人主要的计算工具。算筹在使用中,一旦遇到复杂运算常弄得繁杂混乱,让人感到不便,于是中国人又发明了一种新式的“计算机”。
谢尔顿在他的小说《假如明天来临》里讲过一个故事:骗子杰夫向经销商兜售一种袖珍计算机,说它“价格低廉,绝无故障,节约能源,十年中无需任何保养”。当商人打开包装盒一看,这台“计算机”原来是一把来自中国的算盘。世界文明的四大发源地——黄河流域、印度河流域、尼罗河流域和幼发拉底河流域——先后都出现过不同形式的算盘,只有中国的珠算盘一直沿用至今。珠算盘最早可能萌芽于汉代,定型于南北朝。它利用进位制记数,通过拨动算珠进行运算:上珠每珠当五,下珠每珠当一,每一档可当作一个数位。打算盘必须记住一套口诀,口诀相当于算盘的“软件”。算盘本身还可以存储数字,使用起来的确很方便,它帮助中国古代数学家取得了不少重大的科技成果,在人类计算工具史上具有重要的地位。
15世纪以后,随着天文、航海的发展,计算工作日趋繁重,迫切需要探求新的计算方法并改进计算工具。1630年,英国数学家奥特雷德使用当时流行的对数刻度尺做乘法运算,突然萌生了一个念头:若采用两根相互滑动的对数刻度尺,不就省得用两脚规度量长度吗?他的这个设想导致了“机械化”计算尺的诞生。奥特雷德是理论数学家,对这个小小的计算尺并不在意,也没有打算让它流传于世,此后二百年,他的发明未被实际运用。18世纪末,以发明蒸汽机闻名于世的瓦特,成功地制出了第一把名副其实的计算尺。瓦特原来就是一位仪表匠,他的蒸汽机工厂投产后,需要迅速计算蒸汽机的功率和气缸体积。瓦特设计的计算尺,在尺座上多了一个滑标,用来“存储”计算的中间结果,这种滑标很长时间一直被后人所沿用。
1850年以后,对数计算尺迅速发展,成了工程师们必不可少的随身携带的“计算机”,直到20世纪五、六十年代,它仍然是代表工科大学生身份的一种标志。
凝聚着许许多多科学家和能工巧匠智慧的早期计算工具,在不同的历史阶段发挥过巨大作用,但也将随着科学发展而逐渐消亡,最终完成它们的历史使命。
第一台真正的计算机是著名科学家帕斯卡(B.Pascal)发明的机械计算机。
帕斯卡1623年出生在法国一位数学家家庭,他三岁丧母,由担任着税务官的父亲拉扯他长大成人。从小,他就显示出对科学研究浓厚的兴趣。
少年帕斯卡对他的父亲一往情深,他每天都看着年迈的父亲费力地计算税率税款,很想帮助做点事,可又怕父亲不放心。于是,未来的科学家想到了为父亲制做一台可以计算税款的机器。19岁那年,他发明了人类有史以来第一台机械计算机。
帕斯卡的计算机是一种系列齿轮组成的装置,外形像一个长方盒子,用儿童玩具那种钥匙旋紧发条后才能转动,只能够做加法和减法。然而,即使只做加法,也有个“逢十进一”的进位问题。聪明的帕斯卡采用了一种小爪子式的棘轮装置。当定位齿轮朝9转动时,棘爪便逐渐升高;一旦齿轮转到0,棘爪就“咔嚓”一声跌落下来,推动十位数的齿轮前进一档。
帕斯卡发明成功后,一连制作了50台这种被人称为“帕斯卡加法器”的计算机,至少现在还有5台保存着。比如,在法国巴黎工艺学校、英国伦敦科学博物馆都可以看到帕斯卡计算机原型。据说在中国的故宫博物院,也保存着两台铜制的复制品,是当年外国人送给慈僖太后的礼品,“老佛爷”哪里懂得它的奥妙,只把它当成了西方的洋玩具,藏在深宫里面。
帕斯卡是真正的天才,他在诸多领域内都有建树。后人在介绍他时,说他是数学家、物理学家、哲学家、流体动力学家和概率论的创始人。凡是学过物理的人都知道一个关于液体压强性质的“帕斯卡定律”,这个定律就是他的伟大发现并以他的名字命名的。他甚至还是文学家,其文笔优美的散文在法国极负盛名。可惜,长期从事艰苦的研究损害了他的健康,1662年英年早逝,死时年仅39岁。他留给了世人一句至理名言:“人好比是脆弱的芦苇,但是他又是有思想的芦苇。”
全世界“有思想的芦苇”,尤其是计算机领域的后来者,都不会忘记帕斯卡在浑沌中点燃的亮光。1971年发明的一种程序设计语言——PASCAL语言,就是为了纪念这位先驱,使帕斯卡的英名长留在电脑时代里。
帕斯卡逝世后不久,与法兰西毗邻的德国莱茵河畔,有位英俊的年轻人正挑灯夜读。黎明时分,青年人站起身,揉了一下疲乏的腰部,脸上流露出会心的微笑,一个朦胧的设想已酝酿成熟。虽然在帕斯卡发明加法器的时候,他尚未出世,但这篇由帕斯卡亲自撰写的关于加法计算机的论文,却使他似醍醐灌顶,勾起强烈的发明欲。他就是德国大数学家、被《不列颠百科全书》称为“西方文明最伟大的人物之一”的莱布尼茨(G.Leibnitz)。
莱布尼茨早年历经坎坷。当幸运之神降临之时,他获得了一次出使法国的机会。帕斯卡的故乡张开臂膀接纳他,为他实现计算机器的夙愿创造了契机。在巴黎,他聘请到一些著名机械专家和能工巧匠协助工作,终于在1674年造出一台更完美的机械计算机。
莱布尼茨发明的新型计算机约有1米长,内部安装了一系列齿轮机构,除了体积较大之外,基本原理继承于帕斯卡。不过,莱布尼茨技高一筹,他为计算机增添了一种名叫“步进轮”的装置。步进轮是一个有9个齿的长圆柱体,9个齿依次分布于圆柱表面;旁边另有个小齿轮可以沿着轴向移动,以便逐次与步进轮啮合。每当小齿轮转动一圈,步进轮可根据它与小齿轮啮合的齿数,分别转动1/10、2/10圈……,直到9/10圈,这样一来,它就能够连续重复地做加法。
稍熟悉电脑程序设计的人都知道,连续重复计算加法就是现代计算机做乘除运算采用的办法。莱布尼茨的计算机,加、减、乘、除四则运算一应俱全,也给其后风靡一时的手摇计算机铺平了道路。
不久,因独立发明微积分而与牛顿齐名的莱布尼茨,又为计算机提出了“二进制”数的设计思路。有人说,他的想法来自于东方中国。
大约在公元1700年左右某天,友人送给他一幅从中国带来图画,名称叫做“八卦”,是宋朝人邵雍所摹绘的一张“易图”。莱布尼茨用放大镜仔细观察八卦的每一卦象,发现它们都由阳(—)和阴(--)两种符号组合而成。他挠有兴趣地把8种卦象颠来倒去排列组合,脑海中突然火花一闪——这不就是很有规律的二进制数字吗?若认为阳(—)是“1”,阴(--)是“0”,八卦恰好组成了二进制000到111共8个基本序数。正是在中国人睿智的启迪下,莱布尼茨最终悟出了二进制数之真谛。虽然莱布尼茨设计的计算机用的还是十进制,但他率先系统提出了二进制数的运算法则,直到今天,二进制数仍然左右着现代电脑的高速运算。
帕斯卡的计算机经由莱布尼茨的改进之后,人们又给它装上电动机以驱动机器工作,成为名符其实的“电动计算机”,并且一直使用到本世纪20年代才退出舞台。尽管帕斯卡与莱布尼茨的发明还不是现代意义上的计算机,但它们毕竟昭示着人类计算机史里的第一抹曙光。
要让机器听人类的话,按人类的意愿去计算,就要实现人与机器之间的对话,或者说,要把人类的思想传送给机器,让机器按人的意志自动执行。
说来也怪,实现人与机器对话的始作俑者却不是研制计算机的那些前辈,而是与计算机发明毫不相干的两位法国纺织机械师。他们先后发明了一种指挥机器工作的“程序”,把思想直接“注入”到了提花编织机的针尖上。
顾名思义,提花编织机具有升降纱线的提花装置,是一种能使绸布编织出图案花纹的织布机器。
应该是,提花编织机最早出现在中国。在我国出土的战国时代墓葬物品中,就有许多用彩色丝线编织的漂亮花布。据史书记载,西汉年间,钜鹿县纺织工匠陈宝光的妻子,能熟练地掌握提花机操作技术,她的机器配置了120根经线,平均60天即可织成一匹花布,每匹价值万钱。明朝刻印的《天工开物》一书中,还赫然地印着一幅提花机的示意图。可以想象,当欧洲的王公贵族对从“丝绸之路”传入的美丽绸缎赞叹不已时,中国的提花机也必定会沿着“丝绸之路”传入欧洲。
不过,用当时的编织机编织图案相当费事。所有的绸布都是用经线(纵向线)和纬线(横向线)编织而成。若要织出花样,织工们必须细心地按照预先设计的图案,在适当位置“提”起一部分经线,以便让滑梭牵引着不同颜色的纬线通过。机器当然不可能自己“想”到该在何处提线,只能靠人手“提”起一根又一根经线,不厌其烦地重复这种操作。
1725年,法国纺织机械师布乔(B.Bouchon)突发奇想,想出了一个“穿孔纸带”的绝妙主意。布乔首先设法用一排编织针控制所有的经线运动,然后取来一卷纸带,根据图案打出一排排小孔,并把它压在编织针上。启动机器后,正对着小孔的编织针能穿过去钩起经线,其他的针则被纸带挡住不动。这样一来,编织针就自动按照预先设计的图案去挑选经线,布乔的“思想”于是“传递”给了编织机,而编织图案的“程序”也就“储存”在穿孔纸带的小孔之中。真正成功的改进是在80年后,另一位法国机械师杰卡德(J.Jacquard),大约在1805年完成了“自动提花编织机”的设计制作。
那是举世瞩目的法国大革命的年代——攻打巴士底狱,推翻封建王朝,武装保卫巴黎,市民们高唱着“马赛曲”,纷纷走上街头,革命风暴如火如荼。虽然杰卡德在1790年就基本形成了他的提花机设计构想,但为了参加革命,他无暇顾及发明创造,也扛起来福枪,投身到里昂保卫战的行列里。直到19世纪到来之后,杰卡德的机器才得以组装完成。
杰卡德为他的提花机增加了一种装置,能够同时操纵1200个编织针,控制图案的穿孔纸带后来也换成了穿孔卡片。据说,杰卡德编织机面世后仅25年,考文垂附近的乡村里就有了600台,在老式蒸气机噗嗤噗嗤的伴奏下,把穿孔卡片上的图案变成一匹匹漂亮的花绸布。纺织工人最初强烈反对这架自动化的新鲜玩意的到来,因为害怕机器会抢去他们的饭碗,使他们失去工作,但因为它优越的性能,终于被人们普遍接受。1812年,仅在法国已经装配了万余台,并通过英国传遍了西方世界,杰卡德也因此而被受予了荣誉军团十字勋章和金质奖章。
杰卡德提花编织机奏响了19世纪机器自动化的序曲。在伦敦出版的《不列颠百科全书》和中国出版的《英汉科技词汇大全》两部书中,“JACQUARD”(杰卡德)一词的词条下,英语和汉语的意思居然都是“提花机”,可见,杰卡德的名字已经与提花机融为了一体。杰卡德提花机的原理,即使到了电脑时代的今天,依然没有更大的改动,街头巷尾小作坊里使用的手工绒线编织机,其基本结构仍与杰卡德编织机大体相似。
此外,杰卡德编织机“千疮百孔”的穿孔卡片,不仅让机器编织出绚丽多彩的图案,而且意味着程序控制思想的萌芽,穿孔纸带和穿孔卡片也广泛用于早期电脑以存储程序和数据。或许,我们现在把“程序设计”俗称为“编程序”,就引申自编织机的“编织花布”的词义。
今天出版的许多计算机书籍扉页里,都登载着巴贝奇(C.Babbage)的照片:宽阔的额,狭长的嘴,锐利的目光显得有些愤世嫉俗,坚定的但绝非缺乏幽默的外貌,给人以一个极富深邃思想的学者形象。
巴贝奇是一位富有的银行家的儿子,1792年出生在英格兰西南部的托特纳斯,后来继承了相当丰厚的遗产,但他把金钱都用于了科学研究。童年时代的巴贝奇显示出极高的数学天赋,考入剑桥大学后,他发现自己掌握的代数知识甚至超过了教师。毕业留校,24岁的年青人荣幸受聘担任剑桥大学“路卡辛讲座”的数学教授。这是一个很少有人能够获得的殊荣,牛顿的老师巴罗是第一名,牛顿是第二名。在教学之余,巴贝奇完成了大量发明创造,如运用运筹学理论率先提出“一便士邮资”制度,发明了供火车使用的速度计和排障器等等。假若巴贝奇继续在数学理论和科技发明领域耕耘,他本来是可以走上鲜花铺就的坦途。然而,这位旷世奇才却选择了一条无人敢于攀登的崎岖险路。
事情还得从法国讲起。18世纪末,法兰西发起了一项宏大的计算工程——人工编制《数学用表》,这在没有先进计算工具的当时,是件极其艰巨的工作。法国数学界调集大批数学家,组成了人工手算的流水线,算得天昏地暗,才完成了17卷大部头书稿。即便如此,计算出的数学用表仍然存在大量错误。据说有一天,巴贝奇与著名的天文学家赫舍尔凑在一起,对两大部头的天文数表评头论足,翻一页就是一个错,翻两页就有好几处。面对错误百出的数学表,巴贝奇目瞪口呆,他甚至喊出声来:“天哪,这些计算错误已经充斥弥漫了整个宇宙!”
这件事也许就是巴贝奇萌生研制计算机构想的起因。巴贝奇在他的自传《一个哲学家的生命历程》里,写到了大约发生在1812年的一件事:“有一天晚上,我坐在剑桥大学的分析学会办公室里,神志恍惚地低头看着面前打开的一张对数表。一位会员走进屋来,瞧见我的样子,忙喊道:‘喂!你梦见什么啦?’我指着对数表回答说:‘我正在考虑这些表也许能用机器来计算!’”巴贝奇的第一个目标是制作一台“差分机”。所谓“差分”的含义,是把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算。那一年,刚满20岁的巴贝奇从法国人杰卡德发明的提花编织机上获得了灵感,差分机设计闪烁出了程序控制的灵光——它能够按照设计者的旨意,自动处理不同函数的计算过程。
巴贝奇耗费了整整十年光阴,于1822年完成了第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数,当即就演算出好几种函数表。由于当时工业技术水平极低,第一台差分机从设计绘图到机械零件加工,都是巴贝奇亲自动手完成。当他看着自己的机器制作出准确无误的《数学用表》,高兴地对人讲:“哪怕我的机器出了故障,比如齿轮被卡住不能动,那也毫无关系。你看,每个轮子上都有数字标记,它不会欺骗任何人。”以后实际运用证明,这种机器非常适合于编制航海和天文方面的数学用表。
成功的喜悦激励着巴贝奇,他连夜奋笔上书皇家学会,要求政府资助他建造第二台运算精度为20位的大型差分机。英国政府看到巴贝奇的研究有利可图,破天荒地与科学家签订了第一个合同,财政部慷慨地为这台大型差分机提供出1.7万英镑的资助。巴贝奇自己也贴进去1.3万英镑巨款,用以弥补研制经费的不足。在当年,这笔款项的数额无异于天文数字——有资料介绍说,1831年约翰·布尔制造一台蒸汽机车的费用才784英磅。
然而,第二台差分机在机械制造工厂里触上了“暗礁”。
第二台差分机大约有25000个零件,主要零件的误差不得超过每英寸千分之一,即使用现在的加工设备和技术,要想造出这种高精度的机械也绝非易事。巴贝奇把差分机交给了英国最著名的机械工程师约瑟夫·克莱门特所属的工厂制造,但工程进度十分缓慢。设计师心急火燎,从剑桥到工厂,从工厂到剑桥,一天几个来回。他把图纸改了又改,让工人把零件重做一遍又一遍。年复一年,日复一日,直到又一个10年过去后,巴贝奇依然望着那些不能运转的机器发愁,全部零件亦只完成不足一半数量。参加试验的同事们再也坚持不下去,纷纷离他而去。巴贝奇独自苦苦支撑了第三个10年,终于感到无力回天。
那天清晨,巴贝奇走进车间,偌大的作业场空无一人,只剩下满地的滑车和齿轮,四处一片狼藉。他呆立在尚未完工的机器旁,深深地叹了口气。在痛苦的煎熬中,他无计可施,只得把全部设计图纸和已完成的部分零件送进伦敦皇家学院博物馆供人观赏。1842年,在巴贝奇的一生中是极不平常的一年。英国政府宣布断绝对他的一切资助,连科学界的友人都用一种怪异的目光看着他。英国首相讥讽道:“这部机器的唯一用途,就是花掉大笔金钱!”同行们讥笑他是“愚笨的巴贝奇”。皇家学院的权威人士,包括著名天文学家艾瑞等人,都公开宣称他的差分机“毫无任何价值”……
就在痛苦艰难的时刻,孤独苦闷的巴贝奇意外地收到一封来信,写信人不仅对他表示理解而且还希望与他共同工作。娟秀字体的签名,表明了她不凡的身份——伯爵夫人。