1880年代末、アメリカのハーマン・ホレリスは機械で読み取り可能な形で媒体にデータを記録する方法を発明した。それまで、機械が読み取り可能な形で媒体に記録されるのは制御情報であって(ピアノロールやジャカード織機)、データではなかった。当初紙テープを試したが、最終的にパンチカードに到達[22]した。鉄道の車掌が切符に鋏を入れる様を見て、パンチカードを思いついたという。パンチカードに穴を開けるキーパンチ機とそれを処理するタビュレーティングマシンを発明。それらの発明が現代の情報処理発展の基盤となった。機械式カウンタとして、リレー(とソレノイド)を使っている。ホレリスの発明はアメリカでの1890年の国勢調査に使われ、予定の数カ月前に集計を終え、予算も抑えることに貢献した[23]。前回の国勢調査よりも数年短い期間で集計を終えている。ホレリスの創業した会社は後にIBMの中核となった。IBMはパンチカード技術を発展させて一連の商用データ処理機器(パンチカードシステム)を開発した。1950年ごろまでにIBMのシステムが産業界や政府で広く使われるようになっている。文書として一般人が手にするようになったカード(小切手や公共料金の明細など)には "Do not fold, spindle or mutilate"(折ったり穴を開けたり破いたりしないでください)という警告が印刷され、第二次世界大戦後の時代を表すキャッチフレーズとなった[24]。
第二次世界大戦中、ロンドンから北に40マイルほどの位置にあるブレッチリー・パークで、ドイツ軍が通信に使っていた暗号の解読が行われていた。ドイツの暗号機エニグマの解読には、電気機械式の bombe という機械を補助的に使用した。bombeの設計は1938年にアラン・チューリングと Gordon Welchman が行ったが、それはポーランドのマリアン・レイェフスキの暗号解読法に基づくもので、1941年から実際に使用され始めた[43]。エニグマのとりうる設定を除外していくために、一連の論理的推論を電気を使って行った。多くの設定は矛盾を生じるため除外でき、残った少数の設定について人手で調べることができた。
ドイツ軍はエニグマとは全く異なる一連のテレタイプ端末型の暗号機も開発した。Lorenz SZ 40/42 は特に重要な通信に使われ、イギリスではそれを "Tunny" と呼んでいた。Lorenz による暗号通信をイギリスが傍受し始めたのは1941年のことである。Tunny解読作業の一部として、マックス・ニューマンらがColossusを開発した[44]。Colossus Mk I は1943年3月から12月に英国中央郵便本局研究所のトミー・フラワーズらがロンドンで製作し、1944年1月にブレッチリー・パークに移された。
Colossusは世界初の完全電子式のプログラム可能計算機である。多数の真空管を使い、紙テープでデータを入力し、データに対して様々なブール論理操作を行うよう設定変更可能である。ただしチューリング完全ではない。Colossus Mk II は9台(Mk I も Mk II に改修されたので全部で10台)製作された。それらの存在、設計、利用は1970年代まで機密とされていた。ウィンストン・チャーチルは戦後、直々にそれらを細かく分解して廃棄するよう命じていた。Lorenz の暗号がイギリスで解読されていたという事実も冷戦中は機密扱いだった。このように徹底的に秘匿されたため、Colossus は計算機の歴史に全く登場しなかった。今ではColossusを復元したものがブレッチリー・パークの国立コンピューティング博物館に展示されている。
アメリカ合衆国での開発
1937年、クロード・シャノンはブール論理の概念と1対1に対応する電気回路が存在することを示した。そういった回路は後に論理回路と呼ばれるようになり、今ではデジタルコンピュータで必ず使用している[45]。このMITでの修士論文[46]で、リレーやスイッチを使ってブール論理の論理式を具現化できることを示した(同様の研究は日本においても1936年に中嶋章と榛沢正男により発表されている[47])。この論文が実用的なデジタル回路設計の基礎を築いた。ジョージ・スティビッツは1937年11月、ベル研究所で "Model K" と名付けたリレー式計算機を完成。ベル研究所は1938年後半にスティビッツによる計算機の研究開発プロジェクトを正式に始めさせた。1940年1月8日に完成した Complex Number Calculator[48] は複素数の計算が可能だった。1940年9月11日、ダートマス大学で開催されたアメリカ数学会の学会で、テレタイプ端末をベル研究所にある計算機と電話回線でつなぎ、コマンドを送って計算結果を得るというデモンストレーションを行った。電話回線経由で遠隔から計算機を使った史上初の例である。ジョン・フォン・ノイマン、ジョン・モークリー、ノーバート・ウィーナーといった人々がこのデモンストレーションを目にしており、特にウィーナーはその思い出を後に文章にしている。
1939年、IBMでは Harvard Mark I の開発が始まった。正式名称は Automatic Sequence Controlled Calculator[51]。Mark I は汎用電気機械式計算機で、IBMが資金提供し、ハーバード大学のハワード・エイケンの指揮の下でIBMの技術者らが設計や製作を助けた。バベッジの解析機関の影響を受けた設計で、十進法を採用し、リレーのほかに歯車やロータリースイッチを記憶装置や演算装置に使っている。さん孔テープでプログラム可能で、並列に動作する演算装置を複数備えていた。後のバージョンでは複数のテープ読取装置を備え、条件によってどのテープを読み取って実行するかを制御できた。チューリング完全ではない。Mark I は1944年5月にハーバード大学に移され、運用を開始した。
プログラム内蔵式として設計された最初のコンピュータはEDVACだが、実際に最初に稼働したのはEDVACではない。エッカートとモークリーがプロジェクトを離れ、製作が停滞したためである。最初のノイマン型(プログラム内蔵式)コンピュータは1948年のマンチェスター大学の通称 "Baby"、正式名 Small-Scale Experimental Machine である。同大学のフレデリック・C・ウィリアムスとトム・キルバーンが開発を指揮した。これはウィリアムスが発明したウィリアムス管の実用性を評価するために開発された試験機だった[54]。その成功を受けて1949年、実用的なコンピュータ Manchester Mark I を開発。ウィリアムス管と磁気ドラムメモリを使い、インデックスレジスタという概念を初めて導入している[55]。「世界初のプログラム内蔵式デジタルコンピュータ」の他の候補としては、ケンブリッジ大学で設計・開発されたEDSACがある。マンチェスターの"Baby"の一年以内に稼働開始しているが、実際に問題を解くプログラムを実行可能なレベルだった。EDSACはEDVACの計画に触発されて始まったもので、EDVACもEDSACもENIACが稼働開始する以前から計画が始まっている。並列処理を行うENIACよりも単純な単一演算装置を採用している。それはコンピュータ小型化の最初の波でもあり、信頼性向上のための対策でもあった。Manchester Mark I、EDSAC、EDVAC は現代のコンピュータ・アーキテクチャの原点ともいえる。マンチェスター大学の Manchester Mark I は初の商用コンピュータ FerrantiMark 1 のプロトタイプとなった。Ferranti Mark 1 の1号機はマンチェスター大学に1951年2月に納入された。他に少なくとも9台が1951年から1957年にかけて販売されている。
ソビエト連邦での最初のプログラム内蔵式汎用電子計算機は、キエフ電気技術研究所(en、現ウクライナ)のセルゲイ・アレクセイヴィチ・レベデフのチームが製作した MESM(МЭСМ, Small Electronic Calculating Machine)で、1950年に稼働した。6000本の真空管を使い、25kWの電力を消費する。1秒間に約3000命令を実行できた。オーストラリア初の電子計算機としては、1949年に稼働したCSIRACがある。CSIRACは当時のまま保存されている世界最古の電子計算機でもあり、デジタル音楽を奏でた世界初の電子計算機である[56]。
商用コンピュータの始まり
世界初の商用コンピュータは、1951年2月にマンチェスター大学に納入された Ferranti Mark 1 である。Manchester Mark I を元に設計された。Manchester Mark I からの主な改良点は、記憶装置の容量増、乗算器の高速化、命令の追加である。基本サイクル時間は1.2ミリ秒で、乗算を約2.16ミリ秒で実行した。真空管を4050本使っており、その4分の1が乗算器に使われている[57]。2号機がトロント大学に売れ、その後さらに改良を施した Mark 1 Star が完成した。Mark 1 Star は少なくとも7台が1953年から1957年までに売れており、シェルのアムステルダムにある研究所にその1つが納入された[58]。
1947年10月、イギリスの外食・ホテル産業大手 J. Lyons & Company の経営陣は新たな経営技法に興味を持っており、商用コンピュータ開発を推進する役割を果たすことを決めた。それによって1951年4月、LEO I (Lyons Electronic Office) が稼働開始し[59]、世界初の会社の通常業務を処理するジョブを実行した。1951年11月17日、J. Lyons では傘下のパン屋の毎週の売り上げ集計をLEO上で行い始めた。これが世界初のビジネスアプリケーションであり、ここからプログラム内蔵式コンピュータの商用利用が始まった[注 7]。
UNIVAC I の操作卓
1951年6月、UNIVAC I (Universal Automatic Computer) がアメリカ合衆国国勢調査局に納入された。レミントンランドは46台を売り上げ、1台の価格は100万ドル以上だった(現在の価値に換算すると11740000ドル)。UNIVACは世界で初めて量産されたコンピュータである。5200本の真空管を使い、125kWの電力を消費した。一次記憶装置は逐次アクセス型の水銀遅延線で、11桁の数字と符号(72ビット)を1ワードとして1000ワードを格納可能である。最大の特徴は新たに発明された金属磁気テープと高速磁気テープ装置を備えたことで、それを不揮発性の記憶装置として使っていた。磁気媒体は今も多くのコンピュータで使われている[注 8]。
1952年、IBMは IBM 701 を発表。700/7000シリーズの最初の機種であり、IBMのメインフレームの始まりである。1954年の IBM 704 では磁気コアメモリを採用し、その後の大型コンピュータで標準的に使われるようになった。世界初の高級汎用プログラミング言語FORTRANも、IBMが704向けに1955年から開発したもので、1957年初めにリリースされた。高級言語としてはコンラート・ツーゼが1945年に設計したプランカルキュールが先だが、こちらは実装されなかった。IBM 701 に対しては、1955年に世界初のコンピュータのユーザーグループが誕生し、ソフトウェアや経験を共有するようになった。
IBM 650 のフロントパネル
1954年、IBMはより小型で低価格のコンピュータ IBM 650 を発売し、人気を博した[注 9]。650 は重量が900kg以上あり、付属の電源装置は約1350kgである。それぞれ別々の筐体となっていて、寸法はそれぞれおおよそ1.5m×0.9m×1.8mである。価格は50万ドル(現在の価値に換算すると5670000ドル)で、リースの場合は月額3500ドル(現在の価値に換算すると40000ドル)だった。磁気ドラムメモリに当初は2000ワード(1ワードは10桁の数字)、その後拡張されて4000ワードを格納。このようにメモリ容量が小さく、その後数十年間のプログラミング技法に重大な影響を与えた。プログラムは回転する磁気ドラムに格納されており、実行時はそこから命令を読み取る。磁気ドラムメモリでの効率的なプログラム実行には、ハードウェアのアーキテクチャ、次に実行すべき命令のアドレスを含めた命令フォーマット、ソフトウェア、すなわちSOAP[60]というアセンブリ言語が協調し、次の命令を磁気ドラムがその位置まで回転するのを待つことなく読み取れるよう、(ソースプログラムの静的解析でできる範囲で)うまく配置した。
1956年、IBMは初の磁気ディスク装置RAMAC (Random Access Method of Accounting and Control) を発表。50枚の直径24インチ(610mm)の金属円盤を使い、片面に100トラックで5メガバイトのデータを格納できる。コストは1メガバイト当たり1万ドル(現在の価値に換算すると110000ドル)だった[65]。
最初のトランジスタはゲルマニウムの点接触型トランジスタしかなく、真空管よりも信頼性が低くて、利点は低消費電力だけだった[67]。点接触型トランジスタで作られたコンピュータは、日本のETL Mark IIIなど、わずかしかない。すぐに信頼性の高い、合金型や成長型の接合型トランジスタにとって代わられたが、速度の点では当初は点接触型のほうが上であった。
真空管と比較としたとき、トランジスタには様々な長所がある。まず小さく、消費電力が少なく、結果として発熱量も少ない。シリコンの接合型トランジスタが登場すると真空管よりも信頼性が高く、長寿命になった(ただしその最初期は点接触型より速度は遅かった)。トランジスタ式コンピュータでは、より小さな空間に数十倍、数千倍の論理回路を詰め込むことが可能になった。トランジスタによってコンピュータの小型化・低価格化が進んだ。第二世代のトランジスタ式コンピュータは一般に多数のプリント基板で構成されている。例えば、IBM Standard Modular System[71] では1枚の基板に4つの論理ゲートやフリップフロップを実装している。
第二世代コンピュータの1つ IBM 1401 は全世界のコンピュータ市場の3分の1を占めたことがある。IBMは1960年から1964年までに10万台以上の1401(正確には IBM 1400シリーズ)を販売した。
トランジスタを使った電子工学はCPU(中央処理装置)を改善しただけでなく、周辺機器の改善にも寄与した。世界初の磁気ディスク記憶装置は、IBMが1956年に発表した IBM 350 だが、第二世代の磁気ディスク装置は数千万の文字や数字を記録できるようになった。CPUと高速データ転送可能な固定磁気ディスク記憶装置に加えて、着脱可能な磁気ディスクパックも登場。記憶容量は固定磁気ディスク装置より小さいが、磁気ディスクパックは短時間(数秒から数十秒)で交換可能で、データを大量に保管し必要に応じて即座に使えるようになった。さらにデータの長期保管用には、より安価な磁気テープが使われるようになった。
1960年代は第二世代と第三世代の技術が混在していた[注 11]。IBMは IBM Solid Logic Technology によるモジュールを1964年のSystem/360で開発、採用した。UNIVACでは、UNIVAC 494 のように1975年ごろまで第二世代の技術を採用した機種が製造され続けた。バロースの大型機(バロース B5000、1961年設計開始)ではスタックマシンアーキテクチャを採用し、プログラミングを単純化しようとした。スタックマシンはプッシュダウン・オートマトンを実装したもので、後にミニコンピュータやマイクロプロセッサでも採用されたことがある。B5000の設計はプログラミング言語に影響されているが、逆にスタックマシンの考え方はプログラミング言語の設計や処理系の実装に影響を及ぼしもしている。1960年代にはミニコンピュータも生まれ発展している。ミニコンピュータは安価な計算センター用コンピュータとして産業界や大学で使われた[76]。
1971年、ミニコンピュータ上でアナログ回路をシミュレーションできるSPICE (simulation program with integrated circuit emphasis) が登場。電子回路設計の自動化(EDA)が始まった。マイクロプロセッサの登場によってマイクロコンピュータと呼ばれる小型で低価格なコンピュータが登場し、コンピュータを個人で所有できる時代が到来。1970年代に登場したマイクロコンピュータは、1980年代にはパーソナルコンピュータと呼ばれるようになり、広く普及することになる。
コンピュータの急激な発展は、主要な論文の歴史からも推定できる[注 12]。誰かが何かを書き終わったとき、既に時代遅れになっているという勢いである。フォン・ノイマンの First Draft of a Report on the EDVAC を多くの研究者が読んだ1945年、それぞれのシステム実装がすぐさま始まった。この開発のペースが今も世界的に続いている[注 13][注 14]。
^Eleanor Robson (2008), Mathematics in Ancient IraqISBN 978-0-691-09182-2 p.5: そのような小石は古代イラクで紀元前3200年から3000年ごろから原始的会計システムとして使われ、商品ごとの計数表現システムとして使われていた。紀元前3000年から2350年ごろには残高勘定が使われ、紀元前2350年から2000年には六十進法が使われるようになった。
^例えば、Kara Platoni のドナルド・クヌースについての 記事 (Stanford Magazine, May/June 2006) でも IBM 650 への言及がある。
^Intel 4004 (1971) は のチップに2300個のトランジスタを集積していた。ちなみに Pentium Pro のチップサイズは で、550万個のトランジスタを集積している。Patterson & Hennessy 1998, pp. 27–39
^軍事関係では、(Kalman 1960, pp. 35–45) のように方程式をコンピュータ上で解くための研究が盛んだった。
^Burks, Goldstine & von Neumann 1947, pp. 1–464 は Datamation 1962年9月10月号に掲載されたときには preliminary discussion/design が system analysis/design に置換され、その後 system architecture とされた。
^Ryan J. Kershner, Luisa D. Bozano, Christine M. Micheel, Albert M. Hung, Ann R. Fornof, Jennifer N. Cha, Charles T. Rettner, Marco Bersani, Jane Frommer, Paul W. K. Rothemund & Gregory M. Wallraff (16 August 2009) "Placement and orientation of individual DNA shapes on lithographically patterned surfaces" Nature Nanotechnologypublication information, supplementary information: DNA origami on photolithography doi:10.1038/nnano.2009.220
Copeland, B. Jack (ed.) (2006), Colossus: The Secrets of Bletchley Park's Codebreaking Computers, Oxford, England: Oxford University Press, ISBN019284055X
Eckert, Wallace (1935), “The Computation of Special Perturbations by the Punched Card Method.”, Astronomical Journal44 (1034): 177, doi:10.1086/105298
Eckert, Wallace (1940), “XII: "The Computation of Planetary Pertubations"”, Punched Card Methods in Scientific Computation, Thomas J. Watson Astronomical Computing Bureau, Columbia University, pp. 101–114, OCLC2275308
Eckhouse, Richard H., Jr.; Morris, L. Robert (1979), Minicomputer Systems: organization, programming, and applications (PDP-11), Prentice-Hall, pp. 1–2, ISBN0135839149
Marguin, Jean (1994) (フランス語), Histoire des instruments et machines à calculer, trois siècles de mécanique pensante 1642-1942, Hermann, ISBN978-2705661663
Martin, Douglas (June 29, 2008), “David Caminer, 92 Dies; A Pioneer in Computers”, New York Times: p. 24
Smith, David Eugene (1929), A Source Book in Mathematics, New York: McGraw-Hill, pp. 180–181
Smolin, Lee (2001), Three roads to quantum gravity, Basic Books, pp. 53–57, ISBN0-465-07835-4. Pages 220–226 are annotated references and guide for further reading.
Taton, René (1969) (フランス語), Histoire du calcul. Que sais-je ? n° 198, Presses universitaires de France
Turing, A.M. (1936), “On Computable Numbers, with an Application to the Entscheidungsproblem”, Proceedings of the London Mathematical Society, 2 42: pp. 230–65, 1937, doi:10.1112/plms/s2-42.1.230 (and Turing, A.M. (1938), “On Computable Numbers, with an Application to the Entscheidungsproblem: A correction”, Proceedings of the London Mathematical Society, 2 43: pp. 544–6, 1937, doi:10.1112/plms/s2-43.6.544) 他のオンライン版: Proceedings of the London Mathematical Society別のオンライン版
von Neumann, John (June 30, 1945), First Draft of a Report on the EDVAC, Moore School of Electrical Engineering: University of Pennsylvania
Welchman, Gordon (1984), The Hut Six Story: Breaking the Enigma Codes, Harmondsworth, England: Penguin Books, pp. 138–145, 295–309
Wilkes, Maurice (1986), “The Genesis of Microprogramming”, Ann. Hist. Comp.8 (2): 115–126
Ziemer, Roger E.; Tranter, William H.; Fannin, D. Ronald (1993), Signals and Systems: Continuous and Discrete, Macmillan, p. 370, ISBN0-02-431641-5
Bowden, B. V. (1970), “The Language of Computers”, American Scientist58: 43–53
Cleary, J. F. (1964), GE Transistor Manual (7th ed.), General Electric, Semiconductor Products Department, Syracuse, NY, pp. 139–204, OCLC223686427
Hollerith, Herman (1890) (Ph.D. dissertation), In connection with the electric tabulation system which has been adopted by U.S. government for the work of the census bureau, Columbia University School of Mines
Ifrah, Georges (2000), The Universal History of Numbers: From prehistory to the invention of the computer., John Wiley and Sons, p. 48, ISBN0-471-39340-1. Translated from the French by David Bellos, E.F. Harding, Sophie Wood and Ian Monk. Ifrah supports his thesis by quoting idiomatic phrases from languages across the entire world.
Menninger, Karl (1992), Number Words and Number Symbols: A Cultural History of Numbers, Dover Publications. German to English translation, M.I.T., 1969.
Pellerin, David; Thibault, Scott (April 22, 2005), Practical FPGA Programming in C, Prentice Hall Modern Semiconductor Design Series Sub Series: PH Signal Integrity Library, pp. 1–464, ISBN0-13-154318-0
Rojas, Raul; Hashagen, Ulf (eds., 2000). The First Computers: History and Architectures. Cambridge: MIT Press. ISBN 0-262-68137-4.
Simon, Herbert (1991), Models of My Life, Basic Books, Sloan Foundation Series
Steinhaus, H. (1999), Mathematical Snapshots (3rd ed.), New York: Dover, pp. 92–95, p. 301
Stern, Nancy (1981), From ENIAC to UNIVAC: An Appraisal of the Eckert-Mauchly Computers, Digital Press, ISBN 0-932376-14-2
Ulam, Stanisław (1976), Adventures of a Mathematician, New York: Charles Scribner's Sons, (autobiography)