【IT偉人伝/グレース・ホッパー】幾多の困難を乗り越えながら「プログラム言語の母」と呼ばれるようになった女性

Grace Murray Hopper

 ども、Plusboxで1番の自由な人、YOZOです。
 今回のblogは、いたって真面目に記した、いわゆる「奇麗な作品」です。


 さて、今回から気ままに始めた「IT偉人伝」。本ブログは、IT業界における偉人を、YOZO目線で勝手に紹介させて頂く、紹介される側にとっては甚だ迷惑な企画です。


◆グレース・マレー・ホッパー

 記念すべき第1回のターゲットは、「事務員や官吏等、専門家ではない人でも、誰もがプログラミングできるように」と願い、かつ、幾多の困難を強い信念で乗り越え、これを成し遂げた女性、グレース・マレー・ホッパー(Grace Murray Hopper, 1906年12月9日 – 1992年1月1日)さんを取り上げたいと思います。


 現代日本において、1900年代のアメリカを駆け抜けた彼女の名前や功績をご存知の方は少ないかもしれません。しかし、彼女は、コンピュータ科学と情報処理分野の先駆者であり、そして、アメリカ海軍の准将(最終階級)でした。

Grace Murray Hopper
Grace Murray Hopper

◆プログラミングの壁に挑んだ、プログラム言語の母

 彼女は、2進数や数学記号でプログラムを書くのが当然であった(コンピュータが2進数や数学記号しか取り扱えなかった)1950年代に、例えば「給与から所得税を差し引く(Substract income tax from salary)」と、日常の英語に近い言語を入力さえすればプログラムが完成してしまうという、まったく新しいプログラミング言語を開発しています。
 彼女自身も「誰もそれを信じようとしなかった」と言っていますが、現代としては当然のことであっても、これは、当時としては画期的であり、彼女が完全なる新しいプログラミング言語を発明したといえる数少ない人であると言っても過言でないほどの功績です。

英語に近い言語と2進数

 そして、開発から60年を経た現代においても銀行等で使用されている
(ATMや窓口で現金を預払するときにお世話になっているかも・・・。) プログラム言語「COBOL(COmmon Business Oriented Language(一般的な事務処理のための言語)」の祖母(Grandma COBOL)としても有名です。
 また、コンピュータ等の動作の不具合を示す「バグ」、これを取り除く「デバッグ」といった現代でも使い続けられている用語を広めたのも彼女とされています。


◆信念を貫いて、とにかくやってみる

 ホッパーは、1906年12月9日にアメリカのニューヨーク州で生まれました。幼いころの彼女は、その動作を確かめるために、家にある複数の目覚まし時計を分解したこともあるくらい、好奇心の旺盛な子でした。しかし、これを彼女の生まれつきの習性であると理解していた両親は、そんな行為を無下にはせず、知的好奇心を育んだようです。
 その後、1924年に彼女は、ヴァッサー大学に入学し、幼いころから興味のあった物理学と数学の勉学にいそしみます。他にも経済学、財政学、植物学、生物学、地質学、電子工学のコースを習得したと言われています。
 やがて、時は第二次世界大戦を迎え、彼女は海軍に参加して自国に貢献せざるを得ないと感じ、入隊を決意します。しかし、様々な事情により、これを拒否されてしまった彼女は、思い切って海軍予備役に参加することを決めたのでした。そこにおいて彼女は、ハーバード大学の兵器計算局のプロジェクトに配属され、75万個以上の電子部品で構成された巨大なコンピュータであるHarvard Mark I(アメリカ初の電子式コンピュータ)のプログラミングスタッフを務め、大砲の照準角の計算を行いました。彼女にとってのそれは、幼き頃の目覚まし時計に似た魅力的な装置であり、同じように分解・理解を行うことをためらいませんでした。

Harvard Mark I

 彼女は、終戦後においてもハーバード大学やレミントンランド社(現Unisys)で、Harvard Mark II及びIII並びにUNIVAC Iの開発チームに参加しました。ただ、その間も「2進数や数学記号で表される機械語に関する特別な訓練を受けた者でなくても、誰もがプログラミングできるようにしたい」という強い信念を抱き続けます。当然、周囲のエンジニアは「コンピュータは計算のみしかできず、英語は理解できない」と否定的でした。しかし、コンピューティングの新しい世界を開くカギがプログラミングの改良であると考えていた彼女は、数年の歳月をかけ、1950年代後半に英語を用いたプログラミング言語である「FLOW-MATIC」を完成させます。これは、非専門家がプログラムが何をしているのかを理解することを可能にし、そして新しいプログラマがプログラミング言語を学ぶのをより簡単にする、画期的な出来事でした。

FLOW-MATIC

 当時、IBMといったコンピュータ関連の大手企業は、FLOW-MATICのように革新的な言語を開発するために競い合っていましたので、様々な亜種の規格が派生しており、それらの標準化・汎用化が必要であることが明らかになりました。
 このことから、アメリカ国防総省の提案の下、技術顧問としての彼女とそのスタッフたちは、FLOW-MATICを基礎として、プログラミング言語「COBOL」の最初の仕様を完成させることになったのです。

◆うつ、アルコール依存

アルコール・・・。

 エンジニアとして、数学者として、順風満帆に歩んだかのように見えたホッパーでしたが、当時の女性のキャリアアップにはガラスの天井がありました。それにぶち当たったためか、次第に彼女にはストレスが蓄積し、また、プライベートでの離婚、仕事のプレッシャー等から、うつ病やアルコール依存症を発症するようになります。一時は、酩酊と無法な行為によって警察に逮捕されたり、川に身を投げるといった自殺企図を起こす等、大変な危険な状態にあったようです。
 ホッパーは、うつ病との闘いの経過についてKurt Beyerという人と話し合っていますが、彼の著書にはその回復の仕方については詳述されていません。したがって、憶測の域を出ませんが、理解のある場所で、理解のある人に囲まれてコンピュータに関する研究に没頭することができたことが、治癒の鍵となったのではないかと考えられています。


◆功績

世界初のコンパイラを開発

 ハーバードMark IIIの頃のプログラミングは、複雑な記号と数字として構成され、単純なプログラミングでさえ並外れた技術知識が必要でした。ホッパーは、この状況をとても憂い、「人々は、複雑な記号や数字を用いるよりも、英語の文を書く方がはるかに簡単」という考えの下、プログラムを英語で記述できるようにし、これを機械語に翻訳したものをコンピュータが実行するという世界初の方式を完成させました。この際に用いるソフトウェアがコンパイラであり、これは、一連の英単語等を命令として使用する自然言語に近いレベルのプログラム言語を、コンピュータが理解できる低レベルな機械語に翻訳するためのものです。

コンパイラの役割(人間が理解できる言語と機械語の翻訳)

 これにより、コンピュータがあたかも英語を理解したかのように見做すことができ、自然言語に近い言語でのプログラミングが可能となりました。そればかりか、機種ごとに、対応したコンパイラを開発すれば、複数種類のコンピュータで同一のプログラムを実行させることができるようになりました。

バグ

 あるとき、ハーバードMark IIというコンピュータが故障してしまいました。原因は、コンピュータ内の17000個のリレーのうちの1つを、2インチの蛾がショートさせたことでした。しばしば、大量の熱を発生させる当時のコンピュータは、内部コンポーネントに昆虫を惹きつけたのです。
 蛾はホッパーの手によって取り除かれ、Mark IIは修復されたといいます。この蛾は、「初めてバグが発見された実例」という文章と共に作業日誌に貼り付けられました(この日誌は、スミソニアン博物館に収蔵されています。)。彼女は、この出来事を好んで語ったため、コンピュータの不具合を意味する言葉としての「バグ」という用語が広まるようになったと言われています。

コンピュータに入り込んだおそらく最初の虫
(ホッパーの作業日誌より)

 また、1950年代半ばにホッパーは、ハードウェアのバグ取り除くことを指す「デバッグ」という用語の概念を拡張して、プログラミング(ソフトウェア)のエラーを含めることにしたとも言われています。

コーディング標準の開拓

 仕事を簡単に、楽にするために、プログラムの共通部分を集めて共有することを奨励し、バグの発生、作業の退屈さ、冗長さを減らすことに成功しています。

◆先見の明

 ホッパーは、Howard Brombergが書いているように「数学者、コンピュータ科学者、社会科学者、企業政治家、マーケター、システムデザイナ、そしてプログラマ」であり、そして常に「先見の明のある人」でした。彼女が幼いころから興味のあった数学、物理学という特定の領域・分野のみの平面的な知識のみではなく、他の学問をも修め、それら融合して立体化させた知恵は、IT業界史に残る偉業を達成できる礎となったのかもしれません。もちろん、良いアイディアを決して諦めなかったことも、その一因でしょう。
 また、彼女は、戦時中こそ様々な気象条件化における対空砲の射程表作成、ロケット弾道の計算を行うために使用されていたコンピュータも、やがてビジネスで用いられるようになると考えていました。この“気づき”は、専門家ではない人であってもプログラミングできるようになるきっかけとなったコンパイラ等の開発につながっています。これらが無ければ、コンピュータは今日の幅広い用途を達成できなかったことでしょう。

 最後に、ホッパーの言葉を紹介してこのblogを終了したいと思います。

“If it’s a good idea…go ahead and do it. It is much easier to apologize than it is to get permission.”


・良い考えであれば、やってしまいなさい。許可を得るよりも謝罪をし(許しを求める方が)はるかに簡単なんだから!

YOZO

Plusboxで一番の自由な人、YOZOです!!
座右の銘は「水滴石を穿つ」、
仕事のモットーは「産業は学問の道場なり」。

Plusboxでは、企画屋さんです♪

でも、密かに、プログラミング歴25年なんです!
Coding love☆ テスト嫌い..(´・ω・`)

得意なのは、COBOL、FORTRAN、PL/I(マジです(笑))。
もちろん上記みたいなめんどくさいけど楽しい言語を
使いこなしているんで、人並み程度にC#、JAVAとかも…。

とりあえず、基本的にGotoは使いませんのでご安心をw

関連記事

  1. ロードマップ

  2. Nim Ver1.0.0おめでとう

  3. Dropboxの巻 レスポンス編

  4. 【なんとなくSwift その1】Swiftでよく忘れる配列、辞書型の書き方

  5. iOSアプリ「予定メモ」をリリースしました。

  6. iOSアプリ「+Read」アップデートのお知らせ

  7. 【なんとなくSwift その4】横幅が可変なUIButtonをつくる。タイトルの長さによってUIBu…

  8. iOSアプリ「テキトーに通知するアプリ」をリリースしました。

PAGE TOP