球友会

热点资讯

NASA首位女程序员辞世:首创“软件工程”,凭一己之力拯救登月…

防走丢,大家也可以在“ 事儿君看天下 ”找到我 关注起来,以后不“失联”~ 奥巴马给她颁奖,比尔·盖茨为她鼓掌。 这位女士名叫玛格丽特·汉密尔顿(Margaret Hamilton), 是为“阿波罗登月计划”开发飞行软件的功勋软件工程师, 为她所在的领域做出了突破性的贡献。 (奥巴马为玛格丽特·汉密尔顿颁奖) 而且, 如今大家熟悉的“软件工程(software engineering)”这个词,也是她创造的。 9月30日,玛格丽特去世了,享年90岁...... (玛格丽特·汉密尔顿) 玛格丽特于1936年8月17日出生于印第安纳州,娘家姓希菲尔德(Heafield),爸爸是诗人,祖父是一位校长。 1955年,她开始在密歇根大学学习数学,后来转学到妈妈的母校厄勒姆学院,1958年获得数学学士学位,辅修哲学。 本科毕业后,为了支持丈夫攻读法律学位,她和丈夫搬到了马萨诸塞州,她计划在布兰迪斯大学攻读抽象数学研究生学位。 但后来计划改变,1959年年中,她开始在麻省理工学院气象系工作,为天气预报开发软件。 当时,计算机科学和软件工程都是尚未成熟的学科,程序员们主要通过在工作中实践来学习。 (年轻的玛格丽特) 1961年至1963年,玛格丽特在麻省理工的林肯实验室工作,该实验室是由美国国防部委托麻省理工管理的、由联邦政府资助的研究和开发中心,目的是为美国开发防空系统。 她参与了半自动地面环境(SAGE)项目,该项目一开始用于天气预测,后来被开发用于防空军事领域,她作为程序员之一,为美国空军用于搜索潜在敌机的AN/FSQ-7原型计算机编写软件。 正是在这个项目上的优秀表现,让她成为美国宇航局(NASA)阿波罗飞行软件首席开发人员的候选人...... (玛格丽特) 1965年,玛格丽特了解到“阿波罗登月计划”,她觉得这个项目非常激动人心,希望自己也能参与。 后来她如愿以偿,加入了麻省理工学院仪器实验室(后改名为德雷珀实验室),该实验室负责为阿波罗登月计划开发阿波罗制导计算机。 因此, 她成为阿波罗登月项目中的第一位女性程序员, 后来晋升为软件工程部主任。 (玛格丽特) 她负责带领团队,编写和测试阿波罗飞船指令舱、登月舱以及后续的天空实验室空间站的所有机载飞行软件; 团队的另一部分工作内容,是负责设计和开发系统软件,包括错误检测和恢复软件,例如重启程序和显示界面例程(也叫优先级显示),这些都由玛格丽特带领团队设计和开发。 (工作中的玛格丽特) 玛格丽特不但有解决问题的能力,也有敏锐的预判能力和批判性思维,这些优势多次在阿波罗登月项目中,起到关键作用。 有一次,她4岁的女儿劳伦在摆弄阿波罗指令舱模拟器时,发现了一些问题。 在模拟器上,玛格丽特他们会假装宇航员,对软件、硬件、协同工作等一切情况进行测试。 女儿劳伦经常看她这样做,于是也学着她在模拟器上这样玩。 结果有一次,劳伦在实验室操作模拟程序时,不知怎么启动了一个名为P01的发射前程序,导致模拟器崩溃。 这让玛格丽特心头一紧:“我当时想,‘我的天啊,怎么会这样?’” 这个错误后来被命名为“劳伦错误”,玛格丽特很快就总结了经验教训, 她编写了一个插件,以防宇航员在飞行过程中不小心启动P01程序, 相当于给这一可能发生的错误,提前打了补丁。 (玛格丽特) 而且, 玛格丽特还提出一项软件修复方案,防止在实际任务中再次发生此类错误,但她的方案最终被否决,理由是训练有素的宇航员绝不会犯同样的错误。 结果,在1968年的阿波罗8号任务中,玛格丽特担心的情况真的发生了—— 宇航员吉姆·洛弗尔(Jim Lovell)在飞行过程中,意外启动了P01程序,导致导航数据丢失。 玛格丽特和她的团队被召来解决这一问题,她之前提出的修复方案被整合到程序中,这也成了“防御性编程”的早期案例...... (玛格丽特) 玛格丽特等早期的程序员在工作中边摸索边总结,他们提出的创新方案,在成功登月的过程中发挥了重要作用。 1969年7月2日,‌阿波罗11号首次完成载人登月任务,宇航员尼尔·阿姆斯特朗(Neil Armstrong)成为第一个踏上月球的人类。 人们记住了他那句“这是一个人的一小步,却是整个人类的一大步”,但却不知道,这次登月行动差一点在最后时刻功亏一篑。 (玛格丽特在一次学校展示活动中,坐在指令舱模拟器中) 就在阿波罗11号的登月舱即将着陆在月球表面的前三分钟,机载计算机突然发出多个警报,这说明发生了错误。 错误检测显示,由于硬件开关故障,计算机过载,系统可能无法完成这次复杂的登陆任务。 关键时刻,玛格丽特和团队开发的优先级驱动软件派上了用场。 该软件会关闭不必要的后台任务,优先处理当前最重要的任务,也就是登月。 在玛格丽特和团队的努力下,情况化险为夷,登月任务最终顺利完成。 (玛格丽特) 2015年,她参与开发的阿

about image