看两百年前的“神机妙算”
“神机妙算——计算器具历史展”巴贝奇展板
清华大学科学博物馆复原的巴贝奇差分机2号计算模型
近日,“神机妙算——计算器具历史展”在清华大学科学博物馆开展。展览中重现了计算机之父查尔斯·巴贝奇的传奇人生与其精妙的设计。
查尔斯·巴贝奇出生于英国伦敦,他的父亲是舰队街上的一名银行合伙人。巴贝奇虽然天资聪颖,但是从小体弱多病,不得不辗转多地求学。在家庭教师的帮助下,巴贝奇在十几岁时就掌握了当时几乎所有的大学数学课程。父亲希望他子承父业,把优秀的数学天分应用在金融领域,而年轻的巴贝奇则坚定地投身于科研事业。
1810年10月,19岁的巴贝奇进入了群英荟萃的剑桥大学三一学院,成为了培根和牛顿的校友。出于对数学的强烈兴趣,1812年,巴贝奇与包括约翰·赫歇尔的在内的几位同学一同创办了名为“分析学会”的数学社团,致力于推广莱布尼茨的微积分符号系统。而约翰·赫歇尔正是大天文学家威廉·赫歇尔的儿子,日后也成为了一名出色的天文学家。同年,巴贝奇转学至剑桥大学彼得豪斯学院,并因为解决了一系列天文领域的计算问题,成为了名誉全国的数学家。1819年,在著名天文学家拉普拉斯的推荐下,巴贝奇被爱丁堡大学聘为教授。
年轻的巴贝奇雄心勃勃,他的理想不仅限于成为一名单纯的数学家。在1824年,皇家天文学会将代表最高荣誉的金质奖章授予巴贝奇,以表彰他超越时代的伟大发明,一种高度自动化蒸汽动力的机械计算机械——差分机。
差分机的发明背景要从法国大革命说起,君主制被推翻后,新成立的国民议会大刀阔斧地推进多方改革,其中一项很重要的工作就是统一全国混乱不堪的度量衡。原本的《数学用表》不再适用,需要重新编制。1791年,法国数学家普罗尼接下了这份艰巨的任务。普罗尼采取了顶级数学家、普通数学家和基层计算人员三级的分工系统,完成了足有17卷大部头书稿。然而遗憾的是,这份完全由人工制作的《数学用表》还是错误频发,没能完成最初的设想。
法国数学家制表工作的失败引发了“分析学会”会员们热烈的讨论,一些会员试图寻找一种比法国人更加高效的计算方法。而巴贝奇进行了更加深入的反思,占据整个制表工作绝大多数的基层计算人员需要进行大量的简单重复计算工作,他们在长期的枯燥工作中很难避免计算错误。在目前的工作模式下,只要基层的计算工作始终无法摆脱人力,无论数学家们如何优化算法,都无法消除计算错误。因此巴贝奇认为,唯一行之有效的方法就是用机器取代人工。巴贝奇从法国人杰卡德发明的提花编织机上获得了灵感,他想要发明一种机器,它不仅能够实现固定的计算功能,更能按照设计者的需要,自动处理不同的函数计算。1822年6月14日,巴贝奇向皇家天文学会递交了一篇名为《论机械在天文及数学用表计算中的应用》的论文,差分机的概念正式问世。
也正是从1822年开始,在英国政府的支持下,巴贝奇开始了差分机1号的设计和制造。局限于当时的工艺水平,以蒸汽为动力的差分机1号最终成为了一个高10英尺高,宽10英尺,长5英尺,重达2吨的庞然大物。尽管巴贝奇不断修改设计图纸,力求提升完成进度,但是差分机1号在10年间仅完成了整体设计的七分之一。英国政府做了一次清算,发现整个计划一共花掉了17500英镑,这差不多相当于22台蒸汽机车或者2艘战舰的价格。最终,高昂的造价和渺茫的应用前景使得英国政府停止了对该项目的资金支持。
10年设计与制造差分机的经验让巴贝奇有了设计更强大机器的能力,他构想出了一种机械结构更加精密复杂的分析机。按照巴贝奇的设计,这台分析机能够使用多项式展开的方法计算对数和三角函数,并完成类似汇编语言的程序指令,这已经具备现代计算机的基本雏形了。尽管巴贝奇倾尽家产,为差分机项目补贴了1.3万英镑,但由于缺乏政府的持续支持,以及研制进度始终无法取得突破,导致他的研究团队逐步解散,巴贝奇走进了他人生中的至暗时刻。
故事的转折发生在1833年,一位名为艾达·洛夫莱斯的年轻贵族女性被她的老师介绍给了巴贝奇。艾达出身名门,是大名鼎鼎的英国诗人拜伦勋爵的女儿。身为伯爵夫人的她虽然年轻,但却拥有卓越的数学才能。
1842—1843年,艾达花了9个月的时间将意大利数学家路易吉·米那比亚讲述巴贝奇分析机的论文《关于巴贝奇先生发明的分析机简讯》翻译成了英文。在巴贝奇的建议和鼓励下,艾达在翻译的过程中扩充了很多自己的理解,最终留下的注释篇幅足有原文的两倍。在这些注释中,艾达强调了分析机和以往所有的机械计算器存在着根本性的差别,它具有编程能力,这意味着它并不仅仅是一种机械计算器,更是一种跨时代的机械计算机。艾达认为,编程能力将使这台机器的应用潜力远远超出单纯的数字运算。只要输入适当的程序,人们就可以用分析机来表征复杂的函数关系,甚至进行文字排版和音乐创作。受机械织机的打孔卡启发,艾达也在编程的过程中,引入了打孔输入的机制。艾达利用这种方式让分析机具有了计算伯努利数的功能,而这被认为是世界上第一个“计算机程序”,当时的艾达只有27岁。在科学史上,艾达的这篇译文被视为程序设计方面的第一篇著作,艾达本人不仅是维多利亚时代的一位伯爵夫人,更是人类历史上第一位程序员。
在1847年到1849年这两年里,巴贝奇运用了开发分析机得到的心得,重新设计了差分机2号。这台2号机可以计算到31位数及第7阶差,而它的零部件仅为差分机1号的三分之一。可惜的是,这时候巴贝奇已经找不到愿意出资的人了,差分机2号也只停留在了纸面上。更加让人遗憾的是,1852年,年仅36岁的艾达在治疗宫颈癌时因失血过多去世。失去了得力助手的巴贝奇又孤独地研究了20年,最终还是没能看到差分机问世的那一天。
艾达的过早离世让这段高山流水的知音之交很快中断,巴贝奇因此失去了最坚定的拥护者和最得力的工作伙伴,这段友谊也让参展观众不胜唏嘘。
差分机是人类机械制造史上一个跨时代的狂想曲,更是成为了日后蒸汽朋克文学的象征性符号。科幻小说大师威廉·吉布森的名作《差分机》,便描绘了一个差分机被成功制造出来的平行世界。在纪念伟大的科学先驱的同时,或许我们可以借助文学家的想象力,感受人类科技树的另外一种可能。
(图片来源:清华大学科学博物馆)
10年设计与制造差分机的经验让巴贝奇有了设计更强大机器的能力,他构想出了一种机械结构更加精密复杂的分析机。按照巴贝奇的设计,这台分析机能够使用多项式展开的方法计算对数和三角函数,并完成类似汇编语言的程序指令,这已经具备现代计算机的基本雏形了。
延伸阅读
迟到的差分机
以维多利亚时代工艺水平,制造一台蒸汽动力的纯机械结构的巴贝奇差分机实在过于困难。
但是计算机理论经由阿兰·图灵和冯·诺依曼等人不断发展,终于在1946年,人类第一台可编程的电子计算机埃尼阿克在大洋彼岸的美国诞生,这时距离巴贝奇去世已经过去了整整75年。为了纪念巴贝奇的伟大贡献,1985年至1991年,伦敦科学博物馆依照巴贝奇的图纸,用6年的时间打造了一台完整的差分机2号。这台巨大的机械计算机,长3.35米,高2.13米,有4000多个零件,重2.5吨,能够完美地实现巴贝奇设计的所有功能。