帕斯卡计算机
作为现代计算机的先驱之一,帕斯卡计算机的历史意义体现在多个维度。
从机械科学的角度看,跳锤装置无疑是一项精巧的发明。
在数学上,补码的思想沿用至今。
在观念层面上,帕斯卡机的出现让计算的机械化、自动化成为可能,启发了之后的大批发明家、科学家。
帕斯卡对此也有充分认识,表示他的机器开辟了“除纸笔和算筹之外的第三种全新的计算方式”。
清华科学博物馆制作的帕斯卡计算器的互动模型
并在中展出
作者:王哲然
现任清华大学科学史系助理教授、科学博物馆研究复原项目组负责人。
1642年,年仅19岁的法国数学家、物理学家、哲学家布莱兹·帕斯卡(Blaise Pascal, 1623-1662年)发明了一种机械计算机,它能够实现自动进位,可进行加减乘除四种运算,史称“帕斯卡计算机”(Pascal’s arithmetic machine, 也被称为Pascaline,下文简称帕斯卡机)。帕斯卡机享有诸多“第一”:它是第一台投入生产的计算机、第一台商用计算机、第一台受专利保护的计算机、第一台被写入百科全书的计算机等等,其历史价值不言而喻。
图1 8位会计型帕斯卡机
01
研发之路
帕斯卡研发计算机的初衷,是为了减轻父亲繁重的税务计算负担。
当时,法国流通三种货币单位:里弗(livre)、苏(sol)、德尼厄尔(denier),1里弗等于20苏,1苏等于12德尼厄尔,这极大增加了财税工作的计算量和复杂度。帕斯卡的计算机从设想到定型,至少经历三代大幅改进:“如果您想了解这台机器的发明,我可以欣然地告诉您,它目前呈现的样子,和我一开始的尝试截然不同。最初的那台机器,无论在材料还是形式上,都与现在的不同,尽管很多人会喜欢它,但它并不能令我完全满意。在不断改进它的过程中,我不知不觉中又制作出了第二种类型,但我依然觉得不够方便,无法接受。为了加以修正,我又设计了第三种,它带有簧片(ressorts),结构上也非常简单。……在很多人的要求下,我用它运行了好几次,始终运转良好。”
帕斯卡画像(来自网络)
帕斯卡对第三代机型整体上满意,但这并不是研究的终止,而是持续完善的开始。他发现机器依然面临各种各样的小问题,比如操作困难、运转不顺畅、由于天气(应该主要是温度变化)和运输过程造成的失灵,等等。对此,他逐一寻找问题的根源和解决办法:“我怀着极大的耐心,制作了大概五十多个模型(modèles),它们全都不同,有的用木头、有的用象牙和乌木,有的用铜,才最终有了现在这个机器的样子。”
帕斯卡的设计思路能够迅速落地,转化为模型,显然得到了当地工匠的支持。他写道:“要不是得益于一位工人的帮助,我的一切理论设想都无法实现,他的手艺极其高超,按照我告诉他的尺寸和比例,用锉刀和锤子,把机器的零件一一加工出来。”与帕斯卡合作的工人不止一人,不过,他并没有提及他们的名字或所属行会。但不难猜想,这些工人应该来自金匠或钟表作坊。
帕斯卡和工匠的关系是微妙的。研发道路上的种种困难没有将其击垮,而击垮他的恰恰是工匠。根据他的记载,就在研发进行了几个月之后,鲁昂街头已经出现了仿品。这是一位钟表匠在他的模型基础上制造的一台类似的机器:“他(指这位表匠)除了熟练操弄工具外毫无才华,缺乏几何学和机械学知识,……,他不过制作了一件无用的玩意儿,表面看上去是真的,外表打磨得也不错,但内部结构很差,根本无法使用。”他接着写道,当时人们并不了解这台机器的用途,只是觉得新奇,一位收藏家甚至将它买下,放到了自己的珍奇屋里。整件事让帕斯卡感觉异常绝望,甚至产生了放弃的想法:“这个小怪胎(cepetit avorton)的出现,让我灰心到了极点,继续完成模型的热情顿时冷却了,我遣散了所有的工人(tous les ouvriers,表明与他合作的工匠不止一个),决定放弃整个计划,因为我意识到,还会出现这样胆大妄为的人,他们会利用这个新想法制造仿冒品,在公众面前摧毁这个新生事物的使用价值。”
通过这段自白不难发现,在研究计算机的过程中,帕斯卡的动机已经发生了转变。如果研制计算机仅仅是为了帮助父亲解决税务计算上的麻烦,他大可继续完成发明,而不必理会他人拙劣的仿制品。显然,此时帕斯卡已经将计算机当作了自己智力劳动的结晶,剽窃行为不仅让他深受侮辱,而且将会摧毁人们对于计算机器这种新事物的信心(当然,也会直接影响帕斯卡机未来的销路)。
帕斯卡不知道的是,一个多世纪前佛罗伦萨和威尼斯的工匠们,已经发展出了某种制度性的保障,以确保这种智力劳动(如今被称为“知识产权”)不会被随意侵犯。好在当时法国的大法官塞吉耶知道这种专利保护制度。帕斯卡的朋友送给了他一台样机,他十分喜欢,鼓励帕斯卡进一步改良机器,并承诺在法律上给予新发明保护。正是有了这一承诺,帕斯卡才得以继续计算机的开发工作。这也是他专门写了一篇致塞吉耶的献词的原因。1649年5月22日,“特许状”正式颁布。它规定,未经帕斯卡本人允许,任何工匠不得擅自仿制该机器或制作类似的改进机型,外国人也不得在法国土地上出售或展示该机器,违者将处以3000里弗的罚款,其中的三分之一归帕斯卡所有。帕斯卡应该是最初拥有现代意义上发明专利的学者之一,而帕斯卡机也成为了第一台受到专利保护的计算机,它的研发过程无意中推动了现代专利制度的完善。
图2 加隆《皇家科学院批准的机械与发明》
第四卷中介绍帕斯卡机的插图
帕斯卡本人关于其计算机共留下两篇文字作品。其中最著名的一本小册子由三部分组成,第一部分是一篇献词,就是献给当时法国的大法官皮埃尔·塞吉耶(Pierre Seguier, 1588—1672年)。正是在塞吉耶的支持下,帕斯卡机获得了专利保护,使研制工作得以继续。
第二部分通常被简称为“必要说明”(avis nécessaire),是这本小册子的核心部分。帕斯卡在其中讲述了发明的坎坷过程,介绍了计算机的基本功能。不过,或许是出于保密的考虑,帕斯卡并没有提供对计算机外形、结构、原理方面的详细解释,也没有附上任何插图。因此,“必要说明”既不是一篇学术论文,也不是产品说明书,而更像是一份广告。几乎每段都以亲切的语气——“我亲爱的读者”(cher lecteur)开头。在这份广告的结尾,他告诉感兴趣的读者,每周六,可以到巴黎的富万大街(rue du Foin)、热尔韦大师学院(Collègede maître Gervais)数学教授罗贝瓦尔[9]的公寓见到这些机器,教授本人会亲自讲解使用方法。第三部分是一份“国王特许状”(Privilège du Roi, pour la Machine Arithmétique),即帕斯卡机的专利证明文件。
此外,帕斯卡曾赠送给瑞典女王克里斯蒂娜(Christina, 1626–1689年;1632–1654年在位)一台计算机,并附上一封信。这封信篇幅不长,充满了对女王的溢美之词。帕斯卡表示,写这封信如同“给这项成就加冕,是这次冒险经历最后的高兴事。”他同时写道,“唯恐殿下您劳神,故这封信并不会谈及机器的构造,您若是有兴趣,请参考我写给布尔德罗先生的一篇‘笔谈’(Discours),其中我简要介绍了这项工作的全部历史、发明的目标、研究的机遇、簧片的用途、开发的艰辛、各阶段的进展、最终的成功以及使用的规则。”然而不幸的是,这篇“笔谈”早已遗失不存。
总体而言,帕斯卡关于自己的发明所写的文字并不多,且只有“必要说明”具有一定的科学史研究价值。在当时,由于造价昂贵,帕斯卡机虽然量产但是并没有卖出几台。到了1650年代初,帕斯卡完全放弃了对计算机的研究。据《百科全书》介绍,18世纪初,一位叫德·波提丰多(de Boiftiffandeau)的人也发明并制作过类似的机器。但总体而言,帕斯卡机在17、18世纪并不流行,其启发性远大于实用性。
02
机械结构
帕斯卡声称制造过至少50台样机,如今保存下来6台。法国巴黎工艺博物馆(The Musée des Arts et Métiers)收藏三台,其中两台为8位会计型、一台6位算术型。帕斯卡故乡克莱蒙费朗市的亨利·勒科克博物馆(MuséeHenri Lecoq)收藏两台,一台袖珍式5位会计型、一台8位算术型。此外,还有一台10位会计型,收藏于德国德累斯顿市的数学物理沙龙博物馆(Mathematisch-Physikalischer Salon)。以下对机械结构的分析,均参考自文本资料中所提及的路易·佩里捐赠、现藏于巴黎工艺博物馆的那台8位会计型计算机(见图1),并且为了简洁,下文只考虑十进制的情况。
帕斯卡机整体呈长方形,显示和输入数字都在机器的上表面。下面的讨论以最简单的6位算术式机型为例(见图3)。机器的上半部分是数字显示区域,每只数字鼓一次只露出一个数字,另一个数字被一个遮挡条C盖住,遮挡条C可以上下移动。图3目前是加法计算状态,如果想计算减法,则需要将遮挡条C下移,露出数字鼓上排的补码。每个数字下方对应的是输入盘。盘面上的一圈数字和下方的小挡针固定在机器表面,无法移动。输入数字需要使用一根具有尖端的笔,插入轮盘“辐条”的凹槽内,顺时针转动。具体的操作和计算方法将在后文详细说明,这里先讨论机器内部的机械结构。
图3 帕斯卡机的操作界面
帕斯卡机每个数位的齿轮组结构基本相同,因此只需要说明其中一套齿轮组即可。见图4,这是一个数位的完整齿轮结构的剖面图。大体上说,一套齿轮组分为三个部分,从右至左分别为:输入区I、进位区II、输出区III。
通过四个齿轮的轮动,输入区输入的数值可以直接传递到输出区:上方水平方向的齿轮G1随着输入盘转动,驱动下方垂直的齿轮G2运动。齿轮G2和输出区的齿轮G4固定在同一个轴上,使输入的信息(即转动的角度)经过齿轮G4,传递给齿轮G5,最后实现数字鼓D的转动。
帕斯卡机最实用的功能是自动进位,进位区是整台机器最复杂、也是最精妙的部分。简单来说,进位的机制是这样的:进位区的齿轮G3也和G4连接在同一个轴上,这样,只要G3每转动一格(36°),就会带动G4转动一格,实现进位。显然,推动G3的力来自于低一位的齿轮,而连接两个相邻数位齿轮,实现运动传递就是跳锤装置。跳锤包含三个主要部分:位于齿轮G3背后、具有凹槽的支撑体S;位于G3正面、推动其齿条运动的棘爪P;调节棘爪开合角度的簧片R。
图4 帕斯卡机的内部结构剖面图
我们用图5来说明跳锤的运动。需要注意的是,图5上的部件并非处于同一个平面上(参考图4),我们用深灰色代表齿轮G3背面的部分,用浅灰色代表G3正面的结构。齿轮g2来自比G3低一级数位的齿轮组,故用小写字母表示,以示区别。状态一(图5-i):当g2所在数位的输出鼓显示为0-3时,跳锤处于垂落的静止状态,棘爪P停留在起阻挡作用的立柱O上。状态二(图5-ii):当g2所在数位的输出鼓显示为4-9时,g2背面的齿针m, n开始推起支撑体S,使跳锤向上运动,此时棘爪P会轻轻刮过G3上的齿条T,但由于重锤W的固定作用,G3并不会逆时针转动。状态三(图5-iii):当g2所在数位从9拨动到0时,g2背面的齿针n恰好与支撑体S分离,跳锤开始在重力的作用下“跳”落。由于簧片R的弹力,棘爪P此时轻微回勾,在下落途中恰好“踢”到G3上的齿条T,从而推动G3顺时针转动一格(36°)。
图5 跳锤的运动
跳锤装置的意义在于,它使进位仅仅发生在相邻的两个数位的齿轮组之间,而不牵扯其他数位。这与席卡徳机进位的机械机制是不同的。按照席卡徳的设计,每个数位齿轮上的9和0位之间有个突出的小齿,它可以推动下一个齿轮运动,实现进位。但如此一来,所有齿轮都是相互勾连的。直观来讲,用席卡徳机计算“99999+1”会相对困难,因为此时需要用一个齿轮同时推动四个齿轮运动,不仅费力,也容易导致机器损坏。而在帕斯卡机上,计算“99999+1”和“9+1”是等效的,因为每个数位上的跳锤都作独立运动,齿轮间形成多米诺骨牌效应,从而实现连续进位。帕斯卡在“必要说明”中也指出,在理论上,他的计算机可以装配成千上万组齿轮,它们可以同时运动,效果和一组齿轮是相同。
在计算机的设计上,帕斯卡颇有远见,他写道:“你会注意到一个悖论,要想操作起来越简单,机器本身的运动就会越复杂。”现代计算机的软件开发正是遵循了类似的标准,即通过复杂的程序架构,换取简洁友好的用户界面。下面,我们就来看看帕斯卡机是如何进行运算操作的。
03
使用方法
先说加法运算,这是帕斯卡最基本的功能,操作上也最简单。以“86+34”为例(见图6),首先确保显示位的各个数字全部为0,这是初始状态(图6-i)。首先,在十位输入8,这时需将笔尖插入输入轮数字8对应的凹槽,顺时针转动输入轮,直到笔尖触碰到挡针,无法继续转动为止(图上的实心圆点代表笔尖转动的起始位置,空心圆点代表转动终点位置,下同)。同理,在个位输入数字6。这样,86就显示在了数字鼓上(图6-ii)。按照同样的办法,在输入轮上依次输入3和4,便得到了最后的结果120(图6-iii)。在这次运算中,机器自动完成了从个位到十位、从十位到百位的两次自动进位。
图6 帕斯卡机加法运算操作示意图
帕斯卡机做减法运算用到了所谓的补码运算。之所以引入补码,是由于跳锤装置的使用,导致机器齿轮只能顺时针转动。补码的功能便是将减法运算转变为加法运算。这是帕斯卡的又一巨大创造。事实上,现代电子计算机的减法运算,也是通过二进制补码方式实现的。
十进制的补码被称为“9位补码方式”(9'scomplement),因为一个数的补码,总是通过所有数位上均为9的数减去该数得到,比如3的补码等于9减3,为6。补码的减法计算规则是,a-b的补码等于a的补码加b,比如6-2的补码,等于6的补码3加2,等于5。5是6-2补码,再求5的补码,得4,这就是6-2本身的结果。用公式表示以上规则,对于具有n位的十进制自然数a、b而言,即:
理解了上述规则,就不难利用帕斯卡机进行减法运算。以计算714-386为例。第一步,依然将计算机各数位归零,然后将遮挡条滑下,显示出数字鼓上排的补码,这时补码位显示为999(图7-i)。先输入被减数714,此时,实际输入的是714的补码285。不过,我们并不需要心算补码,而只需要将笔尖插入到数字轮9对应的凹槽(即两边带有标记的凹槽位置),将其转动到想要输入的数字位置上即可。比如,百位数应输入7,这时将笔尖插入9位,顺时针将转盘转动到7这个位置,转盘转动了2格(72°),正好得到补码7,这种输入技巧本质上还是利用了补码的原理。其他数位以此类推,这样数字鼓上就得到了714。接着再输入减数386。通过上面公式可知,此时实际的运算是714的补码285加386,因此,只需要按加法的输入方式,在每一位依次输入3、8、6即可(图7-ii)。最后,得到减法运算的结果328(图7-iii)。
图7 帕斯卡机减法运算操作示意图
乘除运算是以加减运算为基础的。狄德罗在《百科全书》的辞条中认为,乘除运算是通过反复进行加减的计算得到的,他给出的例子是计算1245×3。仅就这道题目而言,连续输入3次1245是相对简单的。但这个例子不具有代表性,如计算37×42,就需要将42反复输入37次,既费时费力,又容易产生错误。按1982年新发现手稿“机器的使用”的思路,乘法运算不必这样繁琐,但需要借助算筹或心算,本质上和我们如今列竖式计算乘法的方式类似,帕斯卡机将起到记录与加和的辅助作用。依然以37×42为例,先用42的个位2乘以37的个位7,在机器上输入14,再用2乘以37的十位3,在机器输入60。类似地,再以42的十位4分别乘以3和7,得到1200和280,输入机器,最后得到1554。如此以来,只需要牢记个位数的乘法口诀,结合帕斯卡机,便可以极大简化乘法运算。除法运算的规则与此大同小异,篇幅所限,不再详述。
最后介绍帕斯卡机归零的办法,这也是1982年手稿首次揭露的信息。归零操作的关键是利用了输入轮上带有标记的凹槽。以图7为例,机器这时显示为671,如要归零,需要将笔尖插入每个输入轮上带有标记的凹槽,依次将其转动到挡针的位置(图7-i)。经此一顿操作后,机器显示为999,此时,只需要拨动个位输入盘任意一格(图7-ii),机器便会通过连续进位的方式,实现自动归零(图7-iii)。显然,若不按上述这种方法,仅靠观察数字鼓上实际显示的数字,也可以完成归零操作。然而,本文认为,手稿中提到的这种归零操作,对于理解帕斯卡机具有特别重要的意义。
结合上述使用方法,我们不难发现,输入盘、标记凹槽、数字轮、挡针四个部件是经过精心设计的,目的是在输入和归零的过程中,操作者无需反复抬眼观看数字鼓上的数字,他只用注视输入盘,待所有运算都结束后,再需要记录下数字鼓上的结果即可。这样的设计无疑大大提高了帕斯卡机的工作效率。
图7 帕斯卡机归零操作示意图
04
结语
作为现代计算机的先驱之一,帕斯卡机的历史意义体现在多个维度。从机械科学的角度看,跳锤装置无疑是一项精巧的发明。在数学上,补码的思想沿用至今。在观念层面上,帕斯卡机的出现让计算的机械化、自动化成为可能,启发了之后的大批发明家、科学家。帕斯卡对此也有充分认识,表示他的机器开辟了“除纸笔和算筹之外的第三种全新的计算方式”。
此外,在研发模式上,帕斯卡机也开创了学者与工匠合作的全新方式,标志着科学与技术深度融合的开始。以当代人的观点看,科学理论指导技术实践是再正常不过的事,但在17世纪,这种全新的“科技”概念才刚刚兴起。在漫长的古代和中世纪,学者的理论思辨和工匠的技术实践基本是平行发展的两条线,除了建筑、天文、大地测量等极少领域,纯粹的理论研究多为哲学式的思辨,很少关注实践应用;而技术革新主要靠工匠们的反复试错,几乎不需要理论帮助。
简言之,理论知识和实用知识属于两类鲜有交集的知识体系,在古典时期,这种差别体现为“知识”(epistemē)与“技艺”(technē)的区分;在中世纪体现为“自由技艺”(artesliberales)与“机械技艺”(artes mechanica)的区分。
然而,在帕斯卡看来,他的计算机是“理论与技艺联姻”(alliance de la théorie avec l'art)的产物。他认为,正是几何学、物理学和机械学赋予了他设计上的灵感。虽然模型的制作离不开工匠,但“由于机器的运动极其复杂,所有普通的工匠(tous les simples artisans),无论他们的技艺多么高超,都决不可能改良哪怕一个零件,除非得到掌握理论规律(les règles de la théorie)的人的帮助。”
帕斯卡已经预见到,未来的机器将会变得越来越精密复杂,那种凭借工匠的一双巧手,“不断摸索”(travaillent en tâtonnant)便可以改进、甚至发明新机器的时代,已经一去不返了。在理论与技术相互依赖、彼此交融的过程中,二者的边界将变得日益模糊:“对于一项新发明而言,技艺必须得到理论的帮助,直到这些理论规律变得习以为常,并最终成为技艺,只有在持续反复的使用中,工匠们才将自信地遵从和实践这些规律,形成习惯。”
可以说,帕斯卡已经窥见了现代技术的一项核心特征,即任何技术发明,从构思酝酿到更新迭代,都离不开理性的先行筹划,理论知识将在发明中扮演不可或缺的决定性作用。这也同时意味着理论探索作为一种纯粹的智力劳动,必须得到尊重和保护,只有这样,才能激励人们不断创造新的发明。因此,帕斯卡机的研制体现了17世纪以来科学与技术相融合的基本趋势,进而促进了专利制度的完善,这也是它在更宽泛意义上的科技史研究的价值所在。
(本文原载于《自然科学博物馆研究》
2020年第2期,编辑有所删减)
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.