艾达·洛芙莱斯如何在计算机诞生一个世纪前就构想了它
1843年,艾达·洛芙莱斯撰写了如今被公认为第一个已发布的计算机程序——为一个从未建造的机器,在一个使这种机器成为可能构想的世纪里。
1837年,英国数学家查尔斯·巴贝奇开始设计他称之为“分析机”的机器——一种机械装置,由蒸汽驱动,并由从纺织工业借鉴的打孔卡控制,能够执行任何被指示的计算。这并非他提出的第一台计算机器;他早期设计的差分机只能计算固定的数学表格。分析机在类型上有所不同:它是通用、可编程的,能够接受不同的指令集并产生不同的结果。巴贝奇从未获得足够的资金来完全建造它。
艾达·洛芙莱斯,一位数学家,也是诗人拜伦勋爵唯一的合法子女,于1843年翻译了一位意大利工程师关于分析机的论文,并添加了自己的注释——这些注释的篇幅是原文的三倍。其中包含了一种机器计算伯努利数的逐步方法,伯努利数是数学中常用的一种数列。计算机历史学家现在认为这是为通用计算机编写的第一个已发布的算法,是对软件的描述,而当时还没有能够运行它的硬件。洛芙莱斯还比巴贝奇本人更有远见地写道,这种机器有一天可能不仅能处理数字——还能处理音乐、图像、任何类型的符号——这个想法直到一个多世纪后才得以实现。
这一切并非孤立于其时代。工业革命大致从18世纪中叶持续到19世纪中叶,席卷英国和欧洲,正是它使分析机成为可能:精密金属加工、蒸汽动力,以及一个越来越接受机器可以完成过去由一群人手工完成的工作的经济。从这个意义上说,巴贝奇的抱负完全符合他所处的世纪——技术上超前,但并非格格不入。
打孔卡的来源
巴贝奇并非打孔卡的发明者。他直接从纺织工业中借鉴了它,来自1801年织工约瑟夫-玛丽·雅卡尔在里昂展示的一种织机,该织机使用一串打孔卡来控制机械织机提升哪些线——让一台织机在没有熟练操作员手动指导每次通过的情况下编织出复杂的图案。巴贝奇将相同的想法应用于控制计算而不是布料:卡片将数字和操作指令都输入分析机,第二套可重复的卡片能够让机器返回并重复使用先前的指令——这与当今软件中循环的基本思想相同。洛芙莱斯在她的笔记中明确指出了这种联系,写道分析机“编织代数图案,就像雅卡尔织机编织花朵和叶子一样。”甚至机器的两个主要部分也从那个时代的工厂中借用了名称:巴贝奇将存储数字的部分称为“存储器”(Store),将对其进行操作的部分称为“磨坊”(Mill)——这直接对应了现代计算机中的内存和处理器。
一个半世纪后验证设计
巴贝奇从未获得完成分析机的资金,此后一个多世纪以来,他的设计是否真的能奏效,或者维多利亚时代的工程技术是否过于不精确而无法建造他所绘制的机器,一直是一个悬而未决的问题。1985年,伦敦科学博物馆着手直接回答这个问题,严格按照巴贝奇1847-49年的图纸,仅使用在他有生之年可以达到的制造公差,建造了巴贝奇早期更简单的机器——差分机二号的一个版本。计算部分于1991年完成,恰逢巴贝奇诞辰二百周年;他设计的打印机制于2002年添加。它成功了。这台成品机器,拥有8000个零件,重达五吨,至今仍在伦敦科学博物馆运行——解决了自19世纪30年代以来一直悬而未决的问题:不是巴贝奇是否是位有远见的人,而是他的工程设计是否真的可靠。
三个视角,一个图书馆
这个故事恰好横跨了WonderBooks十二个图书馆中的三个——人物、机器和时代都有各自的插图讲述,它们可以按任何顺序阅读,也可以单独阅读。



常见问题
艾达·洛芙莱斯是否曾建造过一台可工作的计算机?
没有——洛芙莱斯和巴贝奇在他们有生之年都没有建造分析机;它只存在于图纸和笔记中。洛芙莱斯所创造的是算法:一种详细的、分步的方法,用于机器计算一系列数字,在任何能够运行它的机器出现之前多年就已写成。
巴贝奇的分析机是否真的建造过?
分析机本身在19世纪或此后都从未建造过。伦敦科学博物馆于1991年完成的是巴贝奇早期更简单的差分机二号,严格按照他自己的图纸建造——这证明了他的机械设计是可行的,尽管这并不能证实更具雄心的分析机的每一个细节。
为什么艾达·洛芙莱斯被称为第一位计算机程序员?
她1843年关于分析机的笔记中包含了一种计算伯努利数的详细方法,这是一种真实的数学数列,被写成机器要执行的精确操作序列。计算机历史学家认为这是为通用计算机器编写的第一个已发布的算法,尽管运行它的机器当时尚不存在。