パソコンのフリーズが「治らない」理由 『不完全性定理とはなにか』

ゲーデルとチューリングの考えたこと
竹内 薫 プロフィール

 で、このプログラムの正体は何かといえば、なんと「計算」なのだ。その証拠に、たとえばワープロで使われるすべての文字には、対応する「数字」が割り当てられていたりする。

 誤解のないように書いておくと、会社の経理ソフトもたしかに計算だが、ここで言う「計算」は、もっと根源的なものを指している。経理ソフトの計算は人間界における計算だが、その計算をおこなうのはパソコンのプログラムであり、そのプログラム自体が計算なのだ。だから、デジカメの写真現像ソフトのプログラムも計算だし、文章を書くワープロのプログラムも計算なのだ。

 あたりまえと言えばあたりまえの話だ。

 そもそもパソコンはパーソナル・コンピュータの略であり、コンピュータは「計算機」という意味ではなかったか。

 おいおい待てよ、竹内薫は、いったい何が言いたいのか。

 ええと、ようするに、パソコンやインターネットを使う仕事は、すべて、プログラムのレベルにおいては「計算」だ、ということを確認したいのである。そして――ここが重要なのだが――フリーズという現象は、計算がうまくいっていないことを意味する!

 うん? 計算がうまくいっていない? それは具体的にはどーなってんの?

 実は、フリーズにもいろいろな原因があるのだが、その一つに「無限ループ」の存在があげられる。

 プログラムの多くは「くりかえし」の方法で計算がおこなわれる。学校の数学の時間に「帰納法による証明」というのを必ず教わるが、アレである。実生活には全く必要ないから、学校を卒業すると、ほとんどの人は忘れてしまうが、目の前のパソコンの中で、帰納法は地道に使われていたんですねぇ(本書117ページ以降を参照)。

 で、無限ループというのは、その計算が文字通り、無限にくりかえされてしまう現象を指す(ループは「環」という意味)。くりかえしの計算では、計算が1行目から始まって、いったん最終行の一つ手前までいくと、ふたたび1行目に戻る。もちろん、帰納法はくりかえし作業であり、1行目に戻ること自体は問題ない。だが、やがて、どこかで計算を終えて、最終行の命令――すなわちEND――に到達しないとまずい。

 万が一、「永遠にくりかえし続ける」ことになったら、パソコンは、あなたに応答することすらできない。無限ループの計算に手一杯で、あなたがキーボードやマウスから命令を伝えても、その命令を処理することができなくなってしまう。

 つまり、無限ループにハマったパソコンは、必死に計算を続けていて、パソコンは計算の負荷のせいで過熱しているのだが、あなたに反応しないため、まるで凍った(フリーズした)ように見えるわけなのだ。熱いのに凍ってしまう。なんとも皮肉な話である。