コンピュータの定義をめぐる論争 - 「プログラム内蔵方式のデジタル型電子式計算機」という説をめぐって

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

事典や辞書などにおけるコンピュータの定義に関しては、本サイトの下記ページで紹介している。
 

ここでは、コンピュータ=「プログラム内蔵方式のデジタル型電子式計算機」という定義を取りあげ、いくつかの議論を紹介しておくことにしよう。

コンピュータ=「プログラム内蔵方式のデジタル型電子式計算機」という定義の理解
プログラム内蔵(stored program)方式とは何であるかという概念的規定それ自体も歴史的に捉える必要がある。ただしここでは作業仮説として、とりあえず星野力(1995)『誰がどうやってコンピュータを創ったのか? 』p.35における下記規定のように「内部記憶中にプログラムが内蔵されている」こととする。

「プログラムは、それが実行されるときには、計算機械の内部にあるメモリ中に記憶され、計算と同じ速度で取り出されなくてはならない」
 

ただし星野力氏は、下記のように「プログラム内蔵」だけでは不十分で、「プログラム可変内蔵」と定義すべきだとしている。すなわち、「プログラム内蔵」に関して、「プログラム可変内蔵」と「プログラム固定内蔵」の2タイプを分けて考えるべきだとした上で、「プログラム可変内蔵」=「コンピュータ」と定義している。

「本書ではコンピュータを、実行時にプログラムを書き換え可能なもの(プログラム可変内蔵)と定義するので、ENIACはコンピュータとはいえない。」としている。ただし星野氏は「〈可変〉を取り除いて単に〈プログラム内蔵〉とすれば、一九四八年の改造されたENIACが最初であろう。」(p.81)
「後の一九四八年、一入力対一〇〇出力のマトリックススイッチを命令デコーダ(解読器)とするような改造が行われ、メトロポリスは(フォン・ノイマン夫人のクララの助けによって)この機能により、世界最初のモンテカルロ法を計算している。/このことからENIACは十分にプログラム固定内蔵方式といえる。」(p.90)、「ENIACの革新的意味は何だろうか?それは電子式で、デジタル方式で、プログラム内蔵型で、実用規模の科学計算汎用である計算機械として、世界最初のものである。」(pp.96-97)
 
プログラム内蔵方式という考え方の発案者をめぐる議論
プログラム内蔵方式という考え方の発案者はノイマンとされることが多い。その一方で、「エッカートが1944年1月にはプログラム内蔵方式に気づいていた」という説といった異論がある。下記ではそうした異論に対する批判的議論を紹介する。

  1. 星野力(1995)『誰がどうやってコンピュータを創ったのか』共立出版の第6章3節「プログラム内蔵方式は誰の発明か?」(p.104-)における「エッカート」説批判
    同書では、エッカートとモークリーによって1945年9月に書かれたEDVACのプログレスレポート、バークスによる証言(Burks et al.,1988) 、1970年代のスペーリ・ランド対ハネウェルのENIAC訴訟のときに弁護士によって発掘された文書「文書磁気ディスクに関する覚書」などに基づきながら、エッカート説に対するゴールドスタインの批判、および、エッカートとモークリによるゴールドスタインの議論に対する反論が紹介されている。
     なおこの論争に関して星野氏自身は、下記のように、エッカートは「磁気ディスクや遅延線という内部記憶装置の考案」=「プログラム可変内蔵というアーキテクチャの考案」と考えているが、そうした同一視はあまり適切ではない、としている。

    ハードウェアを考案したこと「エッカートらは磁気ディスクや遅延線というハードウェアを考案したことは、直ちにプログラム可変内蔵というアーキテクチャも考案したことである、といったような認識をどこかにもっているように思える。これに対して後世では(当時でもフォン・ノイマンは)、プログラム可変内蔵方式の本質は論理的なレベルにおけるアーキテクチャと、そのチューリングマシンとしての万能性にある、と理解していることである。これが正しいとすれば、フォン・ノイマンの業績は、プログラム可変内蔵方式を論理的に明確にし発展させたということであろう。」(p.109)というように主張している。
     
  2. 横山保(1995)『コンピュータの歴史』中央経済社における「エッカート」説批判=「(最初の)ENIACは、ワイヤリング方式によるプログラム入力であったため、プログラム内蔵式ではない」
    横山保(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)としている。
     
[関連参考論文]
  1. 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

  2. Metropolis and J. Worlton,(1972) “Trilogy of Errors in the History of Computing,” First USA-Japan Computer Conference Proceedings, pp.683-691
  3. 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)などが収録されている。
  4. Burks,Alice R., Burks,Arthur W.(1988) The Fisrt Electronic Computer, The Atanasoff Story, The University of Michigan Press[邦訳:大座畑、重光監訳『誰がコンピュータを発明したか』工業調査会,1998]
 
プログラム内蔵方式を最初に実装したコンピュータをめぐる議論
プログラム内蔵方式の意義は多くの人々が理解していたが、コストなどの問題から実装は遅れた。プログラム内蔵方式を最初に実装したコンピュータがどれであるかについても下記のように「SSME」説、「EDSAC」説、「Manchester Mark I」説という少なくとも3つの説がある。

  • イギリスの「SSME」(Small-Scale Experimental Machine)説
  • 1.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. ”

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

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

    なお大駒誠一氏は、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.”

     
    3.日本語版ウィキペディア「計算機の歴史」
    日本語版ウィキペディアでは、「(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日アクセス)
     

  • イギリスの「EDSAC」説
    1. 星野力(1995)『誰がどうやってコンピュータを創ったのか』共立出版,p.81
      「本書においては、(そして多くのコンピュータ科学・技術に携わる人たちの間では)コンピュータという用語は厳密には<プログラム可変内蔵方式>を意味している。第七章で述べるように、この意味で最初に実用に達したコンピュータは一九四九年のEDSACである。」(p.81)、<プログラム可変内蔵方式>という構想はすでにEDVACマシンの開発時から存在したが、「EDVACは開発関係者間の意見の対立により大幅に完成が遅れ」たため「世界最初のコンピュータ(プログラム可変内蔵方式と定義する)として出現したのは、このEDVACの影響下に、イギリスはケンブリッジ大学でモーリス・ウィルクス(Maulice Wilkes)によって製作され、一九四九年五月にプログラムの実行を開始したEDSAC(Electronic Delay Storage Automatic Calculator)(32ビット512語の遅延線メモリ、3,000本の真空管)だったのである。」(pp.118-119)としている。
       
    2. 横山保(1995)『コンピュータの歴史』中央経済社,p.85
      「最初のプログラム内蔵式のコンピュータであるEDSAC・・・このコンピュータでは、ソフトウェアの出発点であるサブルーチン・ライブラリの仕事が行われている。このサブルーチン・ライブラリは150のサブ・ルーチンからなっていたといわれている。」
     

  • イギリスの「Manchester Mark I」説
    1. 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.”
     

    [改訂履歴]
    2026年8月5日 文章表現の一部訂正