マーガレット・ハミルトン氏が90歳で死去した。NASAのアポロ計画の宇宙船に搭載された誘導ソフトウェアの開発に携わり、「ソフトウェア工学」という用語を生み出したキャリアで知られる。ハミルトン氏は、1969年から1972年にかけて月面着陸を行った6回のミッションで使用されたソフトウェアを開発するチームを率い、後に2016年、アメリカ大統領自由勲章を受章した。
重大なコンピューター負荷に対処したコード
ハミルトン氏の最も重要な貢献は、誘導システムのソフトウェアに安全機構を設計したことだった。このシステムは、宇宙船のコンピューターがリアルタイムで処理できる能力を超える命令を受け取った際、重要なタスクと二次的なタスクを区別するよう設計されていた。優先度の低いタスクを取り消し、ミッションに必要な処理を再実行するとともに、宇宙飛行士に警告を発した。
この設計の効果は、1969年のアポロ11号ミッションで月着陸船「イーグル」が着陸する際に現れた。バズ・オルドリンが高度やその他のデータを表示する命令を入力すると、負荷の増大によりコンピューターが警告を発し始めた。しかし、安全機構が着陸に必要なタスクを維持したため、宇宙船は着陸を中止することなく、静かの海に安全に到達できた。
気象シミュレーションからアポロ計画へ
ハミルトン氏は、1958年にアーラム大学で数学を専攻して卒業した後、キャリアを開始した。マサチューセッツ工科大学の数学者エドワード・ローレンツとともに働き、気象シミュレーションに使用されたLGP-30コンピューターをプログラミングした。その後、1961年にMITのSAGEプロジェクトへ移り、アメリカ空軍が敵の可能性のある航空機を捜索するのを支援するソフトウェアを作成した。
SAGEでの業務とアポロ計画の研究を通じて、ハミルトン氏はソフトウェアの信頼性とエラーの防止に注力した。その一例が、後に「ローレンのエラー」として知られるようになった事象である。ミッションシミュレーターに事前設定された発射シーケンスを入力したことで、システムが停止した。ハミルトン氏はこの種のエラーを防ぐ保護機能の追加を求め、その後、アポロ8号のミッション中に実際に類似した入力が行われ、航法データの復旧が必要となった。
アポロ計画を超えて続く遺産
アポロ計画終了後も、ハミルトン氏はエラーの防止と障害への耐性に取り組み続けた。1976年にHigher Order Softwareを設立し、1985年に同社を離れてHamilton Technologiesを設立した。同社の主力製品は、エラー防止と防御的プログラミングを優先しながら複雑なソフトウェアシステムを開発するためのUniversal Systems Languageだった。
ハミルトン氏の開発に貢献したアポロのソフトウェアは2015年にGitHubへ追加された。また、Googleは2019年、モハーヴェ砂漠の太陽光パネル農場に10万枚を超える鏡で作った巨大な肖像を通じて、彼女を称えた。
なぜこのニュースが重要なのか?
ハミルトン氏の遺産の重要性は、彼女のコードが歴史的偉業の一部となったことだけにあるのではない。障害が発生する前のシステム設計から信頼性が始まることを示した点にもある。ソフトウェアはコンピューターへの過剰な負荷を防いだわけではないが、何を犠牲にし、何を維持すべきかを判断し、ミッションを脅かしかねない状況を組織的な復旧手順へと変えた。この考え方は、運用環境上、容易に失敗したり再試行したりできないシステムにおいて、今なお中核的な意味を持っている。