blogこの広告は、90日以上更新していないブログに表示しています。Calender2016の21日目として書かれたものです。ソースコードをgithub上で公開しました。この記事はNASAの仕様書片手にソースコードをふらふら興味の赴くままに眺めるものです。ストーリーとして通ってるわけではないので散発的に見ていただければと思います。なんか笑えるコメントアウトを漁ってるだけで終わるかもしれない。そんなことはなかった。資料を読み漁り過ぎてしまった。AGCあれこれ写っている人はマーガレット・ハミルトン。MITの研究者でアポロのソフトウェア開発を担当した女性です。これ何しているかというと自分たちの書いたAGC関連書類の隣に立っている写真なんですね。これ一枚でいろいろな苦労が伝わってきます。どの程度の量だったのか、公開されているソースコードを調べてみました。5,900行ひょええ。デバッグとかも満足に行えないことを考えるとすごい量ですよね。作業量は1400人年にも登ったのだとか。AGCは司令船に1台、着陸船に1台計2台が搭載されました。求められた役割は以下のプロセスにおける自動航法・誘導です。メモリはプログラムを全て0と1に書き起こしたあと、町工場の女性の手によって1つづつ銅線に編み込んで作ったようです。4100個のNORゲートが一つのコンピュータに使用されています。1960年代当時ICチップは世界最先端の部品でした。アメリカの60年代のICチップ生産量の8割がアポロ関連だったのだとか。ソフトウェアやプログラム技法は完全に1から作られました。バージョン管理システムはYULと呼ばれています。余談ですが、AGCのエミュレーターをvirtualAGCからダウンロードすることができます。これが一番笑いました。テンポラリコードのまま月まで行ったんですね。p68THE_LUNAR_LANDINGという名前の通り月着陸を行っているプログラムですね。この中に頻出するp(数字)というのはサブルーチンの名前です。NASAは略語好きなんですかね。それぞれ何をしているのか資料を調べて見ました。