EDSAC入門:蓄積プログラム型コンピュータの誕生とソフトウェア革新
イントロダクション — EDSACとは何か
EDSAC(Electronic Delay Storage Automatic Calculator)は、イギリス・ケンブリッジ大学の数学研究所(Mathematical Laboratory)でモーリス・ウィルクス(Maurice Wilkes)らの指導のもとに設計・製作された初期の電子式蓄積プログラム型コンピュータです。1949年5月6日に初めて稼働したとされ、学術研究向けに定常的な計算サービスを提供した最初期の実用機の一つとして歴史的意義が高く、プログラミング手法やソフトウェアの概念(サブルーチン・ライブラリ・アセンブリ的な初期命令群)の発展に大きく寄与しました。
開発の背景と目的
第二次大戦後、電子計算機の研究は急速に進みましたが、ENIACやEDVACのような米国の機械と比較して英国側でも実用的な計算資源が求められていました。ケンブリッジの数学研究所では、学内外の科学者・研究者が利用できる「実際に使える」計算機を作ることを目的としてEDSACの開発が始まりました。設計はジョン・フォン・ノイマンの蓄積プログラム(stored-program)概念に影響を受けつつ、実用性・安定性を重視したものでした。
ハードウェア構成(概観)
EDSACは当時の技術を組み合わせた典型的な真空管式コンピュータでした。主要な特徴は以下の通りです。
- 論理回路:真空管(バルブ)を用いた電子回路を中心に構築されていました。
- 主記憶装置:マーキュリーディレイライン(mercury delay line)を採用。シリアルな遅延ライン方式を使い、デジタル情報を音響的に保持しました。
- 入出力:紙テープによる入力、テレタイプ(電信器)やパンチテープへの出力など、当時一般的な周辺装置を使用していました。
- 命令とデータ:蓄積プログラム方式に基づき、プログラム(命令列)とデータは同一の記憶領域に置かれました。
(注:ここでの構成は機械の設計思想を示すもので、記憶容量や語長など具体的数値は原典によって表記が分かれるため、詳細は参考文献で確認してください。)
ソフトウェアとプログラミングの革新
EDSACはハードウェア以上に「ソフトウェア的な発明」を生み出したことが有名です。特に重要なのは以下の点です。
- Initial Orders(初期命令群): システム起動時に読むための低レベルのプログラム群が整備され、これによりユーザがプログラムを容易に機械語に変換・実行できる仕組みが提供されました。これらはアセンブリ的な役割を果たしました。
- サブルーチンの概念とライブラリ: デヴィッド・J・ウィーラー(David J. Wheeler)らの作業により、再利用可能なサブルーチン(部分プログラム)を呼び出す方法が確立され、プログラムの構造化と再利用性が大幅に改善されました。これは現代プログラミングの基本的な慣習へとつながります。
- プログラム配布の実践: ケンブリッジのチームは、利用者向けにサブルーチン集や例題プログラムを提供し、研究者が自分の計算にそれらを組み合わせて使えるようにしたため、コンピュータの共同利用・サービス提供という概念が具体化しました。
稼働と初期の利用例
EDSACは1949年5月に初めて動作し、その後まもなく学内外の研究者に対して計算サービスを提供しました。初期に行われた計算は数値解析、天文学、物理学、工学分野の問題が中心で、微分方程式の数値解法、表計算、統計的処理など、手作業で時間のかかった計算が自動化されました。EDSACが実行した初期の有名な「デモ・プログラム」には、数列(平方数など)の計算や、数学的表の作成などがあり、これが「初めての実用的な計算機利用」の象徴的な出来事として語られます。
運用体制とユーザ文化
EDSACは大学内で共同利用され、当時としては珍しい「計算サービス」的な運用形態を先導しました。利用者は事前に紙テープでプログラムを用意し、研究所のスタッフに提出して実行されるのが一般的でした。こうした運用により、計算資源を効率的に共有し、プログラムのノウハウやライブラリを蓄積する文化が生まれました。これは後の大学や研究機関における計算センターの原型とも言えます。
設計上の工夫と制約
EDSACの設計にはいくつかの工夫がありました。信号の同期をとるための回路設計、信頼性向上のための診断手順、マーキュリーディレイラインのタイミング調整、そして使いやすさを意識した初期命令群などです。一方で、真空管と遅延ラインを使う技術的制約から来る故障頻度や記憶容量の限界、入出力速度の遅さなど、当時の技術水準に起因する制約も存在しました。
人々と組織 — キーパーソン
- モーリス・ウィルクス(Maurice Wilkes): プロジェクトの指導者であり、EDSACの設計哲学と運用体制の礎を作った。
- デヴィッド・J.・ウィーラー(David J. Wheeler): サブルーチンやプログラミング手法、Initial Orders の開発で重要な役割を果たした。
- スタンリー・ギル(Stanley Gill)らの技術スタッフ: 実際の回路設計や実装、運用を担った。
これらの人物と現場スタッフによる協働が、単なる実験機ではなく「サービス機」としてのEDSACを成立させました。
後続機・影響と遺産
EDSACの成功は英国・ヨーロッパにおける計算機開発やソフトウェア技法の発展に大きな影響を与えました。EDSACで確立されたサブルーチンやライブラリの考え方はその後のプログラミング言語設計やコンピュータアーキテクチャに取り込まれ、教育・研究におけるコンピュータの利用促進にも寄与しました。また、EDSACの経験は後継機の設計(例えばEDSAC 2など)や商用計算機の発展へもつながっていきます。
逸話とエピソード
EDSACには実運用に関する多くの逸話があります。たとえば初期のデバッグ作業や、紙テープの扱いによるトラブル、マーキュリーディレイラインの温度調整が計算の正常性に直結したことなど、現代のソフトウェア中心の問題とは異なる「物理的な問題」が日常的に起こった点が興味深いです。また、EDSACのおかげでケンブリッジは多くの計算依頼を受け、学内外で計算機利用が劇的に広がったこともよく語られます。
評価と現代的意義
歴史的視点から見ると、EDSACは「学術研究のための実用的なコンピュータ利用」を確立した先駆的プロジェクトでした。単なる実験機にとどまらず、ユーザ指向のサービス提供、再利用可能なソフトウェアの整備、プログラミング技術の体系化といった点で現代コンピューティングの基盤となる考え方を早い段階で実証しました。これらは現在のオープンソース文化やソフトウェアライブラリ、計算基盤運用の源流の一部と見なすことができます。
まとめ
EDSACは1940年代後半という時代背景の中で、実用性と安定性を重視して設計された初期の蓄積プログラム型電子計算機です。ハードウェアの工夫だけでなく、プログラミングの方法論(サブルーチン、初期命令群、ライブラリ)を確立した点で特に重要です。計算機史におけるEDSACの位置づけは、単なる「古いコンピュータ」ではなく「現代的な計算利用法を生み出し普及させた機械」であり、今日のソフトウェア開発や計算資源の共有に通じる多くの教訓を与えています。
参考文献
- EDSAC - Wikipedia
- EDSAC — University of Cambridge Computer Laboratory archive
- EDSAC — Chilton Computing / Computer Conservation
- The EDSAC: A brief history — Computer History Museum (blog)
- Computer Conservation Society — EDSAC


