今天,8月17日,是史上最伟大的计算机科学家玛格丽特·希菲尔德·汉密尔顿(Margaret Heafield Hamilton)84岁生日。
@LegoNASAWomen
玛格丽特·汉密尔顿是美国计算机科学家,系统工程师和企业家,曾担任MIT仪器实验室软件工程部的主管(Director),帮助该实验室开发阿波罗计划中航天器搭载的飞行软件,其编写的程序都以最大程度防止崩溃为目的,从而防止了阿波罗11号登月计划中缀。
汉密尔顿被认为发明了软件工程一词。在这一领域,她还是并行计算、优先级调配、端对端测试等技术的先驱者。
1954年,她从汉考克高中(Hancock High School)毕业,随后入读厄勒姆学院(Earlham College),并于四年后获取文学士学位,专业是数学,辅修哲学。大学学成后,她曾短暂在做过高中数学和法语老师,其时她的丈夫仍未本科毕业。之后她搬到了麻省波士顿,原计划入读布兰迪斯大学,完成抽象代数方向的研究生学业,但1960年却得到了一份麻省理工学院的临时的软件开发职位,负责编写在PDP-1和LGP-30计算机上运行的天气预报软件,工作地点则是由马文·闵斯基领导的MIT计算机科学和人工智能实验室。她的直接上司是爱德华·诺顿·洛伦茨教授,后者正在气象学系研究对大气进行数学建模。在当时,计算机科学和软件工程还算不上是学科,程序员们都是通过工作积累经验。
1961至1963年间,她转到林肯实验室给北美防空司令部的半自动地面防空系统(Semi-Automatic Ground Environment)项目工作,期间为第一台AN/FSQ-7作战指挥中央系统编写探测敌方飞行的软件。同期,她还在美国空军剑桥研究实验室编写软件。
在结束前一段工作后,汉密尔顿加入了当时还名叫“MIT仪器实验室”的查尔斯·斯塔克·德雷珀实验室(Charles Stark Draper Laboratory),该实验室是阿波罗计划的一部分。而汉密尔顿则在1965年成为了其软件编程部门的主管。汉密尔顿负责编写全新的月球表面导航软件,以及后来该软件在其他项目中的各个版本(比如天空实验室计划)。
玛格丽特扶着的,正是阿波罗的软件代码清单。
@LegoNASAWomen
汉密尔顿的程序曾防止了阿波罗11号登月任务失败:在阿波罗登月舱到达月球表面三分钟前,数个计算机警报响起,表示计算机输入数据过多,原因是雷达系统更新了系统中的一个强制计数器,致使主机发生周期挪用。但由于汉密尔顿的软件结构扎实,整个系统仍然可以工作。阿波罗的机载软件是以异步执行为思想开发的,高优先级的任务能打断低优先级任务。起初,报警信号被认为是雷达系统被操作人员错误开启,但后来的一项分析报告揭示,一个硬件设计错误导致雷达给主机提供了错误信息。
3 分钟之后,4 点 17 分,阿波罗 11 号成功在月球表面静海基地着陆。最终,阿姆斯特朗迈出那“一小步”。
汉密尔顿本人曾这样总结这一事件:
登陆雷达开关放在了错误的位置,计算机收到了不少错误的信号。结果就是计算机既得执行着陆必须的计算,又要接受这些占用其15%时间的额外数据。但是它,或说是它里面的软件,聪明到可以判断它执行着不该执行的任务,所以就发出了警报……实际上,这台计算机不光能报警,它有着一整套恢复措施,这种情况下,计算机能自动剔除低级别任务以保证重要任务得以完成……如果当时计算机不能发现错误所在并从中恢复,我怀疑阿波罗号不能成功登月。
人类登上月球 50 年后,Google 不仅以一个主页 Doodle 纪念这一重大历史时刻,更在莫哈韦沙漠设立了 10.7 万块反光镜反射月光,形成软件工程师 Margaret Hamilton 的形象,向这位领导了阿波罗计划飞行软件的工程师致敬。反光镜组合形成的 Hamilton 的形象有 1.4 平方英里面积,比纽约中央公园还要大。图像在 1 900 多米的高空仍然可见。
Google 表示,通过巨型反光镜这种形式向汉密尔顿致敬,不只是感谢她在阿波罗计划中作出的突出贡献,而且还有更多方面是值得后人感激和学习的地方。
- 她是软件工程的先驱,软件工程则彻底改变了整个世界。
- 产品首先要想到用户的所需,将这个理念做到极致,从而使软件更可靠,更有用。
- 激励后人大胆地尝试各种“登月工程”(Moonshots),努力奋斗就有可能将其变成现实。
- 最重要的是,向汉密尔顿致敬也是提醒我们:不要扼杀孩子们的想象力和天性。成年人对世界总有一套看法,孩子们的看法则有可能与之不同,让孩子们尽情想象和尝试吧,这种自由在未来就可能诞生很多奇迹。
2016年,汉密尔顿被巴拉克·奥巴马(Barack Obama)授予总统自由勋章。
👍
楼主残忍的关闭了评论