跳转到内容
← 返回先驱
先驱1815–185214 分钟阅读

爱达·洛夫莱斯

Ada Lovelace

1843 年,一位 27 岁的英国女性在翻译一篇意大利数学家的文章时,加进了自己的七条注释。这些注释的篇幅比原文多出三倍,包含了人类历史上第一个被发表的计算机程序——尽管运行这个程序的机器从未被造出来。这个人就是爱达·洛夫莱斯(Ada Lovelace),拜伦勋爵的女儿,那台机器叫分析机(Analytical Engi…

第一位程序员分析机算法巴贝奇

1843 年,一位 27 岁的英国女性在翻译一篇意大利数学家的文章时,加进了自己的七条注释。这些注释的篇幅比原文多出三倍,包含了人类历史上第一个被发表的计算机程序——尽管运行这个程序的机器从未被造出来。这个人就是爱达·洛夫莱斯(Ada Lovelace),拜伦勋爵的女儿,那台机器叫分析机(Analytical Engine)。

破除误解:"第一位程序员"称号的真实边界

"第一位程序员"是洛夫莱斯常见的标签,但这需要一些限定。

首先,分析机从未被建造出来。查尔斯·巴贝奇(Charles Babbage)设计了这台机器,但因资金和工程难题,他生前只完成了局部原型。洛夫莱斯的程序是在纸上写给一台纸上的机器的。

其次,巴贝奇本人也写过若干操作序列,他和洛夫莱斯之间到底谁贡献更多,学术界有争议。历史学家 Bruce Collier 等人曾质疑洛夫莱斯的独立贡献;Allan Bromley 等人则通过检阅原始信件,确认她对"注释 G"(包含计算伯努利数的程序)的核心概念有真实的独立贡献。

可以较为确定地说的是:洛夫莱斯是第一个清晰认识到,这类机器的能力不限于数值计算——只要可以用符号规则表达,音乐、语言、逻辑,机器都可以处理。这个洞见比巴贝奇走得更远。

现场:诗人父亲与数学母亲

爱达·拜伦(Ada Byron)1815 年 12 月 10 日生于伦敦。她的父亲是著名浪漫主义诗人拜伦勋爵,但父母在她出生一个月后分居,她几乎从未见过父亲(拜伦 1824 年去世时她不到 9 岁)。

母亲安妮·伊莎贝拉有意让女儿远离父亲的"诗人气质",为她安排了严格的数学与科学教育。这在维多利亚时代的上流社会女性中极为罕见。爱达从小患病频繁,但智识上异常活跃。

1833 年,17 岁的爱达在一次社交场合遇见了 42 岁的巴贝奇,被他描述中的"差分机"迷住。两人随后发展出长达多年的学术通信关系。

1835 年她嫁给威廉·金(William King),后者因封爵成为洛夫莱斯伯爵,她由此得名"洛夫莱斯伯爵夫人"。

核心:注释 G 与第一个算法

1842 年,意大利数学家路易吉·梅纳布雷亚(Luigi Menabrea)在瑞士的一次演讲后整理发表了一篇关于分析机的法语文章。洛夫莱斯受巴贝奇委托将其译成英文,并征得同意,在翻译中加入自己的注释。

1843 年,译文连同七条注释(标为 A 至 G)发表在《科学备忘录》(Scientific Memoirs)杂志上。

注释 G 是关键。其中包含一个用分析机计算伯努利数(Bernoulli numbers)的详细运算序列:完整的变量分配、操作步骤、循环逻辑——这正是现代意义上的"算法"。她明确使用了"循环"概念(the engine to run over the operation again)处理重复计算,这是程序结构中条件循环的早期表达。

洛夫莱斯还在注释中提出了几个深刻问题:

  • 机器只能"做我们知道如何命令它做的事"——它没有主动性,不能创造。这个边界,一百年后图灵在《计算机器与智能》(1950)中重新审视。
  • 分析机可以操纵符号,不仅是数字——"如果各部件之间的关系可以用音乐科学的基本规律表达,那么分析机就可以谱曲。"

代价与争议

洛夫莱斯 1852 年 11 月 27 日死于子宫癌,年仅 36 岁。在她短暂的一生中,只有这一篇发表的科学著作。

她的学术地位在 19 世纪几乎被完全遗忘。直到 20 世纪 50 年代之后,随着计算机科学成为一门学科,历史学家才重新挖掘她的工作。1979 年,美国国防部将一种新的计算机语言命名为"Ada"——既是纪念,也是一种历史补偿。

她与巴贝奇的关系也有复杂之处:洛夫莱斯热情支持巴贝奇,甚至设想为他的计划募资(包括一些现已有据可查的赛马投注系统,但并不成功)。学界一般认为,她的科学热情与务实能力之间存在一定落差。

巴贝奇的分析机:那台从未被建造的机器

要理解洛夫莱斯的工作,必须先理解巴贝奇的分析机是什么。

分析机不是他第一个机械计算设备——更早的"差分机"(Difference Engine)是专用机器,只能计算多项式差分。分析机是通用的:它有一个"机坊"(Mill,执行算术运算的部分)和一个"仓库"(Store,存储数字的部分),接受打孔卡片输入——借鉴了雅卡尔提花织机的程序控制思想。

分析机惊人地预示了现代冯·诺伊曼架构:仓库对应内存,机坊对应 CPU,打孔卡片对应程序输入。巴贝奇甚至设计了条件分支(根据中间结果决定执行路径)和循环机制。

洛夫莱斯的天才之处,是看到了这台尚未存在的机器的潜在普适性,而不仅仅是它的算术能力。她比巴贝奇更清晰地表达了这一点。

"洛夫莱斯异议"与人工智能哲学

在注释 G 之外,洛夫莱斯写下了一段在 AI 哲学中反复被引用的话:

"分析机没有发明任何东西的能力。它只能做我们知道如何命令它去做的事情。"

图灵在 1950 年的论文《计算机器与智能》中,专门列出了"洛夫莱斯夫人的异议"作为反对机器智能的九个论点之一,并给出了他的回应:这一异议假定机器无法"惊喜"我们,而图灵认为机器完全可以产生令发明者意想不到的输出。

这场对话跨越了一个世纪:洛夫莱斯 1843 年写下的那段话,成为了图灵 1950 年思考框架的出发点,而后者又成为此后所有 AI 哲学争论的参照。这是计算机科学史上最著名的"隔代对话"之一。

被遗忘与被纪念的政治

洛夫莱斯的工作在她死后几乎立刻沉入遗忘。部分原因是她是女性,部分是她只有这一篇发表的科学著作,部分是分析机从未建成使得她的程序无法被验证。

20 世纪后半叶对她的重新发现,带有明确的政治动机:女性在计算机领域严重代表性不足,洛夫莱斯成为了"女性也能做计算机科学"的历史论据。这种纪念是真实的,但也带来了一定程度的神话化——把她的贡献说得比历史证据支持的更为独立和系统。

科学史学者的责任是在纪念与准确之间保持平衡:洛夫莱斯的洞见是真实的,她的局限也是真实的,两者都值得正视。

跨域连接

  • 机器能思考吗:她的论断把"创造"定义成不在指令之内的东西,这是一条关于输出从何而来的判据,而非关于机器聪明与否。图灵的反驳只需举一个反例:机器可以产生发明者意料之外的结果。真正的分歧因此转移了——争的不再是机器能否让我们意外,而是这份意外来自我们推不动自己写下的规则,还是来自规则之外的新信息。
  • 解析数论:注释 G 挑伯努利数不是随手取例。这个序列由递推定义,后项必须用到前项,于是机器不得不反复走过同一段操作并复用中间变量——循环与变量分配是被这个序列逼出来的,不是先设计好的。递推型数论序列由此成了检验程序结构的天然靶子。
  • 语言哲学:她比同代人更早看清,机器操作的是符号之间的关系,符号代表什么由外部解释决定,与机器内部规则无关。这正是形式系统的定义性特征。后果很直接:同一台机器换一套解释就换了应用领域,音乐、逻辑与算术共用同一批齿轮,硬件一点不必改。
  • 性别与社会:她死后几乎立刻被遗忘,又在计算机领域需要一位女性先驱时被重新发现。纪念的可传播性与史料的准确性在这里直接竞争:越容易被复述的版本,越倾向把她的贡献说得比证据支持的更独立、更系统。这不是谁在造假,而是叙事筛选自带方向。
  • 抽象:分析机把"仓库"与"磨坊"分开、把控制卡片与数据卡片分开,等于在机器里划出了第一条抽象边界——使用者只需知道操作序列,不必知道齿轮怎么转。此后一切分层设计都靠同一条约定吃饭:界面稳定,实现可换。

生平年表

年份事件
181512 月 10 日生于伦敦,父亲为诗人拜伦勋爵
1816父母分居,父亲离开英国,洛夫莱斯在母亲监护下成长
1824拜伦勋爵在希腊去世,洛夫莱斯 8 岁,从未与父亲建立关系
1828在母亲安排下接受严格的数学和科学教育;12 岁时设计了一种"飞行机器"作为兴趣项目
183317 岁时结识 42 岁的巴贝奇,被差分机迷住;开始长期书信往来
1835嫁给威廉·金(后封爵为洛夫莱斯伯爵),得名"洛夫莱斯伯爵夫人",育有三个孩子
1836–1839因病多次中断学业;与玛丽·萨默维尔(著名科学家)保持学术联系
1840–1842师从奥古斯都·德摩根(德摩根定律创立者),系统学习高等数学
1842梅纳布雷亚在瑞士发表关于分析机的法语文章,洛夫莱斯受委托翻译
1843翻译梅纳布雷亚文章,附上七条注释(A–G),含第一个计算机程序(注释 G:伯努利数算法)
1843与巴贝奇通信中修正程序中的一处错误,确认算法正确性
1844–1852健康持续恶化,部分时间尝试用科学方法研究赛马预测(未成功)
1851–1852病情恶化为子宫癌,健康急剧下降
185211 月 27 日在伦敦去世,享年 36 岁;遗愿是葬在父亲拜伦旁边
1979美国国防部以她命名编程语言"Ada"
1991伦敦科学博物馆成功建造差分机原型,验证巴贝奇设计可行
2009英国设立"爱达·洛夫莱斯日"(Ada Lovelace Day),每年十月第二个星期二,庆祝科技领域女性的贡献

19 世纪的技术生态:为什么分析机失败了

分析机从未建成,不只是因为巴贝奇个性难以共事或资金匮乏,还有更深层的技术经济因素。

19 世纪中叶的英国工业,可以精确加工金属零件,但精度和一致性仍然达不到分析机所要求的水准——分析机需要数万个可以精确互换的齿轮和凸轮,这超出了当时制造业的实际能力。巴贝奇本人也不断修改设计,每次修改都使已经制造的零件报废,消耗了大量资源。

更根本的是,当时没有大规模需要分析机所提供的计算能力的应用场景。工业革命创造了对查对数表、保险精算的需求,这些可以用差分机满足;但"通用程序计算"的用途,在 1840 年代几乎没有人能具体设想。需求的缺失,使这项技术缺乏持续投资的商业逻辑。

这个教训在技术史中反复出现:超前于需求的发明,往往等待不到它的时代。分析机等了一百年,直到电子、战争和科学计算三者相遇,才找到了自己的时代——但那时,它已经改名叫"计算机"了。

分析机与现代计算机:一场跨越百年的对话

巴贝奇和洛夫莱斯的工作在 19 世纪几乎完全沉寂,直到 20 世纪的计算机先驱们"重新发明"了同样的思想。

一个有趣的历史问题是:早期电子计算机的设计者们,是否真的独立地重新发现了存储程序、通用计算、条件分支这些概念?还是他们通过某种间接渠道受到了巴贝奇工作的影响?

历史学家的研究表明,ENIAC 和 EDVAC 的主要设计者对巴贝奇的工作有所了解(Eckert 曾阅读过相关材料),但这种了解在多大程度上影响了他们的独立设计,难以确证。更可能的情况是:计算机的核心思想在某些问题压力和技术条件成熟时,是"注定会被发现"的——就像微积分被牛顿和莱布尼茨独立发现一样。

1991 年,伦敦科学博物馆按照巴贝奇的原始图纸建造出差分机 2 号(Difference Engine No. 2)的计算部分,赶在巴贝奇诞辰二百周年完成;与之配套的打印与排版装置则到 2002 年才造好,整机约 8000 个零件。这证明了其机械设计原则上是可行的(使用 19 世纪标准的工程公差)。这次实验的结论是:巴贝奇的设计在工程上是有效的,阻止他完成的主要是资金和制造精度,而非设计错误。

洛夫莱斯的数学水平:一场持续的争论

洛夫莱斯的数学能力是学界长期争论的话题。她的主要数学老师是奥古斯都·德摩根(Augustus De Morgan,德摩根定律即以他命名),他在写给她母亲的信中评价说,她展现出第一流的数学才能,但也提到她有时在细节上犯错。

注释 G 中的伯努利数程序存在一处需要巴贝奇指出的错误(洛夫莱斯后来修正了),这被批评者用来质疑她的独立贡献。支持者则指出,即使存在这个错误,程序的整体结构和概念框架仍然是她的,修正错误不影响对她数学洞见的判断。

评估历史人物的最公允态度,或许是:洛夫莱斯是维多利亚时代受过认真数学训练的少数女性之一,她对分析机概念的理解深入且有独创性;同时,她并非无可指摘的天才,而是一个有真实学术能力和真实局限的历史人物。

参考文献

  • Lovelace, A. Notes on Menabrea's "Sketch of the Analytical Engine." Scientific Memoirs 3 (1843): 666–731. (原始文献;注释 G 即第一个算法)
  • Turing, A. M. Computing Machinery and Intelligence. Mind 59 (1950). (图灵如何回应"洛夫莱斯异议")
  • Toole, B. A. Ada, The Enchantress of Numbers. Strawberry Press (1992). (含原始书信)
  • Collier, B. The Little Engines That Could've: The Calculating Machines of Charles Babbage. PhD Dissertation, Harvard (1970). (对洛夫莱斯贡献持保留意见的学术来源)

延伸阅读

  • Woolley, B. The Bride of Science: Romance, Reason, and Byron's Daughter. McGraw-Hill (1999).