🌹

チャールズバベッジについて(階差、解析機関)

2022/05/07に公開

この記事では、チャールズバベッジ(1792~1871:イギリスの数学者)の功績について書きます。
元々プログラミングというアイディアは、19世紀にチャールズバベッジが考えたモノといわれています。コンピュータやプログラミングの起源となる彼の功績についてまとめてみます。

19世紀イギリス:産業革命

まずは時代背景からです。19世紀のイギリスでは産業革命によってモノが大量に生産されていました。経済が急速に発展し、貿易などの航海が盛んになります。航海には様々な計算を使用しており、中でも計算の結果をまとめた対数表が必要でした。対数表は航海術・天文学・統計学など様々な分野で利用されており、当時は人の手によって計算されていました。

しかし人間の計算には必ずミスが付きものです。増加する人口や経済へ手作業では追いつかなくなっていました。バベッジが階差・解析機関を発明した背景には、こうした当時の正確な計算への強いニーズがありました。(バベッジ自身も対数表の誤りの多さにうんざりしていたようです。)

1822年:階差機関

そこでバベッジは機械に計算させることを思いつきます。人間よりも機械に計算させればミスはないと考えたのです。1822年、彼は階差機関を発明します。階差機関とは対数表を計算させるための機械です。

仕組みとしては計算の1つ1つを歯車の動きによって処理します。歯車が決められた通りに動くなら間違いは起こりません。 しかしデモンストレーション用の模型しか完成させることができませんでした。設計は見事でしたが、その製造には費用がかかりすぎたのです。

YouTubeでも彼の作った階差機関を見ることができます。)

1837年:解析機関

バベッジは対数表だけでなく、他の計算にも使える機械も考案しました。解析機関は現代のコンピュータの5台装置といわれる、入力・出力・記憶・演算・制御の5つの機能を備えていました。例えばストアという部分は現代のコンピューターのメモリに相当し、ミルという部分は同じくCPUに相当します。

解析機関では穴の空いたカードを使って、計算用の機械にプログラムを読み込ませようとしていました。穴が開いている・開いていないの組み合わせで、様々な情報を表すことができます。 それは現代のコンピューターが2進数(1/0)で色々なデータを表すことと同じです。(パンチカードで情報を処理する..というのはジャガート織機のアイディアを借りたモノでした。)

「プログラムを読み込ませて計算させることができる」という点で、解析機関は現代のコンピュータの源流..とも言われています。 プログラミングにより多用途に使える世界初の汎用コンピュータを目指したモノでした。しかしこの解析機関も結局はイギリス政府から予算を取ることができませんでした。

計算への強いニーズ

現代のコンピュータともなる大発明にかかわらず、なぜ解析機関はイギリス政府から予算を取ることができなかったのでしょうか。それは本当の意味で計算への強いニーズがなかったためだと考えられます。

本当の意味で計算へのニーズが高まるのは、第一次世界大戦が始まってからです。戦争という大きな事件があって始めて、コンピュータ(という高速に計算できるマシン)へのニーズが高まります。現代の大企業や政府が求めるほどの計算処理への需要があったなら、そしてもしバベッジが作ろうとしていた解析機関が成功していれば..コンピュータの進化はもう100年早かったかもしれません。

エイダバイロン:世界初のプログラマ

しかしこのバベッジの研究に注目する女性がいました。オーガスタエイダバイロン(1815~1852)です。

エイダは解析機関の持つ大きな力に気付いていました。バベッジの解析機関に関する論文をフランス語から英語へ訳す仕事に携わっています。その中でこの解析機関の応用について述べたメモを添えています。解析機関へ様々な作業を実行させるにはどのようにプログラムすれば良いか?を考えていたのです。

オーガスタ・エイダ・バイロンは世界最初のプログラムと認められています。彼女の功績を称えて、アメリカ国防総省はプログラミング言語Adaを名付けました。

計算機からプログラムへ

「計算できるマシン」という意味でのコンピュータは、古代ギリシャの時代からありました。石ころやそろばんなども広い意味ではコンピュータです。しかし色々な命令を読み取れるように設計されたモノ(つまりプログラム可能なモノ)というのはずっと出てきませんでした。

バベッジの構想したマシンは、設計費用の高さから実現できませんでした。またパスカル、ライプニッツなども考えた複雑な歯車によって動くマシンも現実的な予算で制作することはできません。結局1900年代の初期に電子工学が進歩したことによって、複雑な歯車→0/1の電気信号によってこの問題を解決することになりました。

コンピュータは誰か1人の発明によって出来たモノではなく、人類の長い歴史の中で出来上がったマシンです。「世界初のコンピュータを作った人は誰?」というのは非常に難しい質問です。しかし「プログラム可能なマシンを作った」という意味では、バベッジは名前に挙げても良いのではないでしょうか。

Discussion