热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AdaLovelace—世界上首位“程序媛”

当今互联网技术快速发展,但我们甚少听到女性在科技圈的发声,却越来越多听到对女性的负面评价:抗压能力差、很难独当一面、代码水平一般等。更甚者有企业在招聘时暗文规定:不招女程序员,或者给她

当今互联网技术快速发展,但我们甚少听到女性在科技圈的发声,却越来越多听到对女性的负面评价:抗压能力差、很难独当一面、代码水平一般等。

更甚者有企业在招聘时暗文规定:不招女程序员,或者给她们开出低的薪资。难道女性在技术界真的不如男性吗?然而翻开科技界的历史,会惊奇地发现女性在其中的地位和能力从来不亚于男性。

通过阅读《计算机科学概论》以及查阅相关资料,我整理了世界上第一位程序员——Ada lovelace的生平经历,让我们一起走进这位传奇女性的故事。

 

奥古斯塔·阿达·金·勒芙蕾丝伯爵夫人(Augusta Ada King,Countess of Lovelace,1815年12月10日-1852年11月27日)

 

著名英国诗人拜伦之女,数学家。计算机程序创始人,建立了循环和子程序概念。

为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人”。

为了纪念阿达·奥古斯塔对现代电脑与软件工程所产生的重大影响。

美国国防部将耗费巨资、历时近20年研制成功的高级程序语言命名为Ada语言,它被公认为是第四代计算机语言的主要代表。

1834年,英国数学家、发明家兼机械工程师查尔斯·巴贝其(Charles Babbage)发明了一台分析机试验品。

在其举办的沙龙上邀请了各界朋友观摩,阿达·洛芙莱斯和母亲也前往参观,尽管此时的阿达年纪轻轻,但看完后却能懂得它的运行原理,也正是这次活动阿达认识了巴贝其。

而后阿达还成为了巴贝其建造分析机的助手,并给他的这项发明创造带来了许多灵感和帮助。

1934年他开始设计分析机。

1840年夏,撒丁王国首都——都灵正在举办一个数学家和工程师的会议。巴贝奇带着他的分析机图纸也参加了会议,会上他向大家介绍了他的分析机。


有位叫路易吉·梅纳布雷亚的年轻数学家认为这是很了不起的发明,于是他为了将巴贝奇的分析机介绍给欧洲学界更多的人认识,特意撰写了一份名叫《分析机概论》的科学论文。

后来这份论文传到了阿达·洛芙莱斯手上,于是她就着手开始将其翻译成英文,此外她还对论文进行了详尽的注释,注释以字母A到G注记,长度将近原论文的三倍。

按照阿达·洛芙莱斯这些注释的说法,这台机器不仅仅执行计算,它还执行运算(operations),即“任何改变了两种或多种事物之间相互关系的过程”

因而“这是一个最普遍的定义,涵盖了宇宙间的一切主题”。比如今后这台机器有可能被用来创作复杂的音乐、制图和在科学研究中运用,在当时能有这样的预见,可谓十分难得。

阿达为关于巴贝其引擎写了详细的描述,还有每步的指导,告诉人们如何计算伯努利数,以便用于巴克其的分析引擎。

而这些注释给出了一个比巴贝奇以往提出的还要更具普遍性、前瞻性的未来设想。巴贝其非常认可阿达的贡献,称她是“数字女王”。

她的笔记里包含了一种机器算法,这种算法被认为是世界上第一个计算机程序。

巴贝其分析机后来被认为是最早期的计算机雏形,而阿达的算法则被认为是最早的计算机程序和软件。

 

可惜的是,巴贝其分析机并没有在她有生之年成为现实。而她的第一部算法,也淹没在历史的大潮当中。

阿达的笔记对于整个计算机史有着很重大的意义。于是她被公认为世界上第一个程序员。

但厉害之处还在于,阿达很有远见:她明白,数字不仅仅能代表数量,一台能操作数字的机器,可以处理任何能用数字代表的信息数据。

她的血统和贵族地位,本身就让“洛芙莱斯”名载史册;


但她对数学界的贡献,使她不仅成为计算机的先锋,而且成为科学界女性的先锋。

参考文献:

https://zhuanlan.zhihu.com/p/28877129

https://baike.baidu.com/item/阿达·洛芙莱斯/12010940?fr=aladdin&fromid=6825878&fromtitle=Ada+Lovelace







推荐阅读
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 【Java数据结构和算法】008栈
    目录0、警醒自己一、栈的应用场景和介绍1、栈的应用场景一个实际的场景:我的思考:2、栈的介绍入栈演示图:出栈演示图 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • 本文通过个人经历引出关于数学教学中的一个常见误解——被零除的结果,并深入探讨了浮点数中负零的存在及其背后的数学原理。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 本文探讨了在Qt框架下实现TCP多线程服务器端的方法,解决了一个常见的问题:服务器端仅能与最后一个连接的客户端通信。通过继承QThread类并利用socketDescriptor标识符,实现了多个客户端与服务器端的同时通信。 ... [详细]
  • 深入解析 Zend Guard 4 功能与配置
    本文旨在通过图文并茂的方式详细介绍 Zend Guard 4 的核心功能及其配置方法,特别适合英文阅读能力有限的技术人员。文中不仅提供了详细的步骤说明,还附带了实际操作中的注意事项,帮助读者更好地理解和应用这一工具。 ... [详细]
  • 多用户密码验证与加密登录系统
    本文介绍了一种基于多用户密码文件的加密登录方法,通过读取用户密码文件并使用简单的加密算法实现安全登录。文中详细描述了程序的设计思路及其实现过程。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • 随着物联网技术的快速发展,NB-IoT(窄带物联网)作为一项关键的技术,正逐步成为实现大规模设备互联的重要手段。本文将详细介绍NB-IoT技术的特点、应用场景及其在实际项目中的应用实例。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有