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

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

 さて、われわれユーザーのストレスを軽減するために、心優しきプログラマーさんが妙案を思いついた。

【心優しきプログラマーさんの妙案】パソコンに搭載する、あらゆるプログラムについて、事前に「無限ループに陥るか否か」を検査したらどうか?

 ありがとう、心優しきプログラマーさん。そうしてくだされば、われわれのパソコンが無限ループに「乗っ取られる」心配はなくなる。あらかじめ心配の種を摘み取ってしまえばいいのですな。

 もちろん、いちいち人間が検査していては日が暮れてしまうから、検査用のプログラムを書く必要がある。そのプログラムは、心優しきプログラマーさんが書いてくれるわけだ。

 ところがところが! いざ、仕事を始めた心優しきプログラマーさんは、すぐに顔が曇ってしまう。がんばって検査プログラムを書いても、どうしてもうまくいかない。失敗に次ぐ失敗。問題点を改善して、新たな検査プログラムを書いても、さらなる問題が生じ、まるでイタチごっこである。

 心優しきプログラマーさんは、とうとう音(ね)を上げて、鬼の先輩プログラマーさんに相談した。すると、先輩は、一言、

「ゲーデルとかチューリングとか知ってるかぁ?」

とだけ呟いて、すぐに自分の仕事に戻ってしまった。

 うん? ナニソレ? 経済学部出身で、会社に入ってからプログラマーになった、心優しきプログラマーさんは、初めて耳にする名前だ。情報科学科出身の鬼の先輩プログラマーさんは、おそらく学校でふつうに教わったんだろう。きっと大昔のプログラマーの名前なんだろうな。

 そして、本屋さんに行って、心優しきプログラマーさんは、たまたま平積みになっていた『不完全性定理とはなにか ゲーデルとチューリングの考えたこと』という本を手に取った。表紙にゲーデルとチューリングの名前が出ていたからだ。

 パラパラとページをめくっていた心優しきプログラマーさんの目は、本の中程で出会った「無限ループに陥るか否かを検査する万能プログラムは存在しない」という文句に釘付けになってしまった。