解析機関
解析機関(かいせききかん、analytical engine)は、イギリス人数学者チャールズ・バベッジが設計した、蒸気機関で動くはずだった機械式汎用コンピュータであり、コンピュータの歴史上、重要なステップを刻んだ。
バベッジが解析機関についてはじめて記述したのは1837年であるが、1871年の死去直前まで設計を続けた。資金や政治、法律などの問題があり、この機械は実際には製作されなかった。論理的に解析機関に匹敵する機能を持つ汎用コンピュータは、1940年代にやっと現実のものとなった。
この機械はしばしば、当時の工作精度のため製作できなかった、とされる。これはバベッジが機関のための精度が足りないとしていたためもある。しかし、息子のヘンリー・バベッジや現代のサイエンス・ミュージアムによる部分的構築によって、必要なだけの工作精度はあったことが確認されている(特に、現代の再現では、当時の工作機械についての考証のうえで行われている) 。そのため、資金と政府の支援があれば、工作機械の精度に関しては、当時でも製作できたのではないかとされる。ただし、必要な精度がどれだけであるか、といった工学的な考え方は当時まだ無かった。
チャールズ・バベッジが最初に開発しようとした機械式計算機は階差機関(Difference Engine)であったが、これは多項式による近似計算によって対数や三角関数の数表を作ることに特化した計算機であった。このプロジェクトはバベッジの性格的な問題や政治的な理由で失敗したが、彼はさらに汎用性のある設計が可能であると思いついた。バベッジはそれを解析機関(Analytical Engine)と呼び、設計を開始した。
解析機関は、制御情報にしたがってオルゴールのようにピンを配置してあって回転、停止、逆回転するドラム群が中心となっている。そして、多くの歯車や力の伝達機構、位置や回転角などで情報を記憶・表示する仕組みなどから構成される、複雑で大きな機械である。蒸気機関を動力として、完成すれば長さ30m、幅10mという、いまの電車1.5両分もの巨大さとなっていたはずである。いわば蒸気機関車(SL)ならぬ蒸気機関計算機である。
プログラムとデータの入力は、当時既にジャカード織機のような機械式織機で使われていたパンチカードで供給される予定だった。出力としては印刷原版作成機、曲線プロッターおよびベルを準備していた。演算方式は十進数の固定小数点演算である。
1,000個の50桁の数値を格納できる。演算装置(ミル、"mill")は四則演算が可能で、さらに比較と、オプションで平方根の演算が可能であった。当初、それは階差機関を円環状に配置したらどうなるかという考察から生まれ、その一方に数値格納装置を配置するようになった(さらに後に格子状の配置となった)。現代のコンピュータのCPUのように命令をもち、ミル内部の手続きはバレル("barrels")と呼ばれる回転するドラムにペグ(釘)を刺すことで格納され、それによって複雑な命令を実現している。現代のコンピュータの同等の仕組みについてはマイクロプログラム方式を参照。
プログラミングは機械語であるが、現在のアセンブリ言語の原型のような記述法が考案されている。繰り返しと条件分岐が可能であった。チューリング完全を達成していたのではないかと考える者もいる。パンチカードには演算用、定数用、ロード/ストア用の3種類がある。ロード/ストア用は演算装置と格納領域の間で数値のやりとりの指示をするパンチカードである。これら3種類のパンチカードについて、独立した3つの読取装置が対応している。
1842年、イタリア人数学者ルイジ・メナブレアはバベッジがイタリアを訪れた際にバベッジと会い、フランス語で解析機関に関する記録を残し出版した。1843年、ラブレス伯爵夫人 エイダ・キングはこれを翻訳し、本文以上の訳注を記述している。彼女はその十年ほど前から解析機関に興味を持っていた。その訳注の解釈によっては、彼女を世界初のプログラマとする者もおり、ベルヌーイ数を計算する方法(プログラム)が示されているという。プログラミング言語Adaは彼女にちなんで名づけられている。
バベッジは晩年になって解析機関の単純化したバージョンの製作を思い立ち、1871年に亡くなる直前にその一部を組み立てた。しかし、1878年、英国科学振興協会の委員会に、解析機関の開発は政府の財政を圧迫するという理由で製造しないことを進言されるという憂き目を見た。
解析機関の完全開発は、資金枯渇そして技師とのトラブルにより実現できなかったのである。しかしそれらの問題が無くても、階差機関についてと同様、後世に発達した、複雑な機械の製作を管理する工学的手法がまだ無かったことは見落とせない。
1910年、バベッジの末の息子ヘンリー・バベッジはmill(演算装置)の一部とプリンター一式を製作した。そして、これを使って円周率の倍数の計算を行った(ただし、結果は間違っていた)。これは父親の発明した解析機関のごく一部を使ったもので、プログラマブルでなく、記憶領域もなかった。
ヘンリー・バベッジは、小規模な記憶装置を備えた完全な解析機関の製作も考えていた。25桁の数値を20個操作できるものを想定しており、完成すればそれでも十分印象的なものとなっただろう。1888年、ヘンリー・バベッジは「カード(プログラム)枚数と時間の問題にすぎない。数学者が解析機関で目的を果たすために枚数が要るなら使えばよいだけだ」と書いている(62.)。
ヘンリー・バベッジの1910年製作の階差機関第2号の演算装置が、設計後153年の時を経て2002年に完成された。ロンドンのサイエンス・ミュージアムに展示されている。
もうひとつ2008年3月に、大富豪の資金で階差機関第2号と同一のものが完全に製作された。
米国のコンピュータ歴史博物館で展示されている。
その(さすがに蒸気機関ではないが)動く様子がで見られる。
2010年10月、イギリスのプログラマージョン・グラハム=カミングが、完全な解析機関を製作するために寄付を募るキャンペーンを開始した。そして2011年、グラハム=カミングらは解析機関を製作するプロジェクト "Plan 28" を立ち上げた。バベッジは設計を改良し続け、完了させていなかったため、まずクラウドソーシングによってベースとなる設計を確定させるプロジェクトを開始した。675バイト相当のメモリを持ち、7Hzのクロック周波数相当で動作する予定であった。グラハム=カミングは、バベッジの没後150周年の2021年までに完成させることを目標とした。2013年の時点では、解析機関製作プロジェクトは進行途中の状態であり、完成してはいない。
設計だけであったとしても、解析機関がコンピュータと呼べるかどうかは興味深い。階差機関も解析機関も、二進方式ではないにしてもアナログ計算機ではなくディジタル的な(連続的な物理量ではなく、離散的に数値を表現する)計算機械である。階差機関は命令に基づいて動くものではない点で、ある種の「専用演算装置」であった(ディジタルとアナログという違いはあるが、アナログ計算機の一種の微分解析機に少し似ていると言えるかもしれない(訳語の関係で日本語ではそんなに雰囲気が無いが、英語ではそれぞれ difference engine, analytical engine と differential analyser である))。解析機関は、命令によってプログラマブルになった点は、原始的なコンピュータといえる。しかし、解析機関はいくつかの点で現在のコンピュータの要件を欠いている。
大きく異なるのはメモリにアドレスがないことである。解析機関の記憶領域はいわばレジスタであり、レジスタを個別に指定することはできるが、整数値のリニアなアドレスで指定できるメモリが無かったため、第2次世界大戦後に実現されたいわゆるプログラム内蔵方式(ノイマン型)のコンピュータにおけるプログラムカウンタに直接相当するものは存在しないことになり、それらを前提としたプログラミング技法も不可能だったということになる(ただし、計算理論的には、メモリは指定できれば良いのであって、必ずしもリニアなアドレス付けでなければならない、ということはない)。
理論上重要である点に、プログラムを可変か否か、という点がある。この能力については否定的な意見もあるが、バベッジの残している記述をもとに備わっていたとする論者もいる。たとえばダグラス・ホフスタッターは(『ゲーデル、エッシャー、バッハ』p. 42)解析機関についてバベッジとラブレスが、自分自身のプログラムを書き換えることが可能であると考えていたとみている。さらに、数を計算する計算機としての機能だけでなく、数以外の対象も扱う情報処理機械であると認識していたとしている。
上記のように解析機関は、デジタル方式でプログラム可能でチューリング完全であるが、もちろん今の感覚からすれば非常に低速であった。エイダ・ラブレスは「バベッジ氏は彼の機関を使えば、20桁の数同士の乗算を3分以内に計算できると信じている」と記している。同じ計算を Harvard Mark I なら6秒でできる。現代のPCなら187ナノ秒でできる(Intel Core 2 Duo T7800 2.6 GHz, Java言語 任意精度BigDecimal型による9×(10の19乗)に同じものを乗算)。
この節は、主としてコンピュータ科学的視点から、解析機関とその後の計算機械の関係について記述する。
解析機関は、後世にいくらか散発的に気がついた者もいたが、多くは忘れられていた。パーシ・ルードゲイトは1915年に解析機関について記述しており、独自の解析機関も詳細に設計している(ただし、製作はしなかった)。ルードゲイトの機関はバベッジのものよりも小さく(約230リットルの容積)、20桁の数値の乗算を6秒でできると予測された。レオナルド・トーレス・ケベードとヴァネヴァー・ブッシュも同様にバベッジの解析機関を知っていたが、彼ら3人の発明家は互いを知らなかった。
バベッジの解析機関と密接に関連する業績としては、ニューヨークのベル研究所でジョージ・スティビッツが第二次世界大戦中に行った研究開発と、第二次世界大戦中にハワード・エイケンがハーバード大学で行った研究開発がある。彼らは電気機械式(リレーと機械(歯車など)を併用する)コンピュータを開発しており、解析機関と似ている部分があった。エイケンのマシンはIBMの援助によって開発されたものでHarvard Mark Iと呼ばれている。
ハワード・エイケンはチャールズ・バベッジを心の師と仰いでいた。エイケンは1886年にヘンリー・バベッジが製作した解析機関の一部を大学で1930年代に発見し、そこから着想を得たという。彼は後にバベッジの著作を手にする機会を得ており、それについて次のように述べている。
しかし、その後の「全電子式」コンピュータへと開発を進めたのは、エイケンではなく、そこからの影響を受けた、より「冒険的」な人々であった。
分子ナノテクノロジーでは、超小型の高性能コンピュータの構築手法として、解析機関のような機構による論理回路が提案されている。
「サイバーパンクの教祖と煽動者」ウィリアム・ギブスンとブルース・スターリングは、(サイバーパンクから派生した)スチームパンクをうけて「彼らのスチームパンク」として歴史改変小説『ディファレンス・エンジン』を共同執筆した。この小説では、ビクトリア朝時代の社会でバベッジの(階差機関と)解析機関が実現し、さらにその技術が高度に発展した世界を描いている(内容は「階差機関」におさまるものでないが、改変された歴史の差、というイメージのため、そちらをタイトルに採っている)。この小説は、コンピューターの発達が史実よりも早かった世界で、歴史がいかに史実と違う方向に変化するかを描いた小説である。
イギリスの作家チャイナ・ミエヴィルの『ペルディード・ストリート・ステーション』にもバベッジの解析機関に似た装置が登場する。S・M・スターリングの The Peshawar Lancers にも巨大な蒸気駆動の解析機関が登場する。ニール・スティーヴンスンの『ダイヤモンド・エイジ』では、分子ナノテクノロジーが遍在する世界を描いており、バベッジの解析機関に似た設計の分子サイズの機械が描かれている。他にも、チャールズ・シェフィールドの「わが心のジョージア」がある。