コンピュータ ― 道具それとも専制支配者?
多くの人を笑わせ,またある人々を身震いさせる,コンピュータにまつわるこんな話があります。幾つかの大国が,それぞれの国の抱える複雑な問題を解くために,自国の高度に進んだコンピュータを他の大国のコンピュータと連結することに同意します。膨大な量の情報が強力な情報処理装置に保管されます。正しく連結しているかどうかをテストするために,「神は実在するか」という“究極的質問”を統合コンピュータ・システムに入れることになります。
テープのリールが回転し,計器のライトが明滅します。史上最も複雑なコンピュータが,内蔵している莫大な量のデータを詳細に調べ,事実を比較,分析しているのです。すべてがこの質問の解明に全力を上げます。数分後に,コンピュータは活動を停止し,タイプライターが猛烈な勢いで,幾十億もの論理的な判断の最終結果を打ち出します。押し黙ったまま驚きの目を見張る人々の前に,「現在,実在している!」という簡明な答えが書き出されます。
美に対する反応が「見る人の目に」大きく依存しているように,この話に対する反応は人によって異なります。個人的な経験から,コンピュータの能力に常に感嘆の言葉を述べる人もいれば,反対に不安と反発を感じる人もいることでしょう。
ある人にとって,コンピュータは天才的な能力を持つ機械に思えます。1万6,000㌔にも及ぶ旅行の座席の予約確認を即座に教えてくれますし,複雑な訴訟に関係した適切なデータを捜し出して,弁護士を助けてくれます。くつろいだ時には,チェスや五目並べの強敵ともなります。しかし,別の人の目には,誤りを犯しやすい盲目的な機械に映ります。そうした人は,預金の残高が不正確になったり,ずっと以前に支払った請求書の督促が何度もなされたり,自分の不名誉な記録が“記憶”され,ボタンを押すだけで世界中のだれもが自由に見ることができるようになる,と批判的です。
あなたはコンピュータをどう考えておられますか。様々な側面を持つ,電子工学のこの傑作を,さらに詳しく調べてみるのはいかがですか。
なぜ開発されたか
歴史を振り返ると,人間は,反復して行なう仕事のスピード化を計り,同一の作業をできるだけ省こうとして,人間自身の能力の拡大に努力してきたことが分かります。耕作,歩行,製造などの物理的な仕事は,労力を軽減する数多くの機械装置によって簡易化されました。しかし,反復して行なうとはいえ,頭脳活動を自動化することは思いもよりませんでした。
一例として,最新の在庫数量を調べるため多くの数字を加算しなければならない製造業者のことを考えてみましょう。元来,この製表作業は完全に知的な工程です。やがて,加算器や現代的な計算器が発明されるに及び,計算そのものは自動化されました。もっとも,この場合でも,データを計算器に入れる仕事は人手によりました。オペレーターの操作が工程の中で最も遅い動きとなり,退屈で注意が散漫になるという問題も生じました。
数字を“読んで”,該当する数字のキーを動かし,加減のいずれかを判断して,結果を印字する機械を作れるでしょうか。それが作れるのです! 鑚孔カードや磁気テープを利用して,あるいは光学文字読み取り機で書類をじかに“走査する”ことさえして,データを直接コンピュータに入れることが可能なのです。しかし,機械は,データの処理方法をどのように知るのですか。
その答えとなったのがプログラム記憶方式です。加算器や計算器では,一つのキーを押すごとに一つか二つの操作がなされるにすぎませんが,プログラム記憶方式の,つまり“記憶装置”を備えているコンピュータは,入ってくるデータを分析し,その結果に基づいて様々な別個の処理を行なうよう一連の指令を出すことができます。コンピュータの記憶容量と速度が増えたのに応じて,可能性も息を飲むようなものとなりました。
コンピュータの力のより広い応用
コンピュータの潜在能力について思い巡らしながら製造業者の立場に自分の身を置いてください。あなたはこう考えるかもしれません。『生産品の数を加算し,販売数量を減じることができるのであれば,この機械に在庫の数を追跡させ,数が少なくなった時に我々に“告げ”させるようにできないものだろうか。動きの速い品物の場合は200個を割った時に,また動きの遅い品物の場合は20個以下になる時に,自動的に告げさせるようにできればなおよいのだが。でも,待てよ! 年に何回か品物が大量に動く時期がある。年間の販売記録を機械に入れて,週間予想を告げさせるようにしよう。昨年,各支社が何を必要としたかが分かっている。その情報に基づいて,この機械は,今年も同じ量の品物を自動的に発送するスケジュールを立てることができるだろう。注文を“読み”,それを細かく分類し,期日に間に合うように発送するにはいつ生産を開始したらよいかを告げさせるようにできるだろうか。また……』。
もちろん,それは可能なことです。現在,コンピュータはこれらのことを行なっており,様々な,業務の分野でこれよりもはるかに多くの事柄を成し遂げています。コンピュータの能力が十分発揮されていないのは,コンピュータ・システムの利用可能な時間,能力,そして装置が不十分であったり,使用者の側に想像力や多彩な知識が不足していたりするためです。
スピード化される敏速な処理
現代のコンピュータの処理速度を例示するために,10万個の7けたの数を加算する問題に取り組んでいる事務員の姿を想像してください。普通の便せんに,これらの数字を,各ページ10列ずつ行を詰めてタイプすると,150ページほどになります。これを計算器を使って行なうなら,7けたの数字と“加える”のキーを1秒間で押しても,ほぼ28時間熱心に働き続ける必要があります。この計算をコンピュータと同時に始めるとしましょう。がっかりさせられるではありませんか! 人が数字をセットし,最初の“加える”のキーを押す前に,コンピュータは答えを印字してしまうのです!
高速で働くコンピュータは,プログラムを正しく組みさえすれば,他の機械と同じように,疲れることも,退屈することもなく,異常な精度で仕事を行ないます。しかし,費用についてはどうでしょうか。1950年代初めには,10万回の計算の処理に1㌦26セントほどの経費がかかりましたが,現在では1セント(2円)以下で行なえます。新しい“磁気バブル”記憶装置を使えば,記憶装置の大きさを従来の千分の一程度にすることも可能です。技術者たちは,6㍉ほどの金属片にすっぽり収まる記憶装置の開発を思いに描いています!
驚きましたか。ある研究者は,数世紀もしたらコンピュータが人間を喜んで自分のペットにしてくれることが我々の唯一の願いになるだろうと結論しましたが,あなたもそう感じていますか。コンピュータはわたしたちの上に権力を振るう専制支配者となるのでしょうか。その答えを得るために,コンピュータの限界について考慮してみることにしましょう。
コンピュータの限界
その能力は空恐ろしいほどですが,コンピュータはしょせん機械にすぎません。適切にも,ブリタニカ百科事典にはこう記されています。「コンピュータには,判断を下したり,常識を働かせたりすることはできない。あらゆる偶発事にどのように対処するかに関するこまごまとした指示をプログラムに組み込んでおかねばならない」。そうです,プログラマーは,処理方法を指定する命令を開発する際に思考力と想像力を働かせなければなりません。他の機械と同様,コンピュータは,プログラマーの立案した指定された順路通りに処理を行なうだけで,それ以外のことはいっさい行なえません。コンピュータは,あるステートメントが間違っているかどうかをコンピュータ言語の規則に照らして判断することができます(コンピュータがそのように設計されている場合)が,望む結論に到達する上で,そのステートメントが論理的に正しいか間違っているかを判断することはできません。
プログラマーの主要な仕事の一つに,専門語で“デバッグ”と呼ばれるものがあります。デバッグとは,“誤り<バッグ>”つまりコンピュータには検知不能の論理上の不備な点を捜し出して,それを削除することです。これは,特別に準備したデータを使ってそのプログラムをテストし,事前に調べてある正しい答えとその結果を比較することによって行なわれます。容易に分かるように,コンピュータ・システムがプログラマーに全面的に依存しているのは,機械に判断能力が全く備わっていないためです。プログラミングの講師は,この驚異的な電子機器を,適切にも,“素速く物事を処理する愚者”と評しました。
コンピュータは命令に盲目的に従うだけで,何か悪いことが行なわれても,良心を悩ますようなことはありません。ですから,プログラマーは,申込者の名前と姓,もしくは,名前または姓のところで文字の特殊な組み合わせに基づいて,その働きを変化させることによって,コンピュータに“偏見”を抱かせることができます。また,無節操なプログラマーが自分の利益のためにコンピュータを動かすことも自由にできます。1977年7月3日付のニューヨーク・タイムズ紙によると,コンピュータを利用した犯罪の被害総額は,現在でも年間3億㌦(約600億円)に達しているものと推定されます。1件当たりの平均被害額は50万㌦(約1億円)にも上ります!
コンピュータが,人間より多くのことも,また優れたことをも行なえないのは明白です。コンピュータは物事を迅速に処理できるにすぎません。「博物学」誌は,人間とコンピュータを比べた結果について,興味深くも次のように述べました。「今日のコンピュータの性能をそのまま保って装置を大きくし,人間の頭脳の記憶容量に匹敵する機械を造れば,100万㌔ワット,つまりグランド・クーリー・ダムの総発電量の半分に相当する電力が消費され,エンパイア・ステート・ビルディングと同程度のスペースが必要になろう。製造費用は100億㌦(約2兆円)近くに達しよう。その機械は人知を結集した驚異的な装置になるが,それでも,人間の頭脳のへたな模造品にすぎないであろう」。同誌は次のようにも述べました。「世界最高の電子頭脳と言えども,人間の頭蓋に収まっている2,800ccの灰白質と比べるなら,ほとんどどの点においても極めて不満足である」。
コンピュータは,人間とは違って,たとえわずかであっても,プログラムに組み込まれた以外の処理を行なうことはできません。この点をもっと明確に理解をするには,簡単なコンピュータ・プログラムの一部を取り上げるだけで十分でしょう。
コンピュータ・プログラム
プログラムは,コンピュータに対して,入力されるデータの性格に関する全指令,処理規則,結果をどんな書式で表わすかなどを指示します。ここで,製造業者の例に戻り,一日の製品の生産・販売に伴う調整を加えた後の在庫目録を作成するプログラムの一部を書いてみることにしましょう。ここで用いるプログラミング言語はCOBOL(Common Business Oriented Language)を日本語に訳したものです。データは次のようになります:
取り引き
00012セイサン0120
00150セイサン0032
00201セイサン0088
00201ハンバイ0035
00208セイサン1134
00301セイサン0078
00301ハンバイ0012
00404セイサン1234
古いマスター・ファイル(昨日のもの)
00012ゴム ガスケット 00700150
00150キンゾク チョウツガイ 01201200
00201 シンチュウ ドア・ノブ 00320030
002081 モクネジ 00980500
00301ウインドー・モールディング04300090
00404ニインチ クギ 15600999
前述のデータをプログラムに組むと次のようになります(Xと9のおのおのはデータ中の一つの位置を表わしている点に注意してください):
01 イドウショリ カード 01 ザイコ キロク ゲンポン
05 イドウ セイヒン バンゴウ PIC XXXXX. 05 セイヒンバンゴウ PIC XXXXX.
05 ハンバイ ― モシクワ ― セイサン PIC XXXX. 05 セイヒンメイ PIC X(15).
05 ソウスウ PIC 9999. 05 ザイコスウ PIC 99999.
05 サイテイザイコスウ PIC 999.
それぞれの取り引きを対応する記録原本と対照した後,次のプログラム(COBOL文の日本語訳)が適用されます:
ハンバイ ― モシクワ ― セイサン ガ‘セイサン’ニ ヒトシケレバ
ソウスウ ヲ ザイコスウ ニ クワエル.
ハンバイ ― モシクワ ― セイサン ガ‘ハンバイ’ニ ヒトシケレバ
ソウスウ ヲ ザイコスウ カラ サシヒク.
取り引きの処理をした後の新しいマスター・ファイルは次のようになります:
00012ゴム ガスケット 00820150
00150キンゾクチョウツガイ 01233200
00201シンチュウ ドア・ノブ 00373030
002081 モクネジ 02114500
00301ウインドー・モールディング04366090
00404ニインチ クギ 16834999
実際には,ほとんど日本語から成るこのプログラムではコンピュータは操作できず,まず“コンパイラー”と呼ばれる特別なプログラムを使って,これを機械が読める言語に変換することが必要です。コンピュータのプログラムに,“セイヒン バンゴウ”とか“ソウスウ”といった言葉が用いられるかもしれませんが,これらの言葉は機械にとって何の意味も持ちません。それは単に,ある処理過程を特定の記憶域と結び付けるために用いられているにすぎません。プログラム全体を通じて,これらの言葉を“ジョン”と“メアリー”という名に置き換えても,全く同じ機械語の符号が得られます。COBOL言語は読み手のことを考えて作られています。
潜在的な問題
前述のプログラムがコンピュータにかけられている間にも,現在では対処できない数多くの誤りの生じる可能性があります。カードに“ハンバイ”とではなく“ハンザイ”とパンチされたならどうなるでしょうか。また,数が一字右にずれたならどうですか。あるいは,“1234”の代わりに“12×4”という数字フィールドになったらどうでしょうか。厳密さが取り柄のわたしたちの友人,コンピュータは,その価値を失ってしまうことでしょう。さらに,間違いで,もしくは実際に,在庫品の総数が9万9,999個を超えたならどうでしょうか。あるいは,数字は正確であっても,それが3日遅れていたならどうですか。入力情報をコンピュータに正しく入れない限り,正しい答えを得ることはできません。コンピュータ関係者の間では,“がらくたを入れれば,がらくたが出て来る”という簡明な言葉でこれが適切に表現されています。
プログラマーは,生じうるあらゆる誤りを考える想像力を,その誤りの一つ一つに対して備えるための忍耐と結びつけねばなりません。“ソフトウェア開発の神話”(The Mythical Man-Month)と題する出版物はこう述べています。「大きな概念を組み立てることはおもしろいが,しらみの卵ほどの小さなバグを見つけなければならない仕事は苦しみである。どんなに創造的な活動にも,退屈で骨の折れる苦労をしなければならない時期が必要であり,プログラミングにおいても例外ではない」。プログラマーがいかに努力を払ったとしても,どのコンピュータ・システムも,必要に応じて,結果を人間の目で見直し,必要ならば訂正しなければなりません。コンピュータも,プログラマーも,不びゅうであるかのように考えてはならないのです。
コンピュータに対する正しい見方
驚くべきスピードと精度を誇る電子計算機は,人間の指示通りに働く優れた奴隷です。これに正しく指示するなら,人間は,反復作業に付きものの退屈感やざ折感からかなりの程度まで解放されます。コンピュータは人の頭脳労働を軽減します。しかし,人間の持つ,感情移入や思いやりという特質,独創力,洞察力,想像力などをプログラムに組んで機械に入れることはできません。人間は,機械の主人として,機械を統御し,その働きを確認し,必要な場合には調整を加えなければなりません。
コンピュータのような機械の中には,空恐ろしさを感じさせられるほどの技術的な仕事を成し遂げるものがありますが,それはあくまで神の手の業の範囲内でのことであり,それを超えるものはありません。コンピュータは機械であり,人間が恐れたり,あがめたりするものではありません。コンピュータは,人間からある種の重荷を取り去り,生活をより十分楽しむ自由を人間にもたらすような仕方で用いられるべきです。