转自:http://blog.csdn.net/AdaLoveLacer/archive/2005/12/30/565933.aspx

ada :世界上第一位程序员

不幸的童年

ada· 奥古斯塔· 拜伦(Ada Augusta Byron)1815年12 月10 日 生于英国伦敦。她的父亲是英国著名诗人乔治· 拜伦(George Gordon Noel Byron ,1788-1824) ,母亲是数学家安娜· 伊莎贝拉(Anna Isabella Milbanke) 。热恋时,拜伦曾戏称他未来的妻子是“the Princess of Parallelograms”( 平行四边形公主) 。看来,兴趣爱好的巨大反差,埋下了不幸的种子。

ada 出生后的第一个悲剧就是父母的离异。她父母的婚姻只维持了一年零半个月:1815 年1 月2 日结婚,1816 年1 月16 日离婚,这时ada 出生仅37 天。

第二个悲剧应该是幼年丧父。我们知道,拜伦于1816 年4 月25 日离开伦敦出国,而且一直没有再回英国。他先在瑞士生活,后来到了意大利,又转至希腊。在那里,他还参加过希腊反对土耳其的独立战争。37 岁时病故于希腊的Missolonghi ,这时ada 才8 岁,好在她一直没有见过自己的父亲。

ada 的母亲希望女儿成为一名数学家,而不是诗人。尽管也让女儿学习钢琴,那是为提高她的音乐素养,而不是让她从事艺术。不过,ada 与母亲在一起的时间并不多。她的童年主要是在祖母呵护下度过的。然而祖母Noel Byron 夫人1822 年逝世,ada 只有7 岁。

严格的教育

既然ada 的母亲安娜对数学有兴趣,而且对“ 既疯又坏”(mad and bad) 的丈夫深恶痛绝,当然就把希望寄托在女儿身上,渴望并鼓励她发展理性的修养,而抵制父亲浪漫主义色彩的影响。于是,ada 接受了近乎严酷的教育。

ada6 岁时,母亲雇了家庭女教师雷蒙特小姐(Miss Lamont) 在家里对她进行启蒙教育。安娜强烈相信,数学作为一门智力的学科,必须让它在ada 的头脑里牢牢扎根。她认为打好数学基础将为ada 提供稳定的、理智的社会地位,而这也是针对“ 粗鲁、轻率、自负、搪塞和狂妄的良好解毒剂。”

安娜希望女儿喜欢数学,然而女儿却爱好地理,她花很少的时间学习数学,以便应付母亲的严格要求。安娜发现女儿敷衍后,既要处罚ada ,如关到小黑屋反省,又要斥责并辞退雷蒙特小姐。所以家庭教师的更换比较频繁。而ada 不免要说点小谎话以搪塞母亲。例如,写一些无关痛痒的检讨:“ 我,ada ,没有好好记笔记,明天一定把它做好。”(I, Ada, have not done the Notes very well, but I‘ll try to do it better tomorrow) 。

在ada 的家庭教师名单中,有几位数学家参与。其中既有平庸之辈,也有赫赫有名的数学大师。下面我们列举几位:

首先应该谈到的是威廉· 弗雷德(William Frend) 。他曾经教过安娜,现在又来教ada 。这时他年事已高,竟然不相信有负数存在,更谈不上了解数学的最新进展。

其次必须提及的是劳伦斯小姐(Miss Arabella Lawrence) ,安娜请她把13 岁的ada 那偏好争辩的性情改变过来。不过,ada 身体不佳,又染上麻疹,休息了好长一段时间。

还有威廉· 金(William King) 博士,他1829 年也忙过ada 的数学教育。但这位博士的数学根基不深,他自己也坦白他学习数学是通过阅读而不是作研究(by reading it rather than by doing it) 。此后若干年,虽然他还给ada 一些帮助,但在1834 年他写给ada 的信中,直率地承认“ 在您的学习中,很快就能把我难倒(you will soon puzzle me in your studies)” 。

大师的影响

除了以上三位平庸之辈,在ada 的一生中,受过三位世界级大师的培养。这就是女科学家玛丽· 莎沫维勒(Mary Fairfax Greig Somerville ,1780-1872) ;计算机鼻祖查尔斯· 巴贝奇(Charles Babbage ,1791-1871) ;数理逻辑学家德· 摩根(Augustus DeMorgan ,1806-1871) 。三位大师彼此之间有多年交情,对ada 栽 培的默契可能是她短暂一生感受到的最大幸福。

1830 年由于母亲安娜与女科学家玛丽· 莎沫维勒的交往,15 岁的ada 也成为玛丽家的常客。玛丽有两个女儿与ada 年龄差不多,ada 经常去玛丽家里,度过一个个美好的夜晚。玛丽则带她们一起去听音乐会,还经常去伦敦大学听地理学讲座。后来,她们成立了女学者联谊会,组织参观博物馆,拜访科学家等活动。正是这些活动使ada 认识了巴贝奇。玛丽把ada 当作自己的女儿一样,给她数学书籍、指导她的学习、为她设计思考问题。师徒之间无所不谈,她们畅谈数学问题以及其他自然科学问题,特别是讨论巴贝奇及其制造的计算机器。此外,她们也谈论音乐、绘画等艺术,以及争取妇女受教育权与选举权等政治问题。

1833 年6 月5 日 ,在一次聚会上ada 认识了查尔斯· 巴贝奇。两周后她和母亲一起拜访了巴贝奇在伦敦的工作室,在那里她看到差分机的演示以及对分析机的设计。ada 立刻为这些机器着迷,这给巴贝奇留下深刻的印象。当时花季妙龄的ada 出落得已令人入神,据索菲亚· 弗雷德( 她是威廉· 弗雷德的女儿、德· 摩根的妻子) 回忆,“ 像她这样年轻,能理解机器的工作,而且看到这一发明的无比美妙(young as she was, understood its working, and saw the great beauty of the invention)” 。此后她就与分析机结上了不解之缘。

1841 年,在巴贝奇的建议下,德· 摩根专门对ada 的数学研究进行了高级的个别指导。

玛丽· 莎沫维勒的魅力

女科学家玛丽· 莎沫维勒写过许多著作,这些著作对创立电磁理论的麦克斯威都有很大影响。不过我国读者对她可能比较陌生,有必要在此多谈一下。

玛丽1780 年12 月26 日生于苏格兰,1872 年11 月29 日卒于意大利那不勒斯,享年92 岁。她的父亲William George Fairfax 是英国海军官员,曾担任过舰队副司令。他有两儿两女,儿子都受过良好的教育,女儿却按照当时的风气,没有受教育的必要。玛丽只上过一年学,就离开那所既没有给她快乐、又没有给她知识的牢笼。回家后,她开始读所有能够找到的书,而且自修拉丁文、练习钢琴与绘画。

1804 年玛丽与俄国海军军官Samuel Greig 结婚。这位丈夫既缺乏科学知识,又对钻研学问毫无兴趣。三年后他病死,玛丽只好带着孩子回到苏格兰。在朋友的鼓励下,她开始钻研数学和自然科学。在她的朋友圈中,有皇家军事学院数学教授William Wallace ,爱丁堡大学自然哲学教授John Playfair 。这段时间,她还读了牛顿和拉普拉斯的数学与天文学著作。

1812 年玛丽又与William Somerville 结婚。这位丈夫是医院督察,他积极支持玛丽对自然科学,如对植物学、地质学的研究。他们又结识了学术界的许多朋友,如爱丁堡数学教授John Leslie(1766-1832) ,物理学家David Brewster( 他发明了万花筒,kaleidoscope) 。1816 年,她丈夫调到伦敦工作,而且参与皇家学会的工作。于是全家搬到伦敦居住,从而结识了更多学界名流。如经常去看望巴贝奇,他正在制造机械式计算机。还有George Airy(1801-1892 ,英国数学家,研究过观察误差的理论) ,John Herschel(1792-1871 ,英国天文学家,研究过哈雷彗星。他是巴贝奇在剑桥的同窗好友) ,William Herschel(John Herschel 的父亲,英国天文学家,发现了天王星) ,George Peacock(1791-1858 ,英国数学家,研究代数的逻辑处理,他也是巴贝奇在剑桥的同窗好友) 。同时,在伦敦也有机会与到访的外国著名科学家见面,如法国大数学家拉普拉斯(Pierre-Simon Laplace ,1749-1827) ,泊松(Simon Poisson ,1781-1840) ,Louis Poinsot(1777-1859) ,Emile Mathieu(1835-1890) 等。

1827 年根据知识传播学会的请求,玛丽着手翻译拉普拉斯的《天体力学》(Laplace: The Mechanism of the Heavens) 。事实上,玛丽不仅是单纯的翻译,她还详细解释了当时英国数学家不熟悉的概念与方法。这本书于1831 年问世,大获成功,赞美之词不绝于耳。

1834 年她出版了《物理科学的联系》(The connection of the physical sciences) ,其中讨论了对天王星进行干扰的假想行星。该书导致英国天文学家亚当斯(John Couch Adams ,1819-1892) 的研究,并最终发现了海王星。

ada 和她的母亲安娜成为玛丽· 莎沫维勒家庭的朋友。玛丽热情地鼓励、帮助ada 研究数学,这使她真正喜欢上数学。同时,ada 还从玛丽身上感染到对整个自然科学的热爱。

玛丽的荣誉像潮水般涌来,她成为皇家天文学会会员。英国首相每年给予她津贴。1838 年玛丽丈夫的健康恶化,他们移居意大利。玛丽在意大利度过大半生,又写了许多著作。1848 年出版的《物理地理学》(Physical geography) 是她最成功的著作之一,直到20 世纪初,英国许多大学还用它作教科书。

玛丽强烈呼吁妇女应该有受教育的权利、有选举和被选举的权利。1879 年牛津大学用她的名字命名了玛丽· 莎沫维勒学院,就是对她这种精神的肯定和褒奖。

德· 摩根的严格要求

学过数学的人,应该都知道数学归纳法,它是德· 摩根首先提出的;学过计算机的人,大都知道有个德· 摩根定理,它对逻辑运算十分重要。德· 摩根是在ada 结婚并生孩子后,按照巴贝奇的建议,对她进行了严格的数理逻辑的辅导。因为她在为巴贝奇的分析机编制程序时需要这方面的知识。

德· 摩根1806 年6 月27 日出生于印度马德拉斯邦的Madura ,当时他的父亲John De Morgan 是英国陆军上校,正在印度服役。他是家中第五个孩子,出生不久右眼失明。七个月就随家返回英国。在学校,德· 摩根因为残疾并无什么擅长,从来不和其他男孩一起运动,相反却经常成为同学作弄的牺牲品。他10 岁时父亲去世。1823 年德· 摩根16 岁时进入剑桥三一学院,在那里他遇到老师Peacock 和Whewell ,他们成为终生的好友。在那里他取得了学士学位,但要取得硕士学位就必须进行神学考试,对此他很反感。然而没有硕士学位,他在剑桥就很难获得奖学金。1826 年他返回伦敦家中。1827 年他在新建立的伦敦学院大学(University College London) 申请数学系主任的职位,虽然当时他尚无数学专著,但还是得到应聘。1828 年德· 摩根成为该大学第一位数学教授,在就职演讲中他谈了对数学的研究。1830 年德· 摩根发表了数学著作《算术原理》(Elements of arithmetic) ,这部著作曾经多次再版。1831 年他原则上辞去系主任的职务,但1836 年再次担任系主任,一直到1866 年。

1838 年德· 摩根引入并定义了数学归纳法(mathematical Induction) ,围绕这个题目他写过许多文章。德· 摩根还出版过有关微积分的著作(The Differential and Integral Calculus) 。1849 年出版了有关三角学的著作(Trigonometry and double algebra) ,他对复数给出几何学的解释。他认识到代数的纯符号本质,注意到多种代数的存在,而不限于普通代数。他引入了德· 摩根定理,对数理逻辑进行了大胆的改革,这大概是德· 摩根最伟大的贡献。德· 摩根1871 年3 月18 日在英国伦敦去世。

1835 年7 月8 日 ada· 拜伦与威廉· 金(William King) 结婚,当然这个人并不是前面提到过的数学教师Dr. William King 。1838 年ada 的丈夫威廉· 金被封为拉夫拉斯伯爵(Earl of Lovelace) ,因此ada 也获得拉夫拉斯伯爵夫人(Countess of Lovelace) 的称号。他们结婚后,有了三个孩子:大儿子叫了外祖父的名字Byron Noel ,1836 年5 月12 日出生;女儿叫了外祖母的名字,Anne Isabella ,1837 年9 月22 日出生;小儿子仍然留有外祖父的痕迹Ralph Gordon ,1839 年7 月2 日出生。这应该算是ada 短暂一生的第二个幸福了。

创新的注释

如上所述,ada18 岁时听了巴贝奇关于设计差分机的讲演,从而对巴贝奇的机器产生了浓厚的兴趣。后来又对全新的分析机特别地着迷。从1836 年1 月18 日开始,ada 给巴贝奇写信,探讨分析机的各种问题。一直到生命结束,她给巴贝奇写了大量的信件。这是研究ada 编程思想的重要资料。

但最有代表性的文献,却是ada 翻译一本书时所加的注释。那是1842 年10 月,法国工程师Luigi Federico Menabrea(1809-1896) 发表了一篇关于巴贝奇分析机的理论和性能的文章。ada 把它由法文译成英文,而且在其中加入她的许多注释。

关于这个工作,巴贝奇有一段精彩的回忆:“ 在日内瓦综合书目上出现Menabrea 关于这个机器的实录后,有一天晚上拉夫拉斯伯爵夫人告诉我,她已经把这篇东西由法文翻译成英文。我问她,为什么不就这个题目自己写一篇原创性的论文,你是能够非常亲切地介绍这个机器的。拉夫拉斯伯爵夫人答复道:她的思想还没有形成。然后我建议她在Menabrea 的文章上加些注释。这个建议立即被她采纳了。”“ 我们一起讨论了必须引入的各种插图,我建议了几个,但是否选择完全由她决定。还有一些不同问题的代数工作,例如有关伯努利数的计算,为了减少她的麻烦,我给出一些计算。结果她寄来一份修订,纠正了我在计算中的一个重大错误。”“ 拉夫拉斯伯爵夫人的注释比原文的长度扩展了三倍。她全力以赴,对于和这个题目有关的很困难、很抽象的问题都作了解释。把这两个资料一起提供给读者,就能理解机器的工作原理,并通过完整的示范,了解如何使用分析机去执行分析开发的任务。”

最早的编程设想

在这些注释中,ada 描述了分析机如何进行编程,最早给出计算机程序设计的许多想法。下面给出几个注释的内容,以飨读者:

注释A :说明设计中的“ 分析机” 与已存在的“ 差分机” 的区别。她的讨论预言了通用计算机(general purpose computer) 的作用,这超出了巴贝奇的想象。她表明分析机可以接受各种各样的穿孔卡:“ 控制卡” 、“ 数据卡” 、“ 操作卡” ,它们如何使计算机自动地对输入的数据完成正确的操作。换句话说,计算机能“ 分析数据” 。她还提议数字和其他符号如字母都可以“ 编码” 成数字数据,机器可以处理它们,并给出写成的数据。她甚至要为分析机能产生音乐而奋斗。

注释B :ada 讨论了分析机的记忆能力,她把记忆装置称为“ 仓库” 。她提出了存储位置或地址的想法。她指出插入“ 注解或备忘” 的可能性,计算机不会执行它们,但可以让人们简明地了解程序将走向何方。

注释C :ada 引入“ 返回”(backing) 的概念,制作一个操作卡返回到某个位置,而它就是将要工作的下一个数据卡。她解释这样做的原因是:“ 在解决一个问题的方案中,能确保某个特殊的穿孔卡或者一组卡能成功地使用若干次”(to secure the possibility of bringing any particular card or set of cards into use any number of times  successively in the solution of one problem) 。这个思想我们今天称为“ 循环”(looping) ,ada 和巴贝奇早就讨论过这个问题。

注释D :ada 解释了如何使用操作卡、返回、仓库以及各种控制卡,以写成一个指令序列,去完成一个特定的操作集合。

注释E :她解释了机器如何拥有三角函数和其他函数。这就在计算机内部引入了内建函数(built-in function) 的思想。

注释F :她给出利用返回处理( 循环) ,仅通过重复几个操作,来解一个任意大小的线性方程组。她详细写出解十元线性方程组的程序。她还推测通过简单的循环过程生成素数表的可能性。

注释G :ada 警告读者,如果输入“ 不真实” 的信息,那么计算机就不能做任何事情。今天我们把这称为“ 输入垃圾,输出垃圾”(Garbage in, Garbage out) 。她写到:“ 分析机不能自命不凡,无论什么问题都能解决。它只能完成我们告诉它如何做的事情。它能遵循分析,但没有能力预期任何分析关系或事实。”(The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths) 。在注释G 中,ada 还写了一个程序,让分析机生成伯努利数的表。

由上可知,ada 获得世界上第一位计算机程序员的荣誉是当之无愧的。

辞世与纪念

由于受子宫癌和赌博债务的折磨,有的文献还说她曾经吸毒,这位悲剧性的人物ada 过早地于1852 年11 月27 日去世,生命周期与她的父亲拜伦同样短促,都只有37 岁。最后与她的父亲一起,埋葬在诺丁汉郡Hucknall 镇拜伦家族的墓地。

ada 的 形象完美地体现了一位程序员应该具备的科学家与艺术家的双重气质。一方面,程序员需要在数学概念、形式理论、符号表示等基础上工作,应该有科学家的素养。 另一方面,对于一个高效的、可靠的、便于维护的软件系统,又必须刻画它的细节,并把它组成一个和谐的整体,所以程序员又应该有艺术家的气质。

1975 年1 月,美国国防部(DoD) 提出统一高级语言的必要性,并为此在国际范围内招标。1979 年5 月,从四种入围语言中最后选定了一种。现在,该给它起个什么名字呢?总不能把它称为DoD-1 语言吧。国防部通过与英国拉夫拉斯伯爵的继承人莱顿(Lytton) 伯爵协商,决定把新语言命名为Ada 语言,以此纪念ada 在130 年前对程序设计的历史贡献。于是,ada 的名字、生平与事迹才广为世人传诵。

ada:世界上第一位程序员相关推荐

  1. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...

  2. 世界上第一位程序员是位美女——AdaLovelace【有图为证】

    AdaLovelace画像   仙女一般吧.... 简介: 阿达·奥古斯塔,19世纪诗人拜伦的女儿,数学家.穿孔机程序创始人,建立了循环和子程序概念.为计算程序拟定"算法",写作的 ...

  3. 世界上第一位程序员,竟然是诗人拜伦的女儿?

    导读:女神节来了,数据叔终于忍不住要聊一聊这个憋了很久的八卦,世界上第一位程序员,当然也是世界上第一位女程序员--Ada. 作者:数据叔 来源:大数据DT(ID:hzdashuju) 这位女神级的神人 ...

  4. 世界上第一位程序员是女的?

    在程序员这个男多女少的世界里,男女比例的极不均衡让男程序员们自然而然地成为了这个世界的主宰.细数下来,从C语言和Unix系统的创造者Denis和Thompson,到后来的Linux系统之父Linus, ...

  5. 女神节快乐!世界上第一位程序员就是女神

    据说,这是世界上第一位女程序员的择偶标准: 征婚启事 SELECT * FROM 男人们 WHERE (未婚=true or 离异=true) and 同性恋=false and 穷光蛋=false  ...

  6. 她,诗人拜伦之女,英国数学家,历史上第一位程序员

    作者丨吴军 来源丨大数据文摘 摘自丨<信息论> 人类使用机械处理信息的尝试是由两个看似不该有交集的英国人开启的. 在英格兰中部莱斯特郡的柯比-马洛里庄园,住着一对母女. 1816年初那个多 ...

  7. 世界上第一个程序员竟然是女性,难以置信......

    一说到程序员,人们的第一反应可能是–男的! 接着浮现在眼前的程序员标配是:眼镜,双肩包,格子衬衫,牛仔裤,运动鞋- 不难发现,在现代的IT公司里,从事编程工作的女性比例远远低于男性. 细数" ...

  8. 世界上第一个程序员,居然是女神级别的人物?

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 作者丨水影月 来源丨大飞码字(ID:BigFly1024) 一说到程序员,人们的第一反应可能是--男的! ...

  9. 世界上第一个程序员——诗人拜伦之女Ada,短暂而非凡的一生

    程序员中的女神--Ada,非她莫属.Ada是世界上第一个程序员,注意,不论男女,她都是第一,Ada是英国著名诗人拜伦之女.拜伦之女为什么是个程序员呢?龙生龙,凤生凤,这不科学啊.其实,Ada除了她爸是 ...

  10. 第一位程序员原来是一个女性!

    在从事IT行业中,女性并不多,这也形成了很多人一贯的偏见,计算机都是男生做的,女孩子做不来. No.1 世上第一位程序员是名贵族小姐 但你知道吗?世界上第一位程序员出现在200多年前,而且还是一位贵族 ...

最新文章

  1. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
  2. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
  3. 你连原理都还没弄明白?java的基本单位
  4. 嵌入式Linux系统编程学习之二十八线程的等待退出
  5. free mybatis 不生效_这些Mybatis-Plus的使用小技巧,你应该知道的!
  6. ubuntu16.04 kinetic 版本ROS安装PR2
  7. FreeBSD 6.0架设管理与应用-第七章 系统安全
  8. VMware-Esxi6.7各个版本镜像文件iso下载链接
  9. bootstrap treeview 多级联动check/uncheck
  10. 自动化测试的7个步骤
  11. 手游运营基础知识大全
  12. 产品读书《社群经济:移动互联网时代未来商业驱动力》
  13. SQLmap Tamper编写方法(笔记)
  14. 基于PHP+小程序(MINA框架)+Mysql数据库的小说小程序系统设计与实现
  15. Java 6-1 人口统计
  16. linux sed 替换文件路径
  17. Java语言的特性和优点
  18. 特征筛选:重要性评估
  19. MySQL---数据库从入门走向大神系列(十)-Connection对象池、装饰模式与动态代理模式
  20. 移动应用UI设计(上)

热门文章

  1. 【leetcode】Reaching Points
  2. python一维数组转置_Python 矩阵转置的几种方法小结
  3. 搭建个人网站--域名解析(DNS)
  4. Unity开发弱数据多人联网游戏(一)
  5. 如何想领导说清楚DCMM到底有什么好处?
  6. 安卓逆向 -- 算法基础(数字签名)
  7. WINDOWS优化大师揭密
  8. java误删的信息怎么恢复_记一次线上表数据误删恢复过程
  9. Echarts Map地图类型使用
  10. 报错the confidence keyword argument is only available if OpenCV is installed的解决方法