奥古斯塔·爱达·金,勒芙蕾丝伯爵夫人(Augusta Ada King, Countess of Lovelace,1815年12月10日-1852年11月27日),原名奥古斯塔·爱达·拜伦(Augusta Ada Byron),通称爱达·勒芙蕾丝(Ada Lovelace),是著名英国诗人拜伦之女。母亲安娜·密尔班克(A.Millbanke)是位业余数学爱好者,阿达没有继承父亲诗一般的浪漫热情,却继承了母亲的数学才能。她最著名的事迹为翻译意大利人查尔斯·巴贝奇早期的程式设计书《分析机概论》(analytical engine),爱达对翻译查尔斯·巴贝奇的《分析机概论》所留下的笔记,被认为对现代电脑与软件工程造成了重大影响。

  由于巴贝奇晚年因喉疾几乎不能说话,介绍分析机的文字主要由阿达替他完成。阿达的生命是短暂的,她对计算机的预见超前了一个世纪以上。阿达也死于36岁,与她父亲拜伦相似。根据她的遗愿,她被葬于诺丁汉郡其父亲身边。

  爱达是她诗人父亲——拜伦与母亲安妮·伊莎贝拉·米尔班奇(Anne Isabella Milbanke)唯一的合法子嗣。她的名字取自拜伦的异母的姊妹奥古斯塔·李(Augusta Leigh)。拜伦与安妮贝拉的婚事是在奥古斯塔为了避免丑闻,而怂恿拜伦与安妮贝拉结合的产物。然而,在1816年1月16日,安妮贝拉还是离开拜伦,带着一个月大的爱达离开。同年4月21日,拜伦签下了分居协议,并离开英国。

  爱达从未见过她同父异母的妹妹阿拉格·拜伦(Allegra Byron),阿拉格是拜伦与克莱尔·克莱蒙(Claire Clairmont)所出,但于1822年死去,得年5岁。至于爱达的另一位亲戚伊丽莎白·梅朵拉·李(Elizabeth Medora Leigh,是奥古斯塔·李之女)则有与她照过面,并由爱达的母亲告知爱达与梅朵拉彼此的身世。

不幸的童年

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

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

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

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

严格的教育

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

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

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

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

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

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

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

大师的影响

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

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

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

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

爱达的注释体现最早的编程思想

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

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

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

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

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

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

  注释C:爱达引入“返回”(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),爱达和巴贝奇早就讨论过这个问题。

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

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

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

  注释G:爱达警告读者,如果输入“不真实”的信息,那么计算机就不能做任何事情。今天我们把这称为“输入垃圾,输出垃圾”(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中,爱达还写了一个程序,让分析机生成伯努利数的表。

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

爱达的辞世与爱达语言

  由于受子宫癌和赌博债务的折磨,有的文献还说她曾经吸毒,这位悲剧性的人物爱达过早地于1852年11月27日去世,生命周期与她的父亲拜伦同样短促,都只有37岁。最后与她的父亲一起,埋葬在诺丁汉郡Hucknall镇拜伦家族的墓地。 当年36岁。很讽刺的,她与她父亲拜伦死于相同年龄,一样死于治疗中的失血过多。她留下了两个儿子与一位女儿—安妮·布兰特贵女。依她的遗言,爱达葬于诺丁汉哈克诺的圣 玛丽亚·抹大拉教堂,长眠在父亲的身旁。

  爱达的形象完美地体现了一位程序员应该具备的科学家与艺术家的双重气质。一方面,程序员需要在数学概念、形式理论、符号表示等基础上工作,应该有科学家的素养。另一方面,对于一个高效的、可靠的、便于维护的软件系统,又必须刻画它的细节,并把它组成一个和谐的整体,所以程序员又应该有艺术家的气质。   1975年1月,美国国防部(DoD)提出统一高级语言的必要性,并为此在国际范围内招标。1979年5月,从四种入围语言中最后选定了一种。现在,该给它起个什么名字呢?总不能把它称为DoD-1语言吧。国防部通过与英国拉夫拉斯伯爵的继承人莱顿(Lytton)伯爵协商,决定把新语言命名为Ada语言,以此纪念爱达在130年前对程序设计的历史贡献。于是,爱达的名字、生平与事迹才广为世人传诵。

  Ada是一种表现能力很强的通用程序设计语言,它是美国国防部为克服软件开发危机,耗费巨资,历时近20年研制成功的。它被誉为第四代计算机语言的成功代表。美国国防部之所以把这种语言取名为Ada,是为了纪念奥左斯特·艾达·洛夫莱斯伯爵夫人(Augusta Ada Lovlace,1815-1852),她是英格兰诗人拜伦(Byron)勋爵的女儿,曾对现代计算机技术之父查尔斯·巴贝奇(Charles Babage,1791-1871)的笔记、手稿进行了整理和修正。从某种意义上说,她是世界上第一位计算机程序员。

  与其他流行的程序设计语言不同,Ada语言不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。因此,Ada语言的使用可大大改善软件系统的清晰性、可靠性、有效性、可维护性。Ada是现有的语言中无与伦比的一种大型通用程序设计语言,它是现代计算机语言的成功代表,集中反映了程序语言研究的成果。Ada的出现,标志着软件工程成功地进入了国家和国际的规模。在一定意义上说,Ada还刺破了“冯·偌依曼思维模式” (Von Newman Mind-set) 的桎梏,连同Ada的支持环境(APSE)一起,形成了新一派的所谓Ada文化。它是迄今为止最复杂、最完备的软件工具。Ada语言是美国国防部指定的唯一的一种可用于军用系统开发的语言,我国军方也将Ada作为军内开发标准(GJB 1383《程序设计语言Ada》)。

  Ada最初设计时关注于3个最重要的问题:程序的稳定性和可维护性,程序设计和人的行为接近,并且高效。这份语言的修订版是为了提供更大的灵活性和扩展性,存储管理的额外控制和同步,以及标准化的程序包以支持重要的应用程序领域,同时保留原来的重点。对于程序设计语言促进可靠性和简化维护难度的需求已被确立。因此程序可读性的重要性高于轻松地写代码。例如,语言规则要求程序变量应当明确声明并指定它们的类型。由于变量的数据类型是不变的,编译器可以确保对于变量的操作适用于该类型的对象。

  另外,有错误倾向的符号已经避免,并且语言语法避免了编码形式的使用,使更倾向于英语的结构。最后,Ada 语言提供了程序单元单独编译的功能,使程序开发和维护简便,同样也提供了在一个单元内多个单元之间的检测。考虑人类程序员的问题也在设计时被强调。总而言之,在继续避免过多复杂句型的缺陷的同时,尝试以一致系统的方式保持相对较少的底层概念。

  Ada 语言最初设计是为了构建长周期的、高度可靠的软件系统。它提供了一系列功能来定义相关的数据类型(type)、对象(object)和操作(operation)的程序包(package)。程序包可以被参数化,数据类型可以被扩展以支持可重用库的构建。操作既可以使用方便的顺序控制结构,通过子程序(subprogram)来实现,也可以通过包含并发线程同步控制的入口(entry)来实现。Ada 也支持单独编译(separate compilation),在物理层上支持模块性。

  Ada 包含了很复杂的功能以支持实时(real-time),并发程序设计(concurrent programming)。错误可以作为异常(exception)来标示,并可以被明确地处理。Ada 也覆盖了系统编程(system programming);这需要对数据表示和系统特性访问的精确控制。最后,提供了预定义的标准程序包,包括输入输出、字符串处理、数值计算的基本函数和随机数生成。

  Ada的风格在Pascal语言中得以延续。 

转载于:https://www.cnblogs.com/biggercat/p/5275515.html

第一位女程序员奥古斯塔·爱达·金相关推荐

  1. 中国第一个女程序员——张绮霞

    中国第一个女程序员--张绮霞 她是我国第一代程序员中唯一的女性,苏联专家什米格列夫斯基最优秀的弟子之一.我国第一颗人造卫星的地面跟踪,主要程序就是出自她的手笔. AD : 据我所知,她是北京人,195 ...

  2. 近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗

    作者 | 伍杏玲 转载自CSDN(ID:CSDNnews) 1969 年 7 月 20 日,"阿波罗 11 号"飞船登月,宇航员尼尔·阿姆斯特朗(Neil Armstrong)成功 ...

  3. 一位女程序员的奋斗路程

    不懂虚函数有什么用,不知道除了构造函数,析构函数外还有拷贝函数,还有深浅拷贝之分.每天下班后我没有直接回家,而是留在了单位telnet到SUNOS上,开始了我学习unix的计划.我觉得是时候该离开这个 ...

  4. 从乙方变成甲方后,我都经历了些什么?一位女程序员故事

    我94年,做前端开发的,毕业后在一家创业公司工作一年,后应聘到一家外包公司,公司把我外派到一家知名的国企单位驻点办公. 每个月工资6000元,每天九点上班,下午5:30准时下班,双休. 平时主要工作是 ...

  5. java获取字符串第一位_Java程序员经典面试题集大全 (十一)

    >>> 学习交流群 < < < 111. Java中byte表示的数值范围是什么? 答:范围是-128至127 112.如何将日期类型格式化为:2013-02-18 ...

  6. 一位女程序员的内心独白:我不想干了

    过去的那几年里我闹着哭着要做一名程序员,在每个人都会经历的努力下,我终于做到了,其实那个时候我并没有多少惊喜,因为我是付出了极大的代价的,在那之前我主要在搞网页设计,做得不错,可是我一心想着做程序员, ...

  7. 25岁,一位女程序员的幸运几年

    最近刚满25岁,上天也送我一个幸运的礼物,我成为我们组的开发经理. 虽然很小很小的一个职位,但是对于最近犹豫彷徨的我,这无疑是一针镇定剂. 我是一个女生,从事后端开发的女生.这一路走来,很多心酸,很多 ...

  8. 一位女程序员兼俩小子妈咪的人生历程(1)

    一出生,便成了现世报,老家所谓的千年老二,永远的不受待见,老妈疼老三,老爸疼老大,而老二,便无人疼爱,备受欺负和冷落.再赶上计划生育处于极速风口的年代,老二便也顺利的替代老三成为了超生的多余生物.于是 ...

  9. java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

最新文章

  1. Python--day8--Socket编程/异常处理
  2. dfs遍历和bfs遍历python_广度优先遍历(BFS)和深度优先遍历(DFS)
  3. [转载]出了国才明白的10件事~(MITBBS ZT)
  4. 如何在 SAP 电商云 Spartacus 代码里获取 Routes 路由信息
  5. P3501-[POI2010]ANT-Antisymmetry【hash,二分答案】
  6. string index out of range_Java 12 骚操作, String居然还能这样玩!
  7. pat 乙级 1056 组合数的和(C++)
  8. leetcode1039. 多边形三角剖分的最低得分(动态规划)
  9. cnn 回归 坐标 特征图_论文笔记 | CNN 是怎么学到图片绝对位置信息的
  10. 在 mysql数据库怎么知道的ip_用户名_密码_数据库_数据库ip怎么查
  11. CMMI3学习之路(一):在质疑与挣扎中偶然发现她竟是如此美丽
  12. 隐藏在计算机软硬件,隐匿在计算机软硬件背后的语言
  13. 硬盘容量的计算方法,这就是为什么实际容量总比官方标示少的原因
  14. python 偏态分布调整_如何处理偏态数据
  15. 如何用C语言画立体几何图形,立体几何图形公式大全
  16. WeQuant交易策略—5日均线
  17. 工厂自动化的生产线属于计算机应用,计算机试题
  18. wifi模块和云端服务器的协议,wifi模块连接云端服务器的尝试(esp8266连thingSpeak)
  19. 证书吊销列表(CRL)简单介绍与相关openssl C api功能测试
  20. Excel 常用数字函数

热门文章

  1. google地图--自定义标记以及点击事件
  2. 在EasyUI项目中使用FileBox控件实现文件上传处理
  3. (五)少儿scratch编程第二课--第一个游戏练习,弹弹球
  4. html测验               --(w3cshool)
  5. 为什么65535是极值
  6. 宝宝Oracle学习总结
  7. 在中国万网还有86块钱,能做什么?
  8. 【暑期实习】阿里c++研发一二面面经
  9. 用简单的例子解释量子纠缠
  10. 合伙人股权的退出机制