Ada Lovelace传记–第一个计算机程序员

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


奥古斯塔·阿德·金·诺埃尔(Augusta Ada King-Noel),洛夫莱斯夫人(Countess of Lovelace).

在当今世界,名字远不那么复杂,她通常被称为Ada Lovelace.

她还被称为“数字妖姬”,被认为是第一个计算机程序的作者。.

艾达·洛芙蕾丝(Ada Lovelace)

尽管有些人可能会对这一主张提出异议(请参阅:多重发现理论),但毫无疑问,她是一位真正的有远见的和有才华的知识分子,在现代数字计算机的发展中发挥了核心作用.

早在1840年代,她就发表了对当今我们所称的现代计算的详细描述:通用机器,可做许多不同的事情,例如播放音乐,操纵图形并为重型机械提供动力.

直到一个世纪后,她的愿景才被完全实现.

背景

Ada Lovelace于1815年12月10日出生于英国。她是安娜·伊莎贝拉(Anabella)诺埃尔·拜伦和拜伦勋爵的女儿.

父母

鉴于她本人是两个截然相反的思想家的产物,因此她能够连接许多她那个时代的主要知识分子未能看到的想法也就不足为奇了。.

拜伦勋爵是他那个时代最著名的诗人之一。他是国际名人。拜伦还因冒险而臭名昭著,其中涉及他拥有一只宠物熊并从人类头骨中喝酒的故事.

阿纳贝拉·拜伦(Anabella Byron)则相反。她是一个受过良好教育和虔诚的女人。 Anabella还是一位天才的数学家,他将顺序和逻辑放在直觉之上.

就他们的精神而言,两个人不可能再相距遥远。众所周知,拜伦勋爵嘲讽地把阿纳贝拉称为“平行四边形的公主”。来自拜伦勋爵,这不是一个夸奖.

第一年

他们的婚姻从一开始就很艰难。其中包括来自拜伦勋爵的一系列违法行为,包括与他自己的同父异母姐姐的一次公开婚外情.

经过12个月的动荡婚姻,阿纳贝拉离开了拜伦勋爵,并带走了艾达。几个月后,面临刑事指控的拜伦勋爵(Lord Byron)在1816年被驱逐出他的英格兰故乡。到艾达(Ada)8岁时,她的父亲已经去世了.

教育

可能因拜伦勋爵鲁re的举止而感到害怕的阿纳贝拉(Anabella)担心艾达会跟随他的脚步.

她严格控制了艾达(Ada)的教育,严格控制了科学和数学饮食,以遏制自己对父亲的浪漫情感产生的食欲。.

阿纳贝拉(Anabella)对女儿接受教育的坚持带来了好处。艾达(Ada)从私人老师那里接受了一流的教育.

当时不寻常。因为人们普遍认为女性在智力上太虚弱而无法研究这种深奥的概念.

随着Ada的成长,她将与她那个时代一些最负盛名的知识分子交织在一起。她与David Bruster,Charles Dickens,Michael Faraday和Charles Babbage等人擦手肘.

巴贝奇和差异引擎

Ada Lovelace肖像查尔斯·巴贝奇(Charles Babbage)是一位文艺复兴时期的人,被许多人视为“计算机科学之父”。

他是一位经验丰富的工程师,哲学家,数学家和经济学家。他是分析学会的创始人,创建了重要的数学表格,并帮助建立了英国的邮政系统.

Charles Babbage和Ada Lovelace之间的合作为我们提供了对现代计算发展的宝贵见解.

当他们在1833年6月5日由巴贝奇(Babbage)举行的聚会上相遇时,这是一场真正的智力竞赛.

差异引擎

在聚会上,巴贝奇(Babbage)热情洋溢地谈到了他的差分引擎-一种能够创建复杂数学表的机械机器.

以今天的标准来看,这台机器并没有什么令人印象深刻的东西,但在当时,它是科学创新的顶峰。此外,它展示了现代计算的基础.

至少可以说,引起了Ada的兴趣。许多客人认为这是一种有趣的好奇心,而艾达认为这是一种范式转变.

作为艾达(Ada)一位数学老师的妻子,索菲亚·弗朗德(Sophia Frend)在回忆录中说:

当其他游客以这种表情凝视着这个漂亮的乐器的工作时,我敢说那种感觉,据说有些野蛮人首先看到镜或听枪时就表现出了某些感觉。他们对它的奇妙之处有一个强烈的认识-拜伦小姐(她年轻的时候)了解它的工作原理,并看到了发明的伟大之处.

艾达与巴贝奇的会面是长期友谊的开始.

尽管巴贝奇和洛夫莱斯之间的年龄相差14岁,但两者有很多共同点。艾达(Ada)的远见和创造力激发了他多产的天才.

第一个计算机程序

差异引擎的后继产品是一台更复杂的机器,称为分析引擎.

分析引擎使用打孔卡系统进行工作,当时的提花织机使用了相同的技术.

巴贝奇(Babbage)在都灵的分析引擎上作了演讲,这启发了意大利科学家路易吉·费德里科·梅纳布雷(Luigi Federico Menabrea)于1842年发表有关他的想法的论文.

这是一个激发Ada天才的内核。艾达·洛夫莱斯(Ada Lovelace)决定翻译该论文,并附上自己的笔记.

她的想法很快使原始论文黯然失色,其手稿比原始论文长三倍.

意义与贡献

但是Ada Lovelace不仅是Babbage的助手和翻译.

她看到了计算机和计算机科学领域的世界变革技术.

如果巴贝奇(Babbage)是现代计算机的父亲,那么她就是现代软件的母亲.

伯努利数字

她的天才确实可以分解为她负责的几个关键创新。首先是伯努利数。伯努利数字只是一系列复杂的数字.

艾达·洛夫雷斯(Ada Lovelace)编写了一种算法,该算法使分析机每次都能得出正确的数字.

实际的计算并不那么重要-真正的发展是,您可以编写一种算法,将一个复杂的应用程序分解为一系列步骤,将这些步骤写下来,然后每次将它们馈送到计算机上以获得相同的结果.

这是有史以来第一个编写的计算机程序,也是第一次有人考虑购买一台计算机来计算您事先不知道的东西.

Lovelace的眼光超出了Babbage最初设计用于处理机器的一系列数字和表格.

她意识到,如果您可以为计算机编写程序来操纵数字,那么可以编写程序来教学计算机来操纵符号。.

现在,我们将其称为符号逻辑,这是现代计算机的核心基础.

当然,当Lovelace在分析机上工作时,这种情况仍然存在.

但是很明显,您可以对分析机进行编程以计算任何抽象的数学函数,而不仅仅是基于简单算术的函数.

通过意识到算法可以基于符号逻辑,可以进一步深入研究抽象,因为最终输出的潜在形状和形式不受实际数字的限制.

正是符号逻辑的这种发展,再加上巴贝奇的硬件使分析引擎成为图灵机,因此使巴贝奇获得了“现代计算机之父”的称号。

Lovelace做出了最后的整体贡献,最终促成了今天我们所知的计算机。她意识到所有的电脑都可以.

Lovelace在她的笔记(实现了大多数想法,特别是笔记G)中写道:“分析引擎编织代数模式,就像提花织机编织花朵和叶子一样。”

在1800年代,这是一个巨大的飞跃.

她说的是,只要输入正确,就可以使分析机做任何您想做的事-无论您是想要地毯的图案,方程式的结果,甚至是新音乐.

输出无关紧要-只要您可以发出正确的指令,计算机就可以产生您可能需要的任何东西.

今日Ada Lovelace

Ada Lovelace代表希望,创新和进步.

在某种程度上,她作为妇女权利的代表人物的地位阻碍了她的成就和知识才能。.

但是她本身就是一个知识分子巨人,在历史上一些最重要的科学发展中发挥了重要作用.

艾伦·图灵(Alan Turing)曾经说过:“如果巴贝奇(Babbage)活了七十五年,那我就会失业了。”他很清楚艾达的工作.

在第二次世界大战期间,他担任英国军方的密码破解者时就依靠她的笔记.

儿童编码

Ada Lovelace的作品可以激发各地饥饿的年轻人的思想。以下是旨在向儿童介绍计算机科学的书籍和媒体的链接.

  • Ada Lovelace |画我的生活:关于Ada Lovelace的视觉吸引力卡通片.

  • Laurie Wallmark的Ada Byron Lovelace和Thinking Machine(2015):面向1-4年级儿童的书.

  • 女孩想着一切:凯瑟琳·蒂米什(Catherine Thimmish)的女性发明创造故事(2002):面向5至8年级儿童的书.

有关Ada Lovelace的更多信息

想更多地了解Ada Lovelace的生活和工作?查看下面的资源.

  • 多萝西·斯坦(Arothey Stein)的《阿达(Ada),一生与遗产》(A Life and Legacy)(1985):关于阿达的传记.

  • 詹姆斯·埃辛格(James Essinger)的《艾达算法》(Ada’s Algorithm,2014年):关于艾达·洛夫莱斯(Ada Lovelace)的生活和工作的书.

  • 差异引擎:查尔斯·巴贝奇和《建立第一台计算机的探索》(2002年),多伦·斯瓦德(Doron Swade):详细介绍差异引擎和工作的书.

Ada:以她的名字命名的编程语言

Ada编程语言最初是为国防部开发的,专门用于对安全性和可靠性至关重要的关键系统.

Ada是一种结构化的,面向对象的高级编程语言,内置了对并发,同步消息传递,受保护对象和协定编程的支持。.

除了继续用于军事用途外,Ada还广泛用于关键业务项目,例如空中交通管制,卫星,商用飞机,医疗设备,公共交通系统(包括多个地铁系统和TGV高铁)以及银行业务行业.

Ada代码设计

因为它是专为依赖高度安全性且需要始终运行的环境而设计的,所以Ada代码比许多其他编程语言更安全,更灵活.

这是一种强类型的语言,这意味着其编译器对于传递给函数的参数更加严格,并且更有可能报告错误.

它还使用编译器来识别潜在的运行时错误,以提高代码安全性.

Ada是一种类似于ALGOL的编程语言,这意味着它包含了算法语言的许多概念,例如为逻辑语句(如if和then)添加了保留字。.

Ada还包括许多非ALGOL功能,例如类型定义,指针和枚举.

其它功能

Ada的其他一些显着功能包括:

  • 模块化编程,允许将程序的各个部分作为独立的模块运行,从而提高了代码维护和可靠性.

  • 异常处理,允许Ada程序解决其自身的运行时错误.

  • 标量范围,允许程序员显式设置变量的可接受值范围.

  • 系统编程,使程序员可以在硬件级别上操作计算机,包括为记录字段指定位布局并为数据放置分配特定地址的能力.

  • 能够在编译时限制语言功能以满足安全标准和认证要求的能力.

  • 强调可读性并限制了模棱两可的编码,这使得它成为查看,排除故障和重用的简便语言.

  • 严格的语言定义和标准化使Ada具有高度的可移植性,因为编译器必须遵守这些定义,只有少数例外。这使得将Ada代码从一个编译器移植到另一个编译器甚至从一个平台移植到另一个平台变得容易。.

样例程序

这个简单的程序要求用户输入并使用它来计算用户的年龄(以月为单位).

它是为免费的GNAT编译器编写的。它使用GNAT IO库。该程序演示了Ada语法的许多基本功能.

与Gnat.Io;使用Gnat.Io;
过程Month_Age是
年:整数;
月:整数;

开始
放("输入您的年龄(岁): ");
获得(年);
月:= 12 *年;

放("你是 ");
看跌期权(月);
放(" 几个月大.");
月末年龄;

讨论区

加载IO库后,程序将创建一个新过程Month_Age,然后分配两个变量:实际过程包含在“ begin”和“ end”命令中.

“输入”命令将文本输出到屏幕。 “获取”命令收集用户输入,在上述情况下,将其分配给变量Years.

分配后,将Years值乘以12以建立Months的值.

该过程的最后三行将文本以及新的月数(它们的月龄)输出给用户。.

历史

Ada是由Jean Ichbiah在1970年代后期设计的,用于响应美国国防部(DoD)的提案要求。.

国防部正试图整合其嵌入式计算机项目中使用的大量编程语言(超过450种),其中许多已经过时或依赖于过时的硬件.

它成立了由业界专家组成的高级语言工作组,以审查当前的语言并确定满足国防部需求的最佳语言。但是小组最终确定没有现有语言可以满足他们的要求.

在收到一些建议后,该小组选择了由Ichbiah领导的CII Honeywell Bull提交的建议。.

他们提议的语言Ada受到该团队在该十年前开发的另一种编程语言LIS的重大影响.

尽管最初声称Ada会很快被通用编程社区所采用,并且很可能会成为世界上最主要的编程语言,但事实证明,早期实现对于大众读者而言太迟钝了.

批评家称Ada过于复杂(毕竟,它试图填补数百种嵌入式语言的角色)并且不可靠.

尽管遭受了这些挫折,Ada仍然坚持不懈,并且在整个1980年代和1990年代初,Ada代码被实施到了许多系统中,并且在1991年,美国国防部要求所有Ada都用于其所有软件,这一要求在1997年被取消。.

尽管Ada可能不是大多数业余爱好者决定尝试使用的第一语言,但由于Ada固有的安全性,它已成为需要稳定,可靠代码的行业的重要工具。.

Ada编译器

有许多可用的Ada编译器:

  • GNAT:GNU NYU Ada转换器是免费编译器,可在大多数平台上使用.

  • Green Hills Ada优化编译器:适用于高端工作站的Ada交叉编译器。他们还提供AdaMULTI,一个集成的开发环境.

  • PTC ObjectAda:本机和交叉编译器,尤其适用于嵌入式系统.

在线资源

Ada建立了一个强大的用户社区,尤其是对安全性感兴趣的用户,并且不乏建议,团体和在线教程来帮助您入门或进一步了解Ada。.

这里有一些我们的最爱:

  • Ada信息交换所:如果编程语言可以拥有自己的支持者网站,那将是Ada。在这里,您可以找到最新新闻,有关当前标准的信息,在线教程,甚至可以深入了解Ada为什么比其他所有方面都好得多的原因.

  • AdaCore大学:这是针对Ada语言的完整培训计划。该站点具有数十个基于视频的电子学习模块,涵盖Ada基础知识,主要功能,与其他编程语言的交互以及并发性。.

  • Wikibooks提供的Ada编程:该免费参考资料提供了有关Ada的背景知识,语言功能的常识,基础技能以及基于项目的教程。每章都包含有关主要概念和示例代码的教程.

  • Ada2012:Ada在2012年看到了一些重大改进,并且本网站捕获了所有这些改进,包括与过去版本的并排比较。它还具有参考手册,教程和最新的Ada新闻.

  • GNAT学术计划:如果您正在考虑计算机科学的学位并且想重点攻读Ada,则此网站会列出所有将Ada纳入课程范围的大学列表.

图书

Ada图书库不像其他一些编程语言那样丰富,并且大多数书名都具有一定程度的先前编程知识.

更重要的是,今天有很多最好的书都是在Ada2012之前写的.

它们仍然是很好的资源,并且提供了很好的语言指导,但是您应该意识到已经进行了一些更改,因此您需要在某些时候重新进行修改(在您需要时,请查看上面的资源部分)。重新准备).

  • John Barnes在Ada2012中进行编程:尽管介绍了Ada,但这是一本高级文章,假定读者已经具有丰富的编程知识。它采用的方法是,Ada不仅是另一种编程语言,还是用于复杂软件工程的工具.

  • McCormick,Singhoff和Hugues的Ada构建并行,嵌入式和实时应用程序:专为具有顺序编程知识的本科生和程序员而设计,旨在扩大读者的知识,以包括并行和分布式计算的高级概念。它非常注重理论,因此,如果您正在寻找动手教程,这可能不适合您,但是如果您想全面了解,这是必读的.

  • Dale,Weems和McCormick撰写的使用Ada 95进行编程和解决问题的方法:尽管不是最近的文本,但我们还是将其列入了我们的清单,因为它是为新程序员设计的为数不多的Ada书籍之一。本书着重于讲授良好的编程习惯,引导学生逐步掌握主要编程概念,包括解决实际问题,定期测试,热身练习和定期进行的快速检查.

  • Mordechai Ben-Ari撰写的Ada for Software Engineers:顾名思义,这是经验丰富的程序员的另一资源。本书因对某些读者过于复杂而受到批评。但是,公平地说,Ada是为复杂的软件开发而设计的,因此,如果您无法处理这本书,Ada可能不是您的最佳语言。作者重点介绍Ada语言的基本概念,并通过一些案例研究来证明其应用。它还包括与其他语言(包括C和Java)的比较,以简化过渡.

你应该学艾达吗?

Ada并不是大多数人的第一门编程语言,它可能永远不会用于有趣,快速的编程,例如Web应用程序或移动应用程序.

但是,对于想要专注于高度安全,关键任务应用程序的严肃的程序员,Ada应该是您接下来可以学习的程序的清单的顶部,尤其是如果您对公共交通,航空电子,金融或投资感兴趣的话到太空探索的下一件大事.

Ada Lovelace:第一个程序员

艾达·洛夫莱斯(Ada Lovelace)并不是我们要塞入计算机历史的象征性女人。她是第一个程序员,众所周知,通常是软件人员而不是硬件人员得到最多的关注.

而且,她几乎不是计算机和技术历史上唯一的女性高大人物。她是我们所有人的灵感来源-但尤其是在高科技世界中仍然称职的女性.

其他有趣的事情

我们有更多与计算机有关的指南,教程和信息图:

  • 搜索引擎的历史:从图书馆数据库到现代引擎缓慢发展的整个过程.

  • 万维网的历史:了解从ARPANET一直到物联网的旅程.

  • Ada编程简介和资源:了解有关以Ada Lovelace命名的编程语言的全部信息.

孩子们可以学习编码的有趣方式

您的孩子并不需要成为一名专业的程序员来学习高超的技能,也不必花很多时间学习编程。因此,我们创建了信息图表“儿童可以学习编码的有趣方式”。有专门的语言供儿童学习概念。谁知道呢?也许他们会成长为一名科技亿万富翁.

孩子们可以学习编码的有趣方式
孩子们可以学习编码的有趣方式

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me