コンピュータの定義をめぐる論争

「最初のコンピュータとは何か?」という問いにどのように答えるのかは、コンピュータをどのようなマシンと定義するのかという問題でもある。「コンピュータと呼ばれているもの」をどのように定義するのかに関しては様々な議論がある。
ここではそうした定義をいくつか紹介しておくことにしよう。

1.プログラム内蔵方式の電子式計算機

プログラム内蔵(stored program)方式とは何であるかという概念的規定それ自体も歴史的に捉える必要があるが、ここではとりあえず星野力(1995)『誰がどうやってコンピュータを創ったのか? 』p.35における「プログラムは、それが実行されるときには、計算機械の内部にあるメモリ中に記憶され、計算と同じ速度で取り出されなくてはならない」という規定のように考えておくことにしたい。

a.プログラム内蔵方式という考え方の発案者をめぐる議論
プログラム内蔵方式という考え方の発案者はノイマンとされることが多いが、これに関しては異論がある。

星野力(1995)『誰がどうやってコンピュータを創ったのか』共立出版の第6章3節「プログラム内蔵方式は誰の発明か?」(p.104-)でこの問題が詳しく論じられている。
 そこでは、エッカートとモークリーによって1945年9月に書かれたEDVACのプログレスレポート、バークスによる証言(Burks et al.,1988) 、1970年代のスペーリ・ランド対ハネウェルのENIAC訴訟のときに弁護士によって発掘された文書「文書磁気ディスクに関する覚書」などを根拠とする、エッカートが1944年1月にはプログラム内蔵方式に気づいていたという説、および、それに対するゴールドスタインの批判、および、エッカートとモークリによるゴールドスタインの議論に対する反論などが紹介されている。
 なおこの論争に関して星野氏自身は、「エッカートらは磁気ディスクや遅延線というハードウェアを考案したことは、直ちにプログラム可変内蔵というアーキテクチャも考案したことである、といったような認識をどこかにもっているように思える。これに対して後世では(当時でもフォン・ノイマンは)、プログラム可変内蔵方式の本質は論理的なレベルにおけるアーキテクチャと、そのチューリングマシンとしての万能性にある、と理解していることである。これが正しいとすれば、フォン・ノイマンの業績は、プログラム可変内蔵方式を論理的に明確にし発展させたということであろう。」(p.109)というように主張している。
  また横山保(1995)『コンピュータの歴史』中央経済社は「ENIACの大きな欠点の一つは、プログラムの作成がプラグ、ソケットによるワイヤリング(wiring)方式であることであった。一つのプログラムをつくるのに、数人の人によって数日を要し、数百のワイヤーの結合を行わなければならなかった。この欠点を解決し、完全なフレキシシビリティをもたせるようにしたのがプログラム内蔵式(stored program)の考えである。この考えは主に、ジョン・フォン・ノイマン(John von Neumann,1903-1957)によるものである。」(p.84)とする一方で、Burks, A.W.,Godstein, H.H., von Neumann, J. (1946) “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument”を典拠として「1944年、ゴールドスタインはノイマンにENIAC計画を説明している。そして両者はプログラム内蔵式の考えを発表している」(p.85)としている。

[関連参考論文]
Burks, A.W.,Godstein, H.H., von Neumann, J. (1946) “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument”
https://www.cs.princeton.edu/courses/archive/fall09/cos375/Burks.pdf

Metropolis and J. Worlton,(1972) “Trilogy of Errors in the History of Computing,” First USA-Japan Computer Conference Proceedings, pp.683-691

Metropolis,et al.(Ed.1980)History of Computing in the Twentieth Century,Academic Press

本書中に、Burks, W.”From ENIAC to the Stored-Program Computer : Two Revolutions in Computers”(pp.311-344)や、Eckert,J.P.”The ENIAC”(pp.525-539)、Mauchly, J.W. “ENIAC” (pp.541-550)などが収録されている。

Burks,Alice R., Burks,Arthur W.(1988) The Fisrt Electronic Computer, The Atanasoff Story, The University of Michigan Press[邦訳:大座畑、重光監訳『誰がコンピュータを発明したか』工業調査会,1998]

b.プログラム内蔵方式を最初に実装したコンピュータをめぐる議論

プログラム内蔵方式の意義は多くの人々が理解していたが、コストなどの問題から実装は遅れた。

イギリスのSSME(Small-Scale Experimental Machine)とする説

Napper, R.B.E.(2000) “The Manchester Mark 1 Computers1” in Rojas,R., Hashage, U. eds. (2000) The First Computers History and Architectures, pp.365-377
同論文のアブストラクトでNapperは、”This paper provides a brief history of the four related computers that were designed and built in Manchester from 1948 to 1951, and a summary specification of their architecture. Each machine has a strong claim to be a “first” in the history of stored-program computers, specifically allelectronic computers with an electronic store.”としながらも、SSEMが内蔵プログラム方式で駆動した最初のマシンであるとしている。(“The SSEM (June 1948) was the first such machine to work, thus realizing and proving the von Neumann ideal.”,p.365)

Burton, Christopher P. “Rebuilding the First Manchester Computer” in Rojas,R., Hashage, U. eds. (2000) The First Computers History and Architectures, pp.379-386
同論文のアブストラクトでBurtonは次のように1948年6月21日に内蔵プログラムを初めて動かした書いている。
The University of Manchester Small-Scale Experimental Machine, the “Baby,” first ran a stored program on June 21, 1948, thus claiming to be the first operational general-purpose computer. ”

大駒誠一(2005)『コンピュータ開発史』共立出版,p.123およびp.126
「SSEMは、・・・1948年6月21日に最初のプログラムが動いた。世界で最初のプログラム記憶方式コンピュータである。」(p.123)
「このSSEMの性能はまったくたいしたものではなかったが、ちゃんとメモリ上に置いたプログラムが作動し、いわゆるフォン・ノイマン型の紛れもなくプログラム記憶方式のコンピュータである。EDSACを最初のプログラム記憶方式のコンピュータとする文献は多いが、これは間違いである。EDSACは最初に実用になったコンピュータではあるが、Babyのほうが約1年早くプログラム記憶方式のコンピュータとして動いた。」(p.126)

なお大駒誠一氏は、Okoma, Seiichi(2000) “The First Japanese Computers and Their Software Simulators” in Rojas,R., Hashage, U. eds. (2000) The First Computers History and Architectures, p.421で富士フィルムのFUJICが1956年3月に日本で製造された最初のプログラム内蔵方式コンピュータであるとしている。
“The FUJIC, a monumental computer, was completed in March 1956. It was the first stored-program computer
made in Japan.”

日本語版ウィキペディア「計算機の歴史」
日本語版ウィキペディアでは、「(ENIACは)メモリに格納できる問題なら、どんな問題も計算できた。しかし、プログラムは配線やスイッチの状態によって定義されており、プログラム内蔵式とは言えない。」「プログラム内蔵式として設計された最初のコンピュータはEDVACだが、実際に最初に稼働したのはEDVACではない。エッカートとモークリーがプロジェクトを離れ、製作が停滞したためである。最初のノイマン型(プログラム内蔵式)コンピュータは1948年のマンチェスター大学の通称 “Baby”、正式名 Small-Scale Experimental Machine である。」としている。すなわち、Small-Scale Experimental Machineは「ウィリアムス管メモリを使ったプログラム内蔵式」で1948年6月に稼働していたのに対して、修正版ENIACが「配線変更とスイッチ設定によるプログラム制御とあわせ、Function Tables と呼ばれる機構をプログラム格納用ROMとして使ったプログラム内蔵式も可能」となったのは1948年9月、EDSACが「水銀遅延線メモリによるプログラム内蔵式」で稼働したのは1949年5月である、としている。http://ja.wikipedia.org/wiki/計算機の歴史(2013年6月23日アクセス)

SSMEに関する上記のような評価にも関わらず、SSMEすなわちSmall-Scale Experimental Machineはその名称を直訳すると「小規模実験機」となることからもわかるように、コンピュータ製品とは位置づけがたいものである。実際、大駒氏自身も上記のように述べる一方で、同じ箇所で、SSEMの記憶容量はわずか32語(1語は32ビット)に過ぎず、実行可能な命令もったの7種類であったことから、「コンピュータというよりはむしろ、ウィリアムズ・キルバーン管(一種のブラウン管)がメモリとして使えるかどうかの、動作テスト機械であった」(p.123)としている。

イギリスのEDSACとする説

星野力(1995)『誰がどうやってコンピュータを創ったのか』共立出版,p.81
「本書においては、(そして多くのコンピュータ科学・技術に携わる人たちの間では)コンピュータという用語は厳密には<プログラム可変内蔵方式>を意味している。第七章で述べるように、この意味で最初に実用に達したコンピュータは一九四九年のEDSACである。」(p.81)、<プログラム可変内蔵方式>という構想はすでにEDVACマシンの開発時から存在したが、「EDVACは開発関係者間の意見の対立により大幅に完成が遅れ」たため「世界最初のコンピュータ(プログラム可変内蔵方式と定義する)として出現したのは、このEDVACの影響下に、イギリスはケンブリッジ大学でモーリス・ウィルクス(Maulice Wilkes)によって製作され、一九四九年五月にプログラムの実行を開始したEDsAc(Electronic Delay Storage Automatic Calculator)(32ビット五一二語の遅延線メモリ、三、〇〇〇本の真空管)だったのである。」(pp.118-119)としている。
 なお星野力氏は、「本書ではコンピュータを、実行時にプログラムを書き換え可能なもの(プログラム可変内蔵)と定義するので、ENIACはコンピュータとはいえない。」としながらも、星野氏はまた「〈可変〉を取り除いて単に〈プログラム内蔵〉とすれば、一九四八年の改造されたENIACが最初であろう。」(p.81)「後の一九四八年、一入力対一〇〇出力のマトリックススイッチを命令デコーダ(解読器)とするような改造が行われ、メトロポリスは(フォン・ノイマン夫人のクララの助けによって)この機能により、世界最初のモンテカルロ法を計算している。/このことからENIAACは十分にプログラム固定内蔵方式といえる。」(p.90)、「ENIACの革新的意味は何だろうか?それは電子式で(〈で〉は、かつ、の意味)、デジタル方式で、プログラム内蔵型で、実用規模の科学計算汎用である計算機械として、世界最初のものである。」(pp.96-97)としている。
横山保(1995)『コンピュータの歴史』中央経済社,p.85
「最初のプログラム内蔵式のコンピュータであるEDSAC・・・このコンピュータでは、ソフトウェアの出発点であるサブルーチン・ライブラリの仕事が行われている。このサブルーチン・ライブラリは150のサブ・ルーチンからなっていたといわれている。」

イギリスのManchester Mark Iとする説
Rojas,R., Hashage, U. eds. (2000) The First Computers History and Architectures, p.xii
同書の序文では、Napper, R.B.E. “The Manchester Mark 1 Computers1″と、Burton, Christopher P. “Rebuilding the First Manchester Computer”の論文を紹介した説明文の中で、Manchester Mark Iが世界最初のプログラム内蔵方式コンピュータである、としている。

“Brian Napper and Chris Burton analyze the architecture and reconstruction of the Manchester Mark I, the world’s first stored-program computer.”