acm-header
登录

ACM通信

BLOG@CACM

艾达·拉芙莱斯真的是第一个程序员吗?


赫伯特Bruderer

Luigi Federico Menabrea在他关于Charles Babbage的表格式分析机的报告中,发表了一个求解线性方程组的程序。这项工作是巴贝奇(1840年)在都灵一次会议上的一次讲话的结果(见Luigi Federico Menabrea: M. Charles Babbage的机器分析的概念,见:Bibliothèque universelle de Genève, 1842,新系列,卷41,页352-376)。

Ada Lovelace将Menabrea的文章翻译成英文,并添加了一些她自己的评论。她也以表格的形式描述了一个计算伯努利数的程序(参见Ada Lovelace:译者的笔记,为l.f. Menabrea,查尔斯·巴贝奇发明的分析机的草图,等。,见:《科学回忆录》第三卷,理查德和约翰·e·泰勒,伦敦,1843年,第666-731页)。

在阿达·洛芙莱斯200岁生日(2015年)的时候,一系列新书出版了。

Ada Lovelace是第一个程序员

“巴贝奇和洛芙莱斯夫人为这台机器开发的最复杂的程序是计算伯努利数的程序”(参见唐纳德·e·克努斯;Luis Trabb Pardo:编程语言的早期发展,见:Donald E. Knuth (ed.):计算机语言论文选集,语言与信息研究中心,斯坦福大学CA 2003年第5页)。

“有直接的书面证据表明,Ada Lovelace创造了这个表格(用铅笔写出来)”(参见Thomas J. Misa: Charles Babbage, Ada Lovelace和伯努利数,见:Robin Hammerman;安德鲁·l·拉塞尔(编):艾达的遗产,计算机协会/摩根和克雷普出版社,加州圣拉斐尔,2016年,第15页)。

“即使巴贝奇为阿达提供了伯努利数的数学表达式,并协助推导了一般公式,但将一般公式转化为逐步的算法仍然是阿达的成就,正如字母清楚地表明的那样”(参见托马斯J.米萨:查尔斯·巴贝奇,阿达·洛夫莱斯和伯努利数,见:罗宾·汉默曼和安德鲁·L.拉塞尔(编):Ada的遗产,计算机械协会/Morgan & Claypool出版社,加州圣拉斐尔,2016年,第26页)。

对于伯努利数的注释G,表格算法有10个数据变量,3个工作变量和4个结果变量。计算只有25个操作,但还有两个嵌套循环:一个由步骤13-23组成的外部循环,以及两个由步骤13-16和17-20组成的内部循环[…]。在Menabrea的原文中没有出现过类似的东西”(参见Thomas J. Misa: Charles Babbage, Ada Lovelace和Bernoulli数字,见:Robin Hammerman和Andrew L. Russell(编):Ada的遗产,计算机器协会/Morgan & Claypool出版社,加州圣拉菲尔,2016年,第28页)。

“至少,我们可以授予她为计算机设计的第一个算法的主要作者资格”(见Thomas J. Misa: Charles Babbage, Ada Lovelace,和伯努利数字,在:Robin Hammerman和Andrew L. Russell(编):Ada的遗产,计算机器协会/Morgan & Claypool出版社,加州圣拉菲尔2016年,第29/30页)。

艾达·拉芙莱斯第一个程序员

拉芙莱斯因各种各样的原因而广受赞誉。她被描述为数学天才,对分析机的发明有重要影响,是第一个程序员,是计算机时代的预言家。前两种说法没有任何证据支持,仅凭事件的简单年表就很容易被推翻。第三个成名理由(她是第一个程序员)是可以理解的,但却是错误的。但作为一个计算机时代的远见者,她完全值得为其他错误的原因向她致敬”(见Doron D. Swade:前电子计算,见:Cliff B. Jones和John L. Lloyd(编):可靠的和历史性的计算,Springer-Verlag, Heidelberg等,2011年,第75-76页)。

笔记中包含了由概念性分析机执行的逐步运算的算法序列,我们现在称之为“程序”,尽管巴贝奇和阿达都没有使用这些术语。最详细的例子是一个计算伯努利数的“程序”。因此,第一个发表的“程序”例子出现在艾达的名下。虽然把她描述为“第一个程序员”,因此是机器计算求解实践和程序的鼻祖是有启发性的,但这样做是有误导性的。熟悉档案资料的人很清楚,论文中的技术和例子是巴贝奇更早设计的,并由他建议或提供的”(见多伦·d·斯瓦德:先驱简介,Ada Lovelace,在:复活。计算机保护学会公报,2010/2011年冬季,no。53, 33页)。

结论

在工程师(英国的技术史学家多伦·斯韦德和澳大利亚的艾伦·布罗姆利)和美国的历史学家托马斯·米萨之间的争论中,人们可以同意工程师们的观点:档案文件显示,线性方程组的求解程序和伯努利数的计算程序很可能是巴贝奇的作品。因此,我们可以认为,Ada Lovelace作为第一个节目的创造者而受到褒奖是不公正的。



Herbert Bruderer:《模拟和数字计算的里程碑》,施普林格瑞士自然公司,Cham, 2020年第3版,2卷,2113页,715个插图,151个表格,由John McMinn从德语翻译,https://www.springer.com/de/book/9783030409739

赫伯特Brudererherbert.bruderer@bluewin.chbruderer@retired.ethz.ch他是苏黎世联邦理工学院计算机科学系的退休讲师,也是一位技术历史学家。


没有找到条目

Baidu
map