今日は、エイダ・ラブレイス伯爵夫人の誕生日(1815)。
そして、米国防総省規格番号 MIL-STD-1815 、「エイダ」言語が正式承認された日(1983)。
エイダは世界最初のプログラマ、と呼ばれる女性です。
バベジのよき理解者で、バベジが構想していた「解析機関」の講演集をまとめたりもしています。
まずはこちらの話から。
彼女は貴族の出身で、父親は「詩聖」とも呼ばれる詩人、バイロン卿。
もっとも、彼女はバイロンのたった一人の子供ですが、生後一か月で両親が離婚し、母親に引き取られています。
父母は離婚後会うことは無かったようですが、バイロンはエイダの実の父親として、この後も多少の交流はあったようです。
エイダ自身、結婚前は「エイダ・バイロン」を名乗っています。
また、以前に「悪魔とドラキュラの誕生日」として書いたのですが、バイロンがスイス旅行した際に同行し、後に「フランケンシュタイン」を執筆したメアリー・シェリーは親友でした。
エイダの母親は数学・科学好きで、エイダにも家庭教師を付けています。
その家庭教師の一人が、ド・モルガン。
プログラムの学習をすれば、必ず「ド・モルガンの法則」として名前が出てくる人です。
どんな法則か気になる人は自分で調べてください。
ここでは、「論理性を重視した数学分野」で特に深い功績のあった数学者だ、とだけ書いておきます。
さて、そんな重要人物に数学を教わったエイダは、論理性というものを正しく理解していました。
そして、母親が数学・科学好きだったため、数学者や科学者たちとも親交がありました。
17歳の時(1833)、エイダは知人の紹介で、当時 41歳のバベジと知り合います。
バベジは、1822年から階差機関を作成中でした。
しかし、政府も資金を提供した(世界初の国家プロジェクトだった!)階差機関の作成は、10年目にして暗礁に乗り上げていました。
バベジは「完璧な機械」を作ろうとするあまり、作成中なのに設計図を変更したり、職人の仕事のやり方に口をはさんだりするのです。
雇われていた機械職人は非常に技術の高い人でしたが、ついに10年目で仲違いし、彼は去ってしまったのです。
余りにも複雑な階差機関を作れる職人は、他にいませんでした。
そこで、バベジは階差機関のほんの一部を使って、卓上型に作り直した「見世物としての」階差機関を持って、多くの人に階差機関の素晴らしさを説いて回っていました。
これには、国家予算を使い果たしてまだ足りない開発資金を提供してくれる、貴族のパトロン探しの目的もありました。
…そして、貴族の出身であるエイダも、この「見世物」を見物することになるのです。
19世紀当時、女性の地位は低く、学のある女性はそれほど多くありませんでした。
しかし、エイダは階差機関の動作に非常に興味を持ち、的確な質問をバベジに浴びせかけます。
バベジは、この若い聡明な娘さんに対して、丁寧に解説を行います。
この関係は、その後もずっと、エイダが結婚して「ラブレイス伯爵夫人」となっても続きます。
エイダはバベジの最大の理解者であり、バベジはエイダにとって多くのことを教えてくれる教師でした。
1842年頃、バベジはイタリアで、当時考案していた「解析機関」のアイディアを講演しています。
解析機関は、先に書いた、見世物にした「階差機関」とは違う新たな機械です。
階差機関は計算機にすぎませんが、解析機関はプログラム可能なコンピューターでした。
この時の講演を、イタリアの軍事技術者メナブレアが、フランス語で記録していました。
これはメナブレア記録、と呼ばれます。
エイダもバベジもイギリス人でしたが、バベジの講演はイタリアで行われ、フランス語で書かれていました。
そこで、エイダはメナブレア記録を入手し、英語に翻訳します。
そしてこの際に、バベジの協力の下で膨大な注釈を入れました。注釈が、本文の2倍にも及びます。
実際に階差機関の「プログラム」も多数添えられていますが、これらのプログラムはバベジが書いたものだと考えられています。
しかし、以前はこれらのプログラムは、注釈を書いたエイダが作ったものだと考えられていたため、エイダを「世界最初のプログラマー」だとする説が広まっています。
もっとも、エイダもプログラムは書けたようで、彼女の手によるプログラムも残っています。
バベジとプログラムの作り方が明らかに異なるため、彼女の物だとはっきりわかるのだそうです。
#プログラマの方であれば、プログラムに「個性」が出ることはお分かりであろう。
また、バベジが作ったプログラムをよく吟味し、誤り…つまりは「バグ」の指摘も行っています。
ただ、エイダは数学知識はあまりなく、メナブレアの記述ミスで、明らかに間違っている数式をそのまま翻訳しています。
現代のプログラマにも、数学的知識はあまり持っていないがプログラムは出来る、という人は多数いますので、そういうタイプだったようです。
…ただし、当時はプログラマは、エイダとバベジの二人しかいないのですが。
エイダは、数学的な知識はそれほどありませんでしたし、それほど優れたプログラムを残したわけでもありません。
しかし、解析機関の可能性については、バベジよりも的確に把握していました。
バベジは、解析機関を優れた計算機として考えていましたし、そのつもりで設計していました。
しかしエイダは、解析機関が単なる計算機を超えたものであることを感じ、人工知能の可能性にまで言及しています。
時代はずっと下って 1983年。
米国防総省は、軍事用のプログラムを行うための専用言語を開発し「エイダ」と名付けました。
この言語の正式な「規格番号」は、MIL-STD-1815 。軍事(ミリタリー)標準(スタンダード)1815、という意味ですが、1815とはエイダの誕生年です。
適当につけた番号ではなく、軍の規格として使われる「通し番号」が、この数字になるようにタイミングを見計らって付けたようです。
そして、この言語が正式に「承認」されたのは、1980年の 12月10日、エイダの誕生日でした。
軍事用なので、とにかく「バグが出ないプログラムを書く」ために工夫が凝らされています。
プログラムの作りやすさよりも読みやすさを優先する、「名前空間」を導入し変数名が衝突しないようにする、「例外」処理のための機構を作る、など、当時としては最先端の言語でした。
その思想は、その後 C++ や Java など、多くの言語に取り入れられています。
同じテーマの日記(最近の一覧)
関連ページ
エイダ・ラブレイス 命日(1852)【日記 15/11/27】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |