MENU

グラディ・ブーチ氏講演 ◎ソフトウェアエンジニアリングの歴史  ~第4回|ソフトウェアエンジニアリングへ 

 

 

『科学計算におけるパンチカード法』を著した
ウォーレス・エッカート

 ウォーレス・エッカート(Wallace Eckert、図表25)が活躍したのはこのころです。彼は1940~41年に、『Punched Card Methods in Scientific Computation(科学計算におけるパンチカード法)』という素晴らしい本を書きました。

 これは、ソフトウェアエンジニアリングにおける初めての方法論でした。というのも、この本には、こういう計算がしたければ、こんなふうにパンチカードを計画・設計し、こういう手順でやればいい、ということが書かれていたのです。

 彼は、初めて方法論を作り上げ、自分がどういう方法を取ったのかを皆に知らせました。人々がどのように試行錯誤をして究明しているかを見て、それをまとめ始めたのです。

 

図表25 ウォーレス・エッカート(Wallace Eckert)  コロンビア大学所蔵  *Wikipedia

 

グレース・ホッパー
「ソフトウェアそれ自体に価値がある」

 さて、思い出してほしいのですが、ここでスティビッツ(George_Stibitz)が登場してきます。今まで語った歴史と、再び1つになりました。これは、ハードウェア・パイプラインです。この写真には、面白い話があります。

 写真(図表26)右側に見える女性は、グレース・マレー・ホッパー(Grace Murray Hopper、図表27)。彼女の名前は以前にも出てきましたね。再び登場です。彼女が関わってくるのはこのあたりの時代からです。まだ、マシンが、ただのマシンだった時代です。ハードウェアとソフトウェアの区別がなく、その2つは、同じ1つのものでした。 

 

図表26 ハードウェア・パイプライン

 

図表27 グレース・マレー・ホッパー(Grace Murray Hopper) *Wikipedia

 

 そして再び、リレー論理というアイデアを発明したジョージ・スティビッツ(George_Stibitz、図表28)が出てきます。理論計算機科学というアイデアを提唱したジョン・フォン=ノイマン(John von Neumann、図表29)もいます。アラン・チューリング(Alan Turing、図表30)のものとは別のアイデアです。フォン=ノイマンはマンハッタン計画に関わり、核崩壊に関連する数学的問題のいくつかを扱っていました。

 偉大な物理学者であり、量子コンピュータの始祖でもあるリチャード・ファインマン(Richard Feynman、図表31)らは、女性の計算者たちを指揮していました。こうした多くの計算は、数千人の計算者の手で行われていたのです。

 しかしフォン=ノイマンは、これをスピードアップできるという認識をもっていました。それが彼らを、ハワード・エイケン(Howard Aiken、図表32)と巡り合わせることになったのです。

 その出会いは偶然でした。エイケンはたまたま、ニューヨーク州ハムステッドのある駅にいました。フォン=ノイマンもそこにいました。2人は偶然出会ったのです。そしてお互いがどんな仕事をしているのかを知りました。ENIAC(図表33)という仕事は、そこから生まれたのです。

 ENIACは結局、完成するのが遅すぎて何の役にも立たなかったのですが、その後に起こることの種をまいてくれました。

 これは、グレース・ホッパー(Grace Hopper)が活躍していた時代です。彼女は、ENIACとその後継機の開発に携わり、気がついたのです。「ちょっと待ってよ、あなたたちは、こんな一点物の、どれも違う機械を作っているけれども、使っているアルゴリズムは同じ。じゃあ、機械に依存しないプログラミングを作ればいいのでは?」と。

 ここで突然、エイダ・ラブレス(Ada Lovelace)が唱えていた、「ソフトウェアそれ自体」というアイデアが、非常に現実味を帯びてきます。グレースは適切にも、「ソフトウェアとは、それ自身の議論と発見の価値があるものの一部だ」と主張したのです。

 

図表28 ジョージ・スティビッツ(George_Stibitz) *Wikipedia

 

図表29 ジョン・フォン=ノイマン(John von Neumann) *Wikipedia

 

図表30 アラン・チューリング(Alan Turing) *Wikipedia

 

図表31 リチャード・ファインマン(Richard Feynman)*ノーベル財団所蔵 *Wikipedia

 

図表32 ハワード・エイケン(Howard Aiken) *Wikipedia

 

図表33 ENIAC *Wikipedia

 

チューリングが基礎を築き
トミー・フラワーズやドロシー・デュ・ボアッソンらが実現    
 

 先ほど、コンピューティングを生み出したのは女性だという話をしました。その後コンピューティングは、言ってみれば「機織り機の時代」を迎えます。つまり、パンチカードを使うジャカード織り機のことです。

 そして、現代のコンピューティング分野で起こった多くのことは、第2次世界大戦と冷戦中に生まれた理論的基礎に基づいています。当時は、3つのことが同時に起こっていました。

 アメリカではENIACとその後継機の開発が続いていました。ドイツでは、コンラート・ツーゼ(Konrad Zuse、図表34)が、戦争とは関係なく開発を行っていました。

 ツーゼは、現代のコンピューティングの父になっていたかもしれない存在です。彼はドイツ政府からの資金提供は受けずに、ほぼ独力でZ1とZ2、Z3(図表35)を開発しました。そのほとんどは戦争で破壊されてしまったのですが、彼は、プログラムできるコンピュータというものを初めて考えついたのです。

 

図表34 コンラート・ツーゼ(Konrad Zuse) *Wikipedia

 

図表35 Z3 (ドイツ博物館所蔵、複製品) Wikipedia

 

 それから、イギリスの政府暗号学校が置かれたブレッチリー・パークでも、戦いは起こっていました。そこでは、チューリングという素晴らしいコンピュータサイエンティストのアイデアを応用して暗号を解読しようとしていたのですが、その機械を実際に作るにはエンジニアが必要で、そのエンジニアがトミー・フラワーズ(Tommy Flowers、図表36)でした。

 皆さんは、『イミテーション・ゲーム エニグマと天才数学者の秘密』という映画は観ましたか?  とてもよい映画で、役者も素晴らしいのですが、歴史描写はひどいものです。というのも、この映画では、チューリングが1人で何もかもやったように見えるのですが、実際は違います。彼は大勢の人たちと協力し合っていました。

 チューリングは、Bombe(図表37)という暗号解読機のアイデアを思いつきました。しかし、より複雑な暗号に対応できる解読機を作ったのはトミー・フラワーズのような人たちだったのです。

 

図表36 トミー・フラワーズ(Tommy Flowers) *Wikipedia

 

図表37 Bombe *Wikipedia

 

 次の写真(図表39)は、トミーたちが構築したColossusという暗号解読機です。ちなみに、これも女性が動かしていました。ただしこのColossusは、限定されたプログラム機能しか備えていませんでした。プログラムして、さまざまなタスクを実行したら、またプログラムし直さなければならなかったのです。ただし、少なくとも、プログラマーがその後どんな仕事をすることになるのかの起源はここにありました。

 チューリングは基礎を築きました。しかし、トミー・フラワーズがいなけれれば、それは現実のものにはなりませんでした。そして、Colossusのプログラマーとなった女性たちの力もありました。

 実際、そのなかの1人、ドロシー・デュ・ボアッソン(Dorothy Du Boisson、図表40)という女性が、最初にプログラミングのアイデアを思いついたそうです。そして、少し前に出てきたギルブレス(図表41)は、このアイデアにヒントを得ました。「ちょっと待てよ、このアイデアは、自分たちのプログラムのワークロードに応用できるのでは?」と考えついたのです。

 先ほどツーゼの話もしました。彼は、他に先んじて、プログラム制御できるコンピュータを開発していました。ただ当時の彼は、主流ではない道に入っていました。[第5回へ続く]

 

図表39 Colossus *Wikipedia

 

 

図表40 ドロシー・デュ・ボアッソン(Dorothy Du Boisson) *Wikipedia

 

図表41 フランク&リリー・ギルブレス *Wikipedia

 

・・・・・・・・

◎グラディ・ブーチ氏講演 「ソフトウェアエンジニアリングの歴史」

第1回 エンジニアリングは高級神官イムホテプから始まる 
第2回 ソフトウェアエンジニアリングのさまざまな定義 
第3回 Adaから始まりエンジニアリングの基礎が築かれる
第4回 ソフトウェアエンジニアリングへ
第5回 サブルーチン、コンパイラ、FORTRANの誕生  
第6回 ソフトウェアが現実のものになる
第7回 アルゴリズムからオブジェクト指向へ
第8回 ソフトウェアエンジニアリングの第3の黄金時代
第9回 ソフトウェアは、ハードウェアの可能性の物語を囁く

・・・・・・・・

◎グラディ・ブーチ(Grady Booch)氏

グラディ・ブーチ(Grady Booch)氏は1955年、米国テキサス州生まれ。オブジェクト指向ソフトウェア開発方法論Booch法とソフトウェア開発モデリング言語UMLの開発者。現在、IBM フェロー。ACM フェローおよびIEEEのフェローでもある。*Wikipedia

[IS magazine/i Magazine]

新着