第2章 ソフトウェア黎明期

 〜機械を操る言葉の誕生
■ プログラム内臓式の誕生
技術
1950年代(1)
1950年〜1954年 
●プログラム内臓式の誕生 ●マサチューセッツのつむじ風 EDVACとEDSAC
プログラム内蔵式の誕生 TOP
 鳴り物入りで登場した世界最初の電子計算機ENIACだが、軍の要請で開発を急いだため、多くの欠点を克服できないまま実用化された。特にプログラミングの非効率性は重要な問題だった。

■フォン・ノイマンの提案
 ENIACは様々な問題を抱えていたが、中でも最大の問題点はプログラムが「ケーブルの配線」であったということだ。 ENIACにどのような計算をさせるかという指示は、プログラム線と呼ばれるケーブルを配線盤上でつなぎ換えることで与えられた。ENIACのプログラミングは、ケーブルの配線やスイッチのON/OFFという物理的な作業だったのである。 ある1つの計算を行うためには、膨大な数のケーブルをつながなくてはならない。さらに別の計算を行うとなると、その配列を変更する必要が生じる。過去の配線を記録しておき、即座に再配線する――といったことはできない。プログラムの再利用性がなかったのだ。この問題は、開発当初から指摘されていた。
 
■メモリにプログラムを
 ペンシルバニア大学・ムーア校のENIAC開発チームに、途中から1人の男が加わった。マンハッタン計画※1の顧問を務める科学者、ジョン・フォン・ノイマンである。 ノイマンは、記憶容量を増やせば、プログラムをコンピュータ本体の中に組み込むことができると主張した。計算手順そのものを電子の記憶とすることで、プログラミングの手間の軽減とプログラムの再利用が期待できる。これが「プログラム内蔵式」である。 この画期的なアイデアを提唱した人物の名にちなんで、プログラム内蔵式を採用したコンピュータ(つまり現在実用化されているほとんどすべてのコンピュータ)を「ノイマン型」と呼ぶのはご存じのとおりだ。
※1 第二次世界大戦中に進められた米国の原子爆弾開発計画の俗称。計画の中心となった米陸軍工兵隊の事務所がニューヨークに設置されたことから、ここをマンハッタン特別工兵管区と呼ぶことになり、計画の名前ともなった。この計画の成果は、1945年8月、広島と長崎を焦土と化したことで実証された。
EDVACとEDSAC TOP
 プログラム内蔵式を採用すれば、これまで「ただの高速な計算装置」だったコンピュータが、他の機器類を制御する汎用情報処理装置となる可能性が出てくる。

 ノイマンを加えた開発グループは、この思想を元にして新しい電子計算機の構想を固めていった。作業は1944年頃から始まり、EDVAC(Electronic Discrete Variable Autimatic Computer:エドヴァック)と名付けられたプログラム内蔵式コンピュータが誕生することとなる。 しかしEDVACは、残念ながら「世界最初のプログラム内蔵式コンピュータ」とはならなかった。ノイマンらのアイデアを知った英・ケンブリッジ大学のM.V.ウィルケスらが、EDSAC(Electronic Delay Stored Automatic Calcurator:エドサック)というコンピュータを1949年6月に完成し公開したため、こちらが世界最初のプログラム内蔵式コンピュータ」となった。 一方米国のEDVACは、フォン・ノイマン、ゴールドスタインら開発メンバーの一部が高級研究所(Institute of Advanced Study)に異動するなどの事情が重なって開発が遅れ、ENIAC登場の4年後、1950年にようやく完成して、陸軍弾道研究所に引き渡された。
 

マサチューセッツのつむじ風 TOP
 EDVACの開発が行われていた1945年、マサチューセッツ工科大学(MIT)では物理現象の解析・制御・シミュレートを行うためのコンピュータWhirlwind(ホワールウィンド:つむじ風、旋風のこと)が開発され始めた。

■磁気コアメモリの誕生
 次の戦争に備え、計算機技術の活用を重要視していた米軍は、航空機の飛行速度に瞬時に反応して制御を行う――要するにリアルタイム制御――システムを望み、資金援助を行った。 初期に開発されたWhirlwind I型は、多くのコンピュータ同様、記憶素子に真空管を使用していたため計算速度が遅く、現実の現象に瞬時に反応させることはできなかった。 そこで、Whirlwind計画の責任者ジェイ・フォレスターは、ドーナツ状の磁性体にコイルを巻き、磁化の方向で0または1を記録する磁気コアメモリを考案した。磁気コアメモリの反応速度は真空管に比べて格段に速く、以後、半導体メモリが普及する1970年代の中頃まで※2、磁気コアメモリはコンピュータの主要主記憶素子として活躍する。
※2 半導体メモリは1967年に出荷が始まっているが、普及するのは1970年代に入ってからのことである。商用コンピュータでは、1971年に出荷されたデータ・ゼネラル社のSuper Novaに初めて搭載された。
■Whirlwindと代数処理言語
 磁気コアメモリを搭載したWhirlwindは1953年に完成し、米軍の航空警戒制御システムSAGEに採用された※3。同時にMITでもふんだんに活用され、プログラミングの研究でも優れた功績を残した。 中でも、J.H.ラニングN.ジーラーが1954年に開発したWhirlwind用代数処理言語“Algebraic Translator”は、完全なプログラミング言語として実用化こそされなかったが、後の“FORTRANコンパイラ”の前身とも呼ばれる数式変換処理系だった。 その他、MITの教員や院生たちによって、代数処理、機械制御からグラフィックスに至るまで、Whirlwindの高速性を活かした多くのプログラミング実験が行われた※4。

 

 

 

※3 SAGE(セイジ)はSemi-Automatic Ground Environmentの略称で、米国とカナダに設置されたコンピュータ、レーダー基地、艦船、ミサイル基地などを結ぶ防空ネットワーク。Whirlwindを元にしたIBM社製コンピュータを用い、1963年に本格稼働した。
 
※4 後にWhirlwindの開発関係者やWhirlwindで学んだ学生たちは、MITのあるボストン近郊・国道128号線沿いに数々の半導体、コンピュータ関係の企業を興し始める。その結果“route 128”と言えば“ハイテク”を意味することになった。128という数字も「いかにもコンピュータ」という感じがする。
■ノイマン型
 ノイマンの発案と言われるプログラム内蔵式を採用したコンピュータを「ノイマン型」、そうでない方式を「非ノイマン型」と呼んで区別するが、元々「ノイマン型」は「ハーバード型」に対する言葉だった。 「ハーバード型」とはハーバード大学で実用化された電気機械式計算機Haravard Mark Iの方式を基本とした仕組みで、データと命令を別々のメモリ空間に保存する方式を指す。プログラム内蔵式では、データと命令は同じメモリ空間内に存在する。そこで両者を区別するため、ノイマン型/ハーバード型という表現が生まれたのだ。 しかし両者の仕組みは基本的な部分で共通しているため、「ハーバード型=非ノイマン型」ということではない。非ノイマン型とは、ハーバード型を含むプログラム内蔵式とはまったく異なる方式を用いたコンピュータの仕組みを指す。