コンピュータの100年と、インターネットへの相転移 その1
社団法人日本印刷技術協会 副会長 和久井 孝太郎
今日,コンピュータの父とされているのは,英国の数学者・哲学者であり発明家でもあったチャールズ・バベッジである。彼はプログラム(program)制御型の歯車計算機「解析機関」の開発を,英国政府からの補助を受けて1834〜71年で行った。このシステムは機械加工精度不足など困難があって,完全には作動しなかったが,後代に多大な影響を及ぼした。この時の面白いエピソードとして,詩人バイロンの一人娘エイダ(ラブレス伯爵夫人)がバベッジの歯車計算機を制御するためのプログラム開発を担当したと伝えられている。エイダは,世界初のプログラマ(programmer) ということになる。
計算する仕組みにおける,プログラムやプログラミング(programming) とは何か?プログラムとは,機械に仕事をさせるための動作手順を指定する「もの」である。すなわちプログラムと呼ばれる「もの」は,計算機に人間が出す命令である。計算機が命令を理解するということは,計算機が理解できる言語があるということであり,その計算機は自分の言葉で語りかけられた時にのみ仕事を実行する。
一方,プログラミングとは,プログラムを作成することで,プログラマはそれを担当する人のことである。バベッジは19世紀半ばで,このようなプログラム可能な計算する仕組みを開発しようとしたのである。
計算する仕組みのうち,今日では金物の部分をハードウエア(hardware:略してハード)と呼ぶ。この部分は計算目的や内容が変わっても変更されない。一方,計算方程式・数値などのデータ(data)は,当然のこととして計算目的によって変更される。そして,計算する仕組みを利用するためのプログラムや,OS(基本ソフトウエア),応用ソフトウエアなど利用技術全体をソフトウエア(software:略してソフト)と呼ぶ。
コンピュータ分野で発想されたハードとソフトという区分法は,現在では,いろいろな場面で使われており,先に述べた放送の仕組みでは,機械設備や放送局はハード,放送局経営や番組制作はソフト,番組の内容はコンテンツ(contents)などと区分する。更に一般化して例えば,人体をハード,思考をソフトなどと見立てる。
言語命令を理解する計算機の本質を徹底的に考え,紙の上で本格的な計算する仕組みの思考実験に成功したのが,第3章で述べた英国のアラン・チューリングである。機械式から電気式へ,さらに電子式のデジタル計算機開発に,時代が移ろうとしている中で,チューリングは時代に先駆けて,すべてがソフトからなる万能計算機を開発したのである。すなわちデジタル・コンピュータ(以下,すべてデジタル・コンピュータについて記述)は,理論が具体的な開発の実践に先行することになった。
数学者であり論理学者でもあったチューリングは,1936年に「計算可能な数について」と題した論文を発表した。彼は,実際にコンピュータが開発される10年も前に,プロクラム可能な計算する仕組みの論理的特性と,その限界を人々に提示したのである。
しかし,チューリングが示したのは,記号的な記述であって,論理的構造について明らかにするにとどまり,それを現実のものとするために,例えば,論理素子に継電器(リレー:relay)を使うとか,真空管を使うとか,トランジスタを利用するなど,といった現実的なことは何も述べなかった。彼の仮想的な万能計算機は,今日では「チューリング・マシーン」と呼ばれ,コンピューターの原理を教えるための教材の一つとしてよく使われている。また,チューリングが1950年に発表した論文「計算機械と知能」では,コンピュータは人間の知能を完全に模倣することが可能であり,実際にそれが2000年までに実現するであろうと言明して論争の種となった。(*)
チューリング・マシーンは,テープと呼ぶ無限に長い記憶媒体と,その上を右・左に動くことができる情報の読み取り・書き込み器(head)で構成される簡単な構造を持つ。チューリングは,この仮想マシーンを使って,いろいろな問題に対応できる汎用コンピュータが可能なことを証明した。
チューリングは,一連の規則(プログラミング言語)を用いて,この仮想マシーンの動作を記述した。彼が考えたマシーンの動作は簡単で,記号1を書く,記号0を書く,ひとます右に移動する,ひとます左に移動する,停止するの五つであった。
プログラムは,仮想マシーンの状態を表わす0からnまでの数字(2進法で書くことも可),テープ上のデーターを表わす0と1の数字,ひとます左,または,右にヘッドの移動を指示するLとRの文字の三種類である。例えば,[7,1,0,R,8]というプログラムは,マシーンが7の状態で,読み出しが1であれば,0を書き込み,右へひとます移動して,8の状態に入ると云うことをマシーンに伝える。
すなわち,チューリングのプログラミング言語は,[マシーンの状態,テープ上のます(cell:セル) の情報内容を読む指示,セルに書き込む指示,ヘッド移動の指示,新しい状態]の五つの手順で,機械の状態には0からnまでの数字の1つ,セルへの書き込みは0か1,ヘッドの移動はRかLと云う三つの要素を組み合わせる簡明なものである。
チューリングは人間にもマシーンにも,一種類の解釈しか許さず,常に同一の結果が得られる,コンピューターの原点と云えるアルゴリズム(algorithm:問題を解くための一連の規則)を探究したのである。
チューリングによって,プログラムとデーターの間には本質的な差がないこと,汎用マシーンが可能であるなど,コンピューターにとって重要な概念が明らかになった。あらゆる演算処理が,チューリング・マシーンのプログラムとして表現可能であり,計算可能な関数はすべてチューリング・マシーンで計算できることが,「チャーチの定量」として証明されている。
今日の実際的なコンピューターは,作業命令をプログラムとして与えられると,プログラム上の命令を順次解読し,手順に従いデーターをステップ・バイ・ステップ(step by step) に処理して,所要の結果を出力する『電子からくり』である。
[*筆者注:J.David Bolter:'TURING'S MAN',The University of North Carolina Press,(1984)(邦訳)土屋俊,山口人生:チューリング・マン,みすず書房(1995.5)]
数の計算・数値解析をするために,歯車計算機の次の世代として開発されたのが,リレー計算機(電気計算機)であった。その代表的な例は,図9に示しされているドイツのコンラッド・ツーゼが1938〜41年に開発したZ1 Z2 Z3 である。この中でZ3 は,世界初のプログラム制御型汎用リレー計算機で,22ビットの2進数64を記憶するのに約1800個のリレーを使用し,計算のために約6000個のリレーが使用された。この計算機は,航空機の強度設計に役立ったと伝えられている。ツーゼと同じ頃から,米国や英国などでもいろいろなリレー計算機の開発が進められるようになった。
一方,米国アイオワ州立大学のジョン・アタナソフとクリフォード・ベリーは,1939年から真空管計算機(電子計算機「ABC」)の研究を開始して最初の成功を収めることができた。この研究は第2次世界大戦の勃発で中断されたが,後にアタナソフは,長い法廷闘争の勝利者として「デジタル・コンピュータの発明者」の法的権利を得た。いずれにしても,第2次世界大戦の軍事的な欲求は,コンピュータの開発を加速した。
参考図
以前の記事 0.コンピュータの歴史に見る、「ものごと」の進展パターン
以降の記事 2.技術の標準化
2000/05/05 00:00:00