忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ITエンジニアたちの軌跡①

■ プログラム2人の母
コンピュータ・プログラムには2人の「母」が存在する。オーガスタ・エイダ・ラブレス(1818~1852)とグレース・ホッパー(1906~1991)だ。エイダは制御システム向けプログラミング言語「Ada」にその名を残し、ホッパーはビジネス向け言語「COBOL」を考案したことで知られる。
初期の電子計算機に採用されていた配電盤(ワイヤード・プログラム)は、イギリスの数学者チャールズ・バベッジ(1791~1871)が考案したとされる。彼は三角関数の対数を正確に記述する「階差機関」(Difference Engine、1833年)、「解析機関」(Annalistic Engine、1842年)を構想し、パンチカードとワイヤード・プログラムの組み合わせを考案した。
オーガスタ・エイダ(1818~1852)は詩人ジョージ・バイロンの一人娘で、ラブレス伯爵の夫人という恵まれた環境にあった。数学に興味があった彼女はバベッジの研究室に勤めていて、1942年から43年にかけて、解析機関の解説書に注釈を付けた。その中でワイヤード・プログラムを記述したことから、「世界で最初のプログラマ」「プログラマの母」と称される。ただし、彼女はバベッジが作ったプログラムを清書(コーディング)しただけという説が強い。


■ コンパイラを考案
1954年1月にレミントン・ランド社が発表した「UNIVAC120」は、産業界に電子計算機が普及するきっかけとなった。しかしワイヤード・プログラムでは専門技能者が不足した。そこでホッパーは、共通プログラム(サブルーチン)を集約すれば、技能者不足を補うことができると考えた。
また1950年にマサチューセッツ工科大学が開発した磁気コア記憶装置が、フォン・ノイマンのプログラム記憶方式を実現可能にした。プログラムを0と1の機械語で記録しておくのだが、ホッパーは機械語を記号に置き換えることを思いついた。
記号でサブルーチンを呼び出し、繰り返し利用するやり方である。この方式は現在、「コンパイル」と呼ばれ、そのツールは「コンパイラ」と総称されている。

■ 1960年に標準化
1952年、自動プログラミング開発部長として記号を機械語に変換する「A0」というコンパイラを考案し、その5年後(1957年)、英語文から機械語を自動生成する「Flow-Matic」が完成した。UNIVAC120やその後継機は金融、証券、保険といった分野の業務処理に利用されたので、Flow-Maticはおのずから事務計算用プログラム向けだった。
A0に刺激を受けたのは、当時の電子計算機市場でレミントン・ランド社を追撃していたIBM社だった。IBM社でコンパイラの開発に取り組んでいたジョン・バッカス(1924~2007)は1957年、技術計算用のIBM704向けに「FORTRAN(FORmula TRANsration)」を発表、奇しくも同じ年に事務処理用と技術計算用の自然言語コンパイラが出そろった。
1959年、ペンシルベニア大学で開催された米国政府のプログラミング言語標準化委員会(CODASYL)でFlow-Maticは「COBOL(Common Business Oriented Language)」と命名され、こんにちに至っている。またホッパーはその後も海軍にとどまり85年少将に昇進、86年退役後はディジタル・イクイップメント(DEC)社の顧問となっている。


■ 「バグ」という用語を作った
グレース・ホッパーは、イェール大学大学院で最初に数学の博士号を取った女性でもある。第2次大戦でアメリカが反攻に転じた1943年、海軍に予備役として応召し、ハーバード大学の船舶計算研究室で電子計算機の開発に従事することになった。
ハーバード大学では、ハワード・エイケン(1900~1973)がリレー式の「MARKⅠ」(プログラム内蔵型計算機の原型)の開発を進めていて、ホッパーはそのプログラムを担当した。配電盤に入り込んで誤動作させた蛾を作業日誌に貼り付け、「実際にバグ(虫)が発見された最初の例」というコメントを付けた。
彼女は1949年、海軍中尉のままエッカート・モークリー社(1950年レミントン・ランド社)に移ってENIAC後継機の開発に従事したが、しばしばこの逸話を話した。これがプログラマの間で広まって、プログラムの不具合を「バグ」と呼ぶようになった。蛾を貼り付けた日誌は現在もワシントンD.Cのスミソニアン博物館に保存されている。

PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

Trackback

この記事にトラックバックする:

Copyright © IT人物列伝 : All rights reserved

「IT人物列伝」に掲載されている文章・画像・その他すべての無断転載・無断掲載を禁止します。

TemplateDesign by KARMA7
忍者ブログ [PR]