编程史上的三位传奇女性,她们分别是历史上第一位给计算机写程序的人-阿达·洛芙莱斯,世界上第一台大型数字计算机的第三名程序员-葛丽丝·穆雷·霍普和负责阿波罗11号的MIT 仪器实验室软件工程部主管-玛格丽特·希菲尔德·汉密尔顿
今天是国际劳动妇女节,是为庆祝女性在经济、政治和社会等领域做出的重要贡献和取得的成就而设立的节日。
茶馆特地做了本次专题,跟园友们共同了解编程史上的三位传奇女性
阿达·洛芙莱斯
奥古斯塔·阿达·金·勒芙蕾丝伯爵夫人(Augusta Ada King, Countess of Lovelace,1815年12月10日-1852年11月27日)
著名英国诗人拜伦之女,数学家。计算机程序创始人,建立了循环和子程序概念。
为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人”。
为了纪念阿达·奥古斯塔对现代电脑与软件工程所产生的重大影响。
美国国防部将耗费巨资、历时近20年研制成功的高级程序语言命名为Ada语言,它被公认为是第四代计算机语言的主要代表。
1834年,英国数学家、发明家兼机械工程师查尔斯·巴贝其(Charles Babbage)发明了一台分析机试验品。
在其举办的沙龙上邀请了各界朋友观摩,阿达·洛芙莱斯和母亲也前往参观,尽管此时的阿达年纪轻轻,但看完后却能懂得它的运行原理,也正是这次活动阿达认识了巴贝其。
而后阿达还成为了巴贝其建造分析机的助手,并给他的这项发明创造带来了许多灵感和帮助。
1934年他开始设计分析机。
1840年夏,撒丁王国首都——都灵正在举办一个数学家和工程师的会议。巴贝奇带着他的分析机图纸也参加了会议,会上他向大家介绍了他的分析机。
有位叫路易吉·梅纳布雷亚的年轻数学家认为这是很了不起的发明,于是他为了将巴贝奇的分析机介绍给欧洲学界更多的人认识,特意撰写了一份名叫《分析机概论》的科学论文。
后来这份论文传到了阿达·洛芙莱斯手上,于是她就着手开始将其翻译成英文,此外她还对论文进行了详尽的注释,注释以字母A到G注记,长度将近原论文的三倍。
按照阿达·洛芙莱斯这些注释的说法,这台机器不仅仅执行计算,它还执行运算(operations),即“任何改变了两种或多种事物之间相互关系的过程”
因而“这是一个最普遍的定义,涵盖了宇宙间的一切主题”。比如今后这台机器有可能被用来创作复杂的音乐、制图和在科学研究中运用,在当时能有这样的预见,可谓十分难得。
阿达为关于巴贝其引擎写了详细的描述,还有每步的指导,告诉人们如何计算伯努利数,以便用于巴克其的分析引擎。
而这些注释给出了一个比巴贝奇以往提出的还要更具普遍性、前瞻性的未来设想。巴贝其非常认可阿达的贡献,称她是“数字女王”。
她的笔记里包含了一种机器算法,这种算法被认为是世界上第一个计算机程序。
巴贝其分析机后来被认为是最早期的计算机雏形,而阿达的算法则被认为是最早的计算机程序和软件。
可惜的是,巴贝其分析机并没有在她有生之年成为现实。而她的第一部算法,也淹没在历史的大潮当中。
阿达的笔记对于整个计算机史有着很重大的意义。于是她被公认为世界上第一个程序员。
但厉害之处还在于,阿达很有远见:她明白,数字不仅仅能代表数量,一台能操作数字的机器,可以处理任何能用数字代表的信息数据。
她的血统和贵族地位,本身就让“洛芙莱斯”名载史册;
但她对数学界的贡献,使她不仅成为计算机的先锋,而且成为科学界女性的先锋。
她死后一百年,于1953年,阿达之前对巴贝奇的《分析机概论》所留下的笔记被重新公布,并被公认对现代计算机与软件工程造成了重大影响。
在1980年12月10日,美国国防部制作了一个新的高级计算机编程语言——Ada,以纪念阿达·洛芙莱斯。Ada被誉为第四代计算机语言的最成功代表。
葛丽丝·穆雷·霍普
(Grace Murray Hopper,1906年12月9日-1992年1月1日)
生于美国纽约州纽约市,美国海军将军及计算机科学家。
她创造了现代第一个编译器A-0 系统,以及商用电脑编程语言“COBOL”,被誉为COBOL之母。
1928年她获得美国优等生的荣誉。同年,取得数学物理学士学位,留校担任了教师,被聘为韦莎学院的副教授。
利用所获得的奖学金,霍波再次考进著名的耶鲁大学深造。
1930年,她获得耶鲁大学数学硕士学位;1934年成为耶鲁大学历史上第一位女数学博士。
1943年,进入海军学校学习,并以第一名的成绩毕业。
刚佩上海军中尉肩章,便被任命为著名计算机专家霍德·艾肯(H.Aiken)博士的助手,参与Mark Ⅰ计算机的研制。
主要任务是编写程序,她为MarkⅠ,以及后续机器MarkⅡ、Mark Ⅲ编写出大量软件。
她后来回忆说:“我成了世界上第一台大型数字计算机的第三名程序员。”
1946年,她在发生故障的MarkⅡ计算机的继电器触点里,找到了一只被夹扁的小飞蛾,正是这只小虫子“卡”住了机器的运行。
Hopper顺手将飞蛾夹在工作笔记里,并诙谐地把程序故障称为“bug”。
bug的意思是“臭虫”,而这一奇怪的称呼,后来演变成计算机行业的专业术语。
1949年,她加盟第一台电子计算机ENIAC发明人莫契利和埃克特创办的公司,为世界上第一台储存程序的商业电脑UNIVAC编写了许多软件,开始第一次使用所谓“简短指令代码“。
1952年,在斯佩里·兰德公司兼任系统工程师,她率先研制出世界上第一个编译程序A-O,能够将类似英语的符号代码转换成计算机能够识别的机器指令,并发表了第一篇关于编译器的论文。
到了50年代中期,她又开发出Flow-Matic语言,为COBOL高级语言诞生创造了基础。
1959年5月,在五角大楼支持下,她领导着一个工作委员会,成功地研制出第一个商用编程语言COBOL。
1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多,Hoppe博士也因此被誉为计算机语言领域的先驱人物。
1980年,Hopper获得国际IEEE组织颁发的首届计算机先驱奖。
1985年11月,Hopper升为海军将军,是美国第一个到达这个官阶的女性。
1991年,布什总统在白宫授予Hopper"全美技术奖",这也是至今美国女性唯一获此殊荣的人。
1992年1月辞世,按照海军最高荣誉葬于阿灵顿国家公墓。
玛格丽特·希菲尔德·汉密尔顿
(Margaret Heafield Hamilton,1936年),美国计算机科学家,系统工程师和企业家.
曾担任 MIT 仪器实验室软件工程部的主管,帮助该实验室开发阿波罗计划中航天器搭载的飞行软件.
其编写的程序都以最大程度防止崩溃为目的,从而防止了阿波罗 11 号登月计划中缀。
软件工程师”这个术语正是由这位女性发明。
2003年,获得美国国家航空航天局特殊空间法科学和技术贡献奖。该奖项包括37,200美元,是NASA历史上任何个人的最大奖金。
2016年,她获得了奥巴马总统自由荣誉,是美国最高的民事荣誉。
图为玛格丽特站在阿波罗计算机指导手册(AGC)的源代码程序列表旁边
图为玛格丽特(最左)和同事们在MIT筹备阿波罗8的任务
资料来源:
http://mt.sohu.com/20161121/n473735168.shtml
https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)
http://it.sohu.com/20151030/n424729727.shtml
http://tech.sina.com.cn/it/2015-10-23/doc-ifxizwsm2306889.shtml
http://baike.baidu.com/link?url=gRcr1b-T9Za7RsYwIZZjuG7-XCjjQlyLJZNqQEHIJkiweSdPSlukT3Gr6Wmvkn5LWf_Y-1hvENkL-4UV8_jMmz9v0yDT-kbgUZ-4-iWnwQrH99Ah3coNS_9F0uz5AfAjgSWaW4cvTZC_-kIV7EZNRGKIDcTM1_1gIodbhJysP4G
http://baike.baidu.com/item/%E6%A0%BC%E8%95%BE%E4%B8%9D%C2%B7%E8%B5%AB%E6%9F%8F
https://en.wikipedia.org/wiki/Grace_Hopper
http://developer.51cto.com/art/200912/171577_1.htm