查看原文
其他

世界上第一位程序员,原来是她?

▲ 更多精彩内容 请点击上方蓝字关注我们吧!

不知不觉,又到了一年一度的1024程序员节
在今天这个特殊的日子里
祝愿广大程序猿:1024,BUG退散,发量惊人!

1024到底是什么?

1024程序员节(1024 Programmer's Day),别称程序员节、码农节,是中国广大程序员的共同节日,但是为什么是10月24日呢?


因为程序员的世界是二进制的,1024是2的10次方,也是程序员心目中的整数。


1G=1024MB(1G与1级谐音,也有一级棒的意思)

1MB=1024KB

1KB=1024B

这就是1024程序员节的由来。



平时我们提到程序员,你脑海里会出现什么形象?


年轻男性?戴眼镜、格子衬衫、不善言辞……?总之,第一反应是女性的恐怕不多。
但几十年前却恰好相反的。
那时候,编程被视为女孩的职业,人们甚至认为女性的天赋很适合这个工作。1967年出版的一份就业指导里,这样写道:“编程需要耐心、恒心、关注细节,这些正是女生的特点”。
人类历史上第一个程序员就是女性。她叫埃达·洛夫莱斯(Ada Lovelace),是英国著名诗人、数学家拜伦的女儿。
埃达·洛夫莱斯
埃达·洛夫莱斯是第一位主张计算机不只可以用来算数的数学家。她在笔记中详细说明了用分析机计算伯努利数的方法,这一算法被认为是世界上第一个计算机程序。因此,埃达也被公认为人类历史上第一位计算机程序员。
所以在这个特殊的日子,就让我们聊一聊这位人类历史上首位程序员的传奇经历。

她写的第一个程序


埃达写的第一个程序是用来求解伯努利数的。为了更好地理解埃达的工作,有必要简单介绍一下伯努利数及其实际应用。在介绍伯努利数之前,首先我们引入几个小学二年级就学过的数学公式:
大家可能已经发现,上面的数列其实有很强的规律性。所以人们不禁想要知道,对于一般的情况,是否存在一个一劳永逸的方法求得上面和式的值,也就是著名的“等幂求和”问题。

最终解决这个问题的,是来自传奇的伯努利家族的雅各布·伯努利。
作为拜伦的女儿,埃达有机会结识众多社会名流,其中就包括安德鲁·克罗斯、大卫·布儒斯特、查尔斯·惠斯通、麦可·法拉第等知名科学家。而她的数学天分也颇受查尔斯·巴贝奇赏识,据说她还参与了巴贝奇有关分析机的工作。
查尔斯·巴贝奇
查尔斯·巴贝奇是英国科学家,彼时的他正在研发自动化数学机器——差分机。
根据巴贝奇的设想,差分机可以实现从计算到印刷的过程全部自动化。差分机一号的建造工作启动于1822年,历经十年,据说完成了1/7。当时的金主爸爸英国政府发现这个项目超支严重,一气之下就砍掉了这个项目。
差分机原理(左)和后人根据巴贝奇著作还原的差分机实物(右) 
失去了政府的资助后,巴贝奇仍继续工作。他打算设计一台更为复杂的机器——分析机。

分析机可以运行包含“条件”“循环”语句的程序,有寄存器用来存储数据,如果实现的话将成为人类第一台计算机,但该项目最终还是以失败告终了。不过凭借这些成果,巴贝奇被后人誉为“计算机之父”(不过历史上被称为“计算机之父”的人还有很多,譬如图灵,冯·诺依曼,阿塔那索夫……)。
埃达最著名的研究则完成于1842年与1843年之间,这段时期她潜心翻译意大利数学家路易吉·米那比亚有关巴贝奇分析机的论文。在翻译的同时,她增加了许多注记,同时详细说明了如何用分析机计算伯努利数的方法,这被认为是世界上第一个计算机程序,而埃达也被认为是世界上第一位程序员。

在1842年,埃达·勒芙蕾丝的分析机笔记“笔记G”,记录了第一个计算机程序——让电脑自动产生伯努利数。这里用到了一个伯努利数的性质:上述关系同样可以用比较系数的方式获得。

第一个Bug


让我们仔细观察一下埃达的“笔记G”,并注意下面一行。

大家发现了吧。考虑到这是人类第一段程序,红框里的笔误估计就是人类历史上第一个bug了……(送分题:红框里有什么bug?看出来的你快去留言吧!)

埃达一生饱受疾病折磨, 晚年又被诊断出患有子宫癌。她于1852年11月27日 去世,年仅36岁。在生命的最后几周,尽管病痛缠身,但她还是请人为她画肖像画, 要求在她死后将画像复制赠予朋友们。



依照其生前遗愿,埃达被安葬在诺丁汉郡的赫克诺尔,长眠于父亲拜伦身旁。母亲拜伦夫人为她立了一座纪念碑,碑上刻着她写的一首诗,题为《彩虹》——二十多年前她曾给弗伦德写信讨论彩虹这一大气现象。


诗的结尾写道:“一束隐秘的光永不熄灭,以最纯粹的色彩,穿透云层!”


在计算机知识体系远不如今天完备的19世纪,埃达就完成了用分析机计算伯努利数的壮举,可以说是为计算机程序的发展做出了突出贡献,这也让今天的我们,能站在巨人的肩上码代码。
最后,祝各位程序猿/媛们节日快乐!

推荐阅读

电动汽车11分钟充电70%!华人教授在锂电池中加入这种材料提升性能
拆解USB无线网卡,电路方案非常经典(附高清美图)
美国再次精准制裁,中国该怎么办?
马斯克割掉了最后一颗雷达

添加微信回复“进群”

拉你进技术交流群!

国产芯|汽车电子|物联网|新能源|电源|工业|嵌入式…..  

在公众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!

如果您想经常看到我们的文章,可以进入我们的主页,点击屏幕右上角“三个小点”,点击“设为星标”。欢迎扫码关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存