
解析機関は、イギリスの数学者でコンピュータの先駆者であるチャールズ・バベッジによって設計された、提案されたデジタル機械式汎用コンピュータである。[ 2 ] [ 3 ]これは、より単純な機械式計算機の設計であったバベッジの差分機関の後継として、1837年に初めて記述された。[ 4 ]
解析エンジンは、算術論理演算装置(ALU)、条件分岐とループによる制御フロー、および統合メモリを組み込んでおり、現代の用語でチューリング完全と表現できる汎用コンピュータの最初の設計となった。[ 5 ] [ 6 ]言い換えれば、解析エンジンの構造は、電子時代のコンピュータ設計を支配してきた構造と本質的に同じである。[ 3 ]
バベッジは主任技師との対立や資金不足のため、どの機械も完成させることができなかった。[ 7 ] [ 8 ]それにもかかわらず、それは彼の最も成功した業績の1つである。バベッジが先駆的な解析機関を提案してから1世紀以上経った1941年になってようやく、コンラート・ツーゼが最初の汎用コンピュータであるZ3を構築した。[ 3 ]

バベッジが最初に試みた機械式計算機である差分機関は、有限差分を評価して近似多項式を作成することにより、対数と三角関数を表にまとめるように設計された特殊な機械でした。この機械の製作は完了しませんでした。バベッジは主任技師のジョセフ・クレメントと対立し、最終的に英国政府はこのプロジェクトへの資金提供を撤回しました。[ 9 ] [ 10 ] [ 11 ]
このプロジェクト中に、バベッジは、より汎用的な設計である解析機関が可能であることに気づいた。[ 9 ]解析機関の設計作業は1833年頃に始まった。[ 12 ] [ 4 ]
プログラム(「数式」)とデータからなる入力[ 13 ] [ 9 ]は、パンチカードを介して機械に提供される予定だった。これは当時、ジャカード織機などの機械式織機を制御するために使用されていた方法である[ 14 ]。出力に関しては、この機械にはプリンタ、曲線プロッタ、ベルが備わっていた[ 9 ] 。また、この機械は後で読み取るためにカードに数字をパンチすることもできた。通常の10進固定小数点演算が採用されていた[ 9 ]。
1,000 個の 40 桁の数値をそれぞれ格納できるストア (つまりメモリ) が設けられる予定だった(約 16.6 kB )。[ 15 ]算術ユニット(「ミル」) は、4 つの算術演算すべてに加え、比較とオプションで平方根を実行できるはずだった。[ 16 ]当初 (1838 年) は、長いストアが片側に出る、概ね円形のレイアウトで、自身に折り返された差分エンジンとして構想されていた。 [ 17 ]後の図面 (1858 年) では、規則的なグリッド レイアウトが描かれている。[ 18 ] [ 19 ]現代のコンピュータの中央処理装置(CPU)と同様に、ミルは、ユーザー プログラムが指定するより複雑な命令の一部を実行するために、 「バレル」と呼ばれる回転ドラムに挿入されたペグの形で格納される、現代の CPU のマイクロ コードにほぼ相当する独自の内部手順に依存することになっていた。[ 7 ]
ユーザーが使用するプログラミング言語は、現代のアセンブリ言語に似ていました。ループと条件分岐が可能だったので、構想された言語は、後にアラン・チューリングによって定義されたチューリング完全でした。3 種類のパンチ カードが使用されました。1 つは算術演算用、1 つは数値定数用、もう 1 つはロードとストア操作用で、ストアから演算ユニットへ、またはその逆へ数値を転送します。3 種類のカード用に 3 つの別々のリーダーがありました。バベッジは 1837 年から 1840 年の間に解析エンジン用に約 20 個のプログラムを開発し、その後 1 つのプログラムを開発しました。[ 14 ] [ 20 ]これらのプログラムは、多項式、反復式、ガウス消去法、ベルヌーイ数を扱います。[ 14 ] [ 21 ]
1842年、イタリアの数学者ルイージ・フェデリコ・メナブレアは、 1840年にバベッジがトリノを訪れた際に行った講義に基づいて、フランス語でこのエンジンの説明を発表しました。[ 22 ] [ 23 ] 1843年、この説明は英語に翻訳され、8年前にこのエンジンに興味を持ったエイダ・ラブレスによって詳細に注釈が付けられました。 [ 13 ]メナブレアの論文への彼女の追加、特にこの機械を使ってベルヌーイ数を計算する方法(広く最初の完全なコンピュータプログラムと考えられている)が評価され、彼女は多くの人から最初のコンピュータプログラマーと呼ばれていますが、この見解に異議を唱える人もいます。
晩年、バベッジは機械の簡略版を作る方法を模索し、1871年に亡くなる前にその一部を完成させた。[ 1 ] [ 7 ] [ 24 ]
1878年、英国科学振興協会の委員会は、解析機関を「機械的創意工夫の驚異」と評したが、その製作には反対した。委員会は、この機械の有用性と価値を認めたものの、製作費用を見積もることができず、製作後に正しく機能するかどうかも確信が持てなかった。[ 25 ] [ 26 ]

1880年から1910年にかけて断続的に、バベッジの息子ヘンリー・プレボスト・バベッジは、ミルと印刷装置の一部を製作していた。1910年には、πの倍数の(不完全な)リストを計算することができた。[ 29 ]これはエンジン全体のごく一部に過ぎず、プログラム可能ではなく、記憶もなかった。(この部分の一般的な画像は、ミル全体、あるいはエンジン全体であるかのように誤ってラベル付けされていることがある。)ヘンリー・バベッジの「解析エンジンミル」は、ロンドンの科学博物館に展示されている。[ 27 ]ヘンリーはまた、記憶容量の小さい完全なエンジンのデモンストレーション版を製作することも提案した。「最初の機械としては、10列で十分だろう。各列に15個のホイールがあればよい」。[ 30 ]このようなバージョンでは、それぞれ 25 桁の 20 個の数字を操作することができ 、それらの数字に対して実行するように指示できる内容は依然として印象的である。「カードと時間だけの問題だ」とヘンリー・バベッジは 1888 年に書き、「数学者の目的のために解析エンジンで必要であれば (2 万) 枚のカードを使用しない理由はない」と述べている。[ 30 ]
1991年、ロンドン科学博物館は、バベッジの差分機関第2号の完全な動作可能な標本を製作した。この設計は、バベッジが解析機関の開発中に発見した改良を取り入れたものである。[ 5 ]この機械は、バベッジが利用できたであろう材料と工学的許容誤差を使用して製作されており、バベッジの設計は当時の製造技術では製造できなかったという説を否定している。[ 31 ]
2010 年 10 月、ジョン・グラハム=カミングは、バベッジの設計図を本格的な歴史的・学術的研究に活用し、その後、完全に機能する仮想設計を構築・テストし、最終的に物理的な解析機関の構築を可能にするための資金を「一般からの寄付」によって調達する「プラン 28」キャンペーンを開始した。[ 32 ] [ 33 ] [ 34 ] 2016 年 5 月の時点では、バベッジのオリジナルの設計図から一貫した理解が得られなかったため、実際の構築は試みられていなかった。特に、ラブレースのベルヌーイ プログラムに必要なインデックス付き変数を処理できるかどうかは不明であった。[ 35 ] 2017 年までに、「プラン 28」の取り組みは、カタログ化されたすべての資料の検索可能なデータベースが利用可能になり、バベッジの膨大なスクリブリング ブックの最初のレビューが完了したと報告した。[ 36 ]
バベッジのオリジナルの図面の多くはデジタル化され、オンラインで公開されている。[ 37 ]

バベッジは、現代のプロセッサマニュアルのように、エンジンの明確な指示を書き留めたという記録はない。その代わりに、彼はプログラムの実行中の状態をリストとして示し、各ステップでどの演算子が実行されたかを示したが、制御の流れがどのように導かれるかについてはほとんど示さなかった。
アラン・G・ブロムリーは、条件をテストした後、条件分岐の関数としてカードデッキを順方向と逆方向に読み取ることができると仮定しており、これによりエンジンはチューリング完全になる。
...カードは前進と後退(つまりループ)するように命令できる... [ 14 ]
1845年に初めて、さまざまなサービス機能のためのユーザー操作が導入されました。最も重要なのは、ユーザープログラムにおけるループのユーザー制御のための効果的なシステムです。操作カードと変数カードの回転方向がどのように指定されているかは示されていません。他の証拠がないため、バベッジのサンプルプログラムで使用されているループを実装するために必要なように、操作カードと変数カードの両方を逆方向にのみ回転できるという最小限のデフォルトの仮定を採用せざるを得ませんでした。動作方向をユーザーの制御下に置くことに、機械的またはマイクロプログラミング上の困難はありません。[ 38 ]
Fourmilabは、エンジンのエミュレーターで次のように述べています。
エンジンのカードリーダーは、カードを最初から最後まで順番に処理するだけに留まりません。読み取ったカードの内容や、ミルのランアップレバーが作動しているかどうかに応じて、カードチェーンを前方に進めて途中のカードをスキップしたり、後方に進めて既に読み取ったカードを再度処理したりすることができます。
このエミュレータは、記号による命令セットを提供していますが、これはバベッジのオリジナル作品に基づくものではなく、開発者によって独自に構築されたものです。例えば、階乗計算プログラムは次のように記述されます。
No.6 N1 1 N2 1 × L1 L0 S1 – L0 L2 S0 L2 L0 CB?11
ここで、CBは条件分岐命令、つまり制御フローをジャンプさせるために使用される「組み合わせカード」であり、この場合は11カード分後方にジャンプします。
バベッジは、自動コンピュータの存在が、現在アルゴリズム効率として知られる分野への関心を喚起することを理解しており、著書『哲学者の生涯からの抜粋』の中で次のように書いています。「解析エンジンが存在するとすぐに、それは必然的に科学の将来の方向性を導くでしょう。その助けを借りて何らかの結果が求められるたびに、次の疑問が生じます。機械はどのような計算方法によって最短時間でこれらの結果に到達できるのか?」[ 39 ]
1872年からヘンリーは父の仕事を精力的に続け、1875年に引退してからは断続的に続けた。[ 40 ] 1902年、アレクサンダー・レヒニッツァーは時計やオルゴールの機械式エンジンを利用して、厳密なシーケンスと入れ子ループを用いて乗算と除算を自動化した。平方根の計算は後にフリーデン計算機会社によって自動化された。[ 41 ]
パーシー・ラドゲートは1914年にこのエンジンについて書き[ 42 ]、1909年には解析エンジンの自身の設計を発表した[ 43 ] [ 44 ]。それは詳細に描かれたが、製作されることはなく、図面も見つかっていない。ラドゲートのエンジンはバベッジのエンジンよりはるかに小さく(約230L (8.1立方フィート))、理論上は20桁の10進数を約6秒で掛け合わせることができるはずだった[ 45 ] 。
『自動計算機に関するエッセイ』(1914年)[ 46 ] において、レオナルド・トーレス・ケベドは、読み取り専用プログラムによって制御される理論的な電気機械式計算機を提案することで、バベッジのアイデアを発展させた。この著作では、浮動小数点演算[ 47 ]と概念的に関連する概念も導入され、電気機械的な手段によって複雑な推論プロセスを自動化する可能性が探求された。1920年、彼は、結果を自動的に印刷できるタイプライターに接続された電気機械式算術計によって、これらのアイデアの実現可能性を実証した。[ 48 ] [ 49 ] [ 50 ]
ヴァネヴァー・ブッシュの論文「計測分析」(1936年)には、バベッジの研究への言及がいくつか含まれていた。同年、彼は電子デジタルコンピュータの構築に関する問題を調査するために、高速算術機械プロジェクトを開始した。[ 51 ]
こうした発展にもかかわらず、バベッジのオリジナルの研究の多くは、1930年代と1940年代の電気機械式および電子式計算機の多くの開発者にとって比較的知られておらず、その結果、後に解析機関に関連付けられることになるいくつかのアーキテクチャのアイデアが独自に再発明されることになった。 1937年から1945年の間に、すぐに時代遅れとなった電気機械式計算機ハーバード・マークIを製作したハワード・エイケンは、おそらく自分の地位を高める方法としてバベッジの研究を称賛したが、マークIの製作中は解析機関のアーキテクチャについて何も知らず、完成した解析機関の部分を訪れたことを「人生最大の失望」と考えていた。[ 52 ]マークIは解析機関の影響を全く受けておらず、解析機関の最も先見性のあるアーキテクチャの特徴である条件分岐も欠いていた。[ 52 ] J. プレスパー・エッカートとジョン・W・モークリーも同様に、最初の電子汎用コンピュータであるENIACの設計が完了するまで、バベッジの解析エンジンの研究の詳細を知らなかった。[ 53 ] [ 54 ]
解析機関が構築されていたら、それはデジタルでプログラム可能でチューリング完全であっただろう。しかし、非常に遅かっただろう。ルイージ・フェデリコ・メナブレアは『解析機関の概略』の中で、「バベッジ氏は、自分の機関で、それぞれ20桁の数字を含む2つの数の積を3分で計算できると信じている」と報告している。[ 55 ] それに比べて、ハーバード・マークIは同じタスクをわずか6秒で実行できた(ただし、このコンピュータがチューリング完全かどうかは議論の余地がある。チューリング完全であるENIACはさらに速かっただろう)。現代のCPUは、同じことを10億分の1秒未満で実行できる。
{{cite book}}ISBN /日付の不一致(ヘルプ)