历史上第一位程序员,原来是她啊

作者: 铸雪

来源: 科学大院

发布日期: 2021-10-24

文章介绍了历史上第一位程序员是洛夫莱斯伯爵夫人奥古斯塔·埃达·金·诺尔,她也是世界上第一个计算机程序的作者。文章详细描述了她的工作和对计算机科学的贡献,以及10月24日作为程序员日的由来和意义。

历史上第一位程序员,原来是她啊。2021年已经接近尾声。在余额严重不足的2021日历中,有一个特殊的日子不得不提,那就是10月24日。那就是传说中的中国“程序员日”!要说为什么选择10月24日,那就不得不提一下1024这个神奇的数字。1024是2的十次方,也是二进制计数中最基本的计量单位——运行程序的硬件进制是以1024为基础的,如1MB=1024KB,1GB=1024MB。

值得一提的是,世界上第一个程序员节出现在俄罗斯,定在每年的第256天。2009年9月11日,时任俄罗斯总统梅德韦杰夫签署了法案,正式将“程序员节”设定为俄罗斯的一个官方节日。在我国,虽然程序员日不是官方节日,但各大科技公司都会不约而同地祭出自己的看家绝活犒劳辛苦的程序猿/媛。如今,程序员(猿)在有的人眼中似乎是男士的专利。然而如果我们回顾历史就会发现,历史上第一位程序员其实是一位女士。

洛夫莱斯伯爵夫人奥古斯塔·埃达·金·诺尔,原姓拜伦(是的,她的父亲就是大诗人拜伦),英国数学家。其代表工作是对查尔斯·巴贝奇分析机研究的整理。埃达·洛夫莱斯是第一位主张计算机不只可以用来算数的数学家。她在笔记中详细说明了用分析机计算伯努利数的方法,这一算法被认为是世界上第一个计算机程序。因此,埃达也被公认为人类历史上第一位计算机程序员。

所以在这个特殊的日子,就让我们聊一聊这位人类历史上首位程序员的传奇经历。埃达·洛夫莱斯写的第一个程序是用来求解伯努利数的。为了更好地理解埃达的工作,有必要简单介绍一下伯努利数及其实际应用。在介绍伯努利数之前,首先我们引入几个小学二年级就学过的数学公式:大家可能已经发现,上面的数列其实有很强的规律性。

所以人们不禁想要知道,对于一般的情况,是否存在一个一劳永逸的方法求得上面和式的值,也就是著名的“等幂求和”问题。最终解决这个问题的,是来自传奇的伯努利家族的雅各布·伯努利。总而言之,要使等幂求和公式发挥作用,求出伯努利数Bk乃是问题的关键。现在让我们回到第一位程序员埃达·洛夫莱斯的故事。

作为拜伦的女儿,埃达有机会结识众多社会名流,其中就包括安德鲁·克罗斯、大卫·布儒斯特、查尔斯·惠斯通、麦可·法拉第等知名科学家。而她的数学天分也颇受查尔斯·巴贝奇赏识,据说她还参与了巴贝奇有关分析机的工作。查尔斯·巴贝奇是英国科学家,彼时的他正在研发自动化数学机器——差分机。根据巴贝奇的设想,差分机可以实现从计算到印刷的过程全部自动化。

差分机一号的建造工作启动于1822年,历经十年,据说完成了1/7。当时的金主爸爸英国政府发现这个项目超支严重,一气之下就砍掉了这个项目。失去了政府的资助后,巴贝奇仍继续工作。他打算设计一台更为复杂的机器——分析机。分析机可以运行包含“条件”“循环”语句的程序,有寄存器用来存储数据,如果实现的话将成为人类第一台计算机,但该项目最终还是以失败告终了。不过凭借这些成果,巴贝奇被后人誉为“计算机之父”。

埃达最著名的研究则完成于1842年与1843年之间,这段时期她潜心翻译意大利数学家路易吉·米那比亚有关巴贝奇分析机的论文。在翻译的同时,她增加了许多注记,同时详细说明了如何用分析机计算伯努利数的方法,这被认为是世界上第一个计算机程序,而埃达也被认为是世界上第一位程序员。在1842年,埃达·勒芙蕾丝的分析机笔记“笔记G”,记录了第一个计算机程序——让电脑自动产生伯努利数。

这里用到了一个伯努利数的性质:上述关系同样可以用比较系数的方式获得。不过习惯了用键盘码代码的小伙伴们第一次见到写在纸上的程序可能有些懵圈,所以笔者就用Python重新写了一遍,以符合最新的发展潮流。运行这段代码,你会得到第2、4、6、8个伯努利数1/6、-1/30、1/42、-1/30。让我们重新观察一下埃达的“笔记G”,并注意下面一行。大家发现了吧。

考虑到这是人类第一段程序,红框里的笔误估计就是人类历史上第一个bug了。不过,瑕不掩瑜。在计算机知识体系远不如今天完备的19世纪,埃达就完成了用分析机计算伯努利数的壮举,可以说是为计算机程序的发展做出了突出贡献,这也让今天的我们,能站在巨人的肩上码代码。最后,还是要祝各位程序猿/媛们节日快乐!顺便问一句:今天,你的代码能跑动吗?

UUID: 17200242-ed05-48ba-b5fd-7585a70a77d7

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/科学大院公众号-pdf2txt/2021年/2021-10-24_历史上第一位程序员,原来是她啊.txt

是否为广告: 否

处理费用: 0.0055 元