计算工具的发展简史现在我们所说的计算机,其全称是通用电子数字计算机,“通用”是指计算机可服务于多种用途,“电子”是指计算机是一种电子设备,“数字”是指在计算机内部一切信息均用0和1的编码来表示。计算机的出现是20世纪最卓越的成就之一,计算机的广泛应用极大地促进了生产力的发展。自古以来,人类就在不断地发明和改进计算工具,从古老的“结绳记事”,到算盘、计算尺、差分机,直到1946年第一台电子计算机诞生,计算工具经历了从简单到复杂、从低级到高级、从手动到自动的发展过程,而且还在不断发展。回顾计算工具的发展历史,从中可以得到许多有益的启示。1.手动式计算工具人类最初用手指进行计算。人有两只手,十个手指头,所以,自然而然地习惯用手指记数并采用十进制记数法。用手指进行计算虽然很方便,但计算范围有限,计算结果也无法存储。于是人们用绳子、石子等作为工具来延长手指的计算能力,如中国古书中记载的“上古结绳而治”,拉丁文中“Calculus”的本意是用于计算的小石子。最原始的人造计算工具是算筹,我国古代劳动人民最先创造和使用了这种简单的计算工具。算筹最早出现在何时,现在已经无法考证,但在春秋战国时期,算筹使用的已经非常普遍了。根据史书的记载,算筹是一根根同样长短和粗细的小棍子,一般长为13~14cm,径粗0.2~0.3cm,多用竹子制成,也有用木头、兽骨、象牙、金属等材料制成的,如图1所示。算筹采用十进制记数法,有纵式和横式两种摆法,这两种摆法都可以表示1、2、3、4、5、6、7、8、9九个数字,数字0用空位表示,如图2所示。算筹的记数方法为:个位用纵式,十位用横式,百位用纵式,千位用横式,……,这样从右到左,纵横相间,就可以表示任意大的自然数了。图1算筹图2算筹的摆法图3算盘图4纳皮尔算筹计算工具发展史上的第一次重大改革是算盘,也是我国古代劳动人民首先创造和使用的。算盘由算筹演变而来,并且和算筹并存竞争了一个时期,终于在元代后期取代了算筹。算盘轻巧灵活、携带方便,应用极为广泛,先后流传到日本、朝鲜和东南亚等国家,后来又传入西方。算盘采用十进制记数法并有一整套计算口诀,例如“三下五除二”、“七上八下”等,这是最早的体系化算法。算盘能够进行基本的算术运算,是公认的最早使用的计算工具。1617年,英国数学家约翰·纳皮尔(JohnNapier)发明了Napier乘除器,也称Napier算筹,如图4所示。Napier算筹由十根长条状的木棍组成,每根木棍的表面雕刻着一位数字的乘法表,右边第一根木棍是固定的,其余木棍可以根据计算的需要进行拼合和调换位置。Napier算筹可以用加法和一位数乘法代替多位数乘法,也可以用除数为一位数的除法和减法代替多位数除法,从而大大简化了数值计算过程。1621年,英国数学家威廉·奥特雷德(WilliamOughtred)根据对数原理发明了圆形计算尺,也称对数计算尺。对数计算尺在两个圆盘的边缘标注对数刻度,然后让它们相对转动,就可以基于对数原理用加减运算来实现乘除运算。17世纪中期,对数计算尺改进为尺座和在尺座内部移动的滑尺。18世纪末,发明蒸汽机的瓦特独具匠心,在尺座上添置了一个滑标,用来存储计算的中间结果。对数计算尺不仅能进行加、减、乘、除、乘方、开方运算,甚至可以计算三角函数、指数函数和对数函数,它一直使用到袖珍电子计算器面世。即使在20世纪60年代,对数计算尺仍然是理工科大学生必须掌握的基本功,是工程师身份的一种象征。图5所示是1968年由上海计算尺厂生产的对数计算尺。图5对数计算尺2.机械式计算工具17世纪,欧洲出现了利用齿轮技术的计算工具。1642年,法国数学家帕斯卡(BlaisePascal)发明了帕斯卡加法器,这是人类历史上第一台机械式计算工具,其原理对后来的计算工具产生了持久的影响。如图6所示,帕斯卡加法器是由齿轮组成、以发条为动力、通过转动齿轮来实现加减运算、用连杆实现进位的计算装置。帕斯卡从加法器的成功中得出结论:人的某些思维过程与机械过程没有差别,因此可以设想用机械来模拟人的思维活动。德国数学家莱布尼茨(G.W.Leibnitz)发现了帕斯卡一篇关于“帕斯卡加法器”的论文,激发了他强烈的发明欲望,决心把这种机器的功能扩大为乘除运算。1673年,莱布尼茨研制了一台能进行四则运算的机械式计算器,称为莱布尼兹四则运算器,如图7所示。这台机器在进行乘法运算时采用进位-加(shift-add)的方法,后来演化为二进制,被现代计算机采用。图6帕斯卡加法器图7莱布尼茨四则运算器莱布尼茨四则运算器在计算工具的发展史上是一个小高潮,此后的一百多年中,虽有不少类似的计算工具出现,但除了在灵活性上有所改进外,都没有突破手动机械的框架,使用齿轮、连杆组装起来的计算设备限制了它的功能、速度以及可靠性。1804年,法国机械师约瑟夫·雅各(JosephJacquard)发明了可编程织布机,通过读取穿孔卡片上的编码信息来自动控制织布机的编织图案,引起法国纺织工业革命。雅各织布机虽然不是计算工具,但是它第一次使用了穿孔卡片这种输入方式。如果找不到输入信息和控制操作的机械方法,那么真正意义上的机械式计算工具是不可能出现的。直到20世纪70年代,穿孔卡片这种输入方式还在普遍使用。19世纪初,英国数学家查尔斯·巴贝奇(CharlesBabbage)取得了突破性进展。巴贝奇在剑桥大学求学期间,正是英国工业革命兴起之时,为了解决航海、工业生产和科学研究中的复杂计算,许多数学表(如对数表、函数表)应运而生。这些数学表虽然带来了一定的方便,但由于采用人工计算,其中的错误很多。巴贝奇决心研制新的计算工具,用机器取代人工来计算这些实用价值很高的数学表。1822年,巴贝奇开始研制差分机,专门用于航海和天文计算,在英国政府的支持下,差分机历时10年研制成功,这是最早采用寄存器来存储数据的计算工具,体现了早期程序设计思想的萌芽,使计算工具从手动机械跃入自动机械的新时代。1832年,巴贝奇开始进行分析机的研究。在分析机的设计中,巴贝奇采用了三个具有现代意义的装置:⑴存储装置:采用齿轮式装置的寄存器保存数据,既能存储运算数据,又能存储运算结果;⑵运算装置:从寄存器取出数据进行加、减、乘、除运算,并且乘法是以累次加法来实现,还能根据运算结果的状态改变计算的进程,用现代术语来说,就是条件转移;⑶控制装置:使用指令自动控制操作顺序、选择所需处理的数据以及输出结果。巴贝奇的分析机是可编程计算机的设计蓝图,实际上,我们今天使用的每一台计算机都遵循着巴贝奇的基本设计方案。但是巴贝奇先进的设计思想超越了当时的客观现实,由于当时的机械加工技术还达不到所要求的精度,使得这部以齿轮为元件、以蒸汽为动力的分析机一直到巴贝奇去世也没有完成。图8巴贝奇差分机3.机电式计算机1886年,美国统计学家赫尔曼·霍勒瑞斯(HermanHollerith)借鉴了雅各织布机的穿孔卡原理,用穿孔卡片存储数据,采用机电技术取代了纯机械装置,制造了第一台可以自动进行加减四则运算、累计存档、制作报表的制表机,这台制表机参与了美国1890年的人口普查工作,使预计10年的统计工作仅用1年零7个月就完成了,是人类历史上第一次利用计算机进行大规模的数据处理。霍勒瑞斯于1896年创建了制表机公司TMC公司,1911年,TMC与另外两家公司合并,成立了CTR公司。1924年,CTR公司改名为国际商业机器公司(InternationalBusinessMachinesCorporation),这就是赫赫有名的IBM公司。1938年,德国工程师朱斯(K.Zuse)研制出Z-1计算机,这是第一台采用二进制的计算机。在接下来的四年中,朱斯先后研制出采用继电器的计算机Z-2、Z-3、Z-4。Z-3是世界上第一台真正的通用程序控制计算机,不仅全部采用继电器,同时采用了浮点记数法、二进制运算、带存储地址的指令形式等。这些设计思想虽然在朱斯之前已经提出过,但朱斯第一次将这些设计思想具体实现。在一次空袭中,朱斯的住宅和包括Z-3在内的计算机统统被炸毁。德国战败后,朱斯流亡到瑞士一个偏僻的乡村,转向计算机软件理论的研究。图9制表机用于美国人口普查图10Z系列计算机1936年,美国哈佛大学应用数学教授霍华德·艾肯(HowardAiken)在读过巴贝奇和爱达的笔记后,发现了巴贝奇的设计,并被巴贝奇的远见卓识所震惊。艾肯提出用机电的方法,而不是纯机械的方法来实现巴贝奇的分析机。在IBM公司的资助下,1944年研制成功了机电式计算机Mark-I。Mark-I长15.5米,高2.4米,由75万个零部件组成,使用了大量的继电器作为开关元件,存储容量为72个23位十进制数,采用了穿孔纸带进行程序控制。它的计算速度很慢,执行一次加法操作需要0.3秒,并且噪声很大。尽管它的可靠性不高,仍然在哈佛大学使用了15年。Mark-I只是部分使用了继电器,1947年研制成功的计算机Mark-Ⅱ全部使用继电器。图11Mark-I艾肯等人制造的机电式计算机,其典型部件是普通的继电器,继电器的开关速度是1/100秒,使得机电式计算机的运算速度受到限制。20世纪30年代已经具备了制造电子计算机的技术能力,机电式计算机从一开始就注定要很快被电子计算机替代。事实上,电子计算机和机电式计算机的研制几乎是同时开始的。4.电子计算机1939年,美国依阿华州大学数学物理学教授约翰·阿塔纳索夫(JohnAtanasoff)和他的研究生贝利(CliffordBerry)一起研制了一台称为ABC(AtanasoffBerryComputer)的电子计算机。由于经费的限制,他们只研制了一个能够求解包含30个未知数的线性代数方程组的样机。在阿塔纳索夫的设计方案中,第一次提出采用电子技术来提高计算机的运算速度。第二次世界大战中,美国宾夕法尼亚大学物理学教授约翰莫克利(JohnMauchly)和他的研究生普雷斯帕埃克特(PresperEckert)受军械部的委托,为计算弹道和射击表启动了研制ENIAC(ElectronicNumericalIntegratorandComputer)的计划,1946年2月15日,这台标志人类计算工具历史性变革的巨型机器宣告竣工。ENIAC是一个庞然大物,共使用了18000多个电子管、1500多个继电器、10000多个电容和7000多个电阻,占地167平方公尺,重达30吨。ENIAC的最大特点就是采用电子器件代替机械齿轮或电动机械来执行算术运算、逻辑运算和存储信息,因此,同以往的计算机相比,ENIAC最突出的优点就是高速度。ENIAC每秒能完成5000次加法,300多次乘法,比当时最快的计算工具快1000多倍。ENIAC是世界上第一台能真正运转的大型电子计算机,ENIAC的出现标志着电子计算机(以下称计算机)时代的到来。虽然ENIAC显示了电子元件在进行初等运算速度上的优越性,但没有最大限度地实现电子技术所提供的巨大潜力。ENIAC的主要缺点是:第一,存储容量小,至多存储20个10位的十进制数;第二,程序是“外插型”的,为了进行几分钟的计算,接通各种开关和线路的准备工作就要用几个小时。新生的电子计算机需要人们用千百年来制造计算工具的经验和智慧赋予更合理的结构,从而获得更强的生命力。1945年6月,普林斯顿大学数学教授冯诺依曼(VonNeumann)发表了EDVAC(ElectronicDiscreteVariableComputer,离散变量自动电子计算机)方案,确立了现代计算机的基本结构,提出计算机应具有五个基本组成成分:运算器、控制器、存储器、输入设备和输出设备,描述了这五大部分的功能和相互关系,并提出“采用二进制”和“存储程序”这两个重要的基本思想。迄今为止,大部分计算机仍基本上遵循冯诺依曼结构。需要强调的是,EDVAC方案是集体智慧的结晶,冯诺依曼的伟大功绩在于他运用雄厚的数理知识和非凡的分析、综合能力,在EDVAC的总体配置和逻辑设计中起到了关键的作用。可以说,现代计算机的发明决不是仅凭杰出科学家的个人努力就能完成的事业,研制电子计算机不仅需要巨大