主にC# な話題です
昆虫というオチではなくて、プログラム上のバグの話です。僕は、いつかきっと
世の中からバグが無くなる日
が来ると思っています。
僕の考える「バグが無い状態」とは、次の3つのうちのいずれかです。
1.どんな人が書いたどんなプログラムでも、コンパイラが正しく解析して、やりたい処理が可能になる状態2.バグを作りこまない優秀な言語とプログラマだけがプログラミングする状態3.人類がいなくなった状態
恐らく3が最も最初に実現されるだろうと予想しています。
投稿日時 : 2009年6月12日 13:52
1は、バグをコンパイルエラーにしてくれる状態じゃないかなー。
バグがない事が唯一のバグになる日。
たとえ人類が滅びようとも、バグは不滅です!
> 1.どんな人が書いたどんなプログラムでも、コンパイラが正しく解析して、やりたい処理が可能になる状態 たぶん、これが実現するころには、誰もソースコードなんてものは書いてなくて、自然言語を理解して動くか、脳波を理解して動くか、そんな感じなんだろうなぁ、と。 > 2.バグを作りこまない優秀な言語とプログラマだけがプログラミングする状態 バグを作りこまない優秀なプログラマになるのは、現在のスキルアップの延長で可能だと思えない。 何か飛躍がある気がする。 > 3.人類がいなくなった状態 しかし人類が残したコンピュータは動いていて、そのプログラムにはバグがあって、それがあるがためにコンピュータが生み出すプログラムもバグだらけに… バグがない完璧な自律思考コンピュータを作ったら、完璧な思考ロジックの果てに「人類滅ぶべし」という結論を下して最終戦争に突入し、人間の勇者が敢えてバグを注入することで終戦を迎えた…なんて陳腐なストーリーを想像してみたり。 自律思考コンピュータに「お前にバグがないことを証明せよ」って言ったら無限ループに突入してみたり。 「あるわけねぇだろボケ」って考えもせずに一蹴されてみたり。
マジレスすると「完全バグ探しプログラム」は作れないことが数学的に証明されてんのよねー。 んだから「世の中からバグが無くなった日」が来たことを確かめようがないのです。
人間って間違いをおかしたまま進んでいって、 そのうち間違いだったことを利用して、 飛躍してしまいそうだと思いません? だから、バグはバグのまま置いておくのもいいかと。 ま、その場合、そのバグは果たしてバグなのか、という 哲学的な問いかけが生まれてしまいますが。。
> マジレスすると「完全バグ探しプログラム」は作れないことが数学的に証明されてんのよねー。 > んだから「世の中からバグが無くなった日」が来たことを確かめようがないのです。 あらら。 επιστημηさんともあろうお方が初歩的なミスを。 「完全バグ探しプログラム」は対象のプログラムと「同じ処理系」では作れないことが証明されています。 ですが。 > んだから「世の中からバグが無くなった日」が来たことを確かめようがないのです。 バグがないことを同じ処理系のプログラムで探さなければいけない理由もありませんし、そもそも「プログラムで判定する必要はない」です。 普通に人間がやればよいのですよ。 つまり、 > んだから「世の中からバグが無くなった日」が来たことを確かめようがないのです。 επιστημηさんが、この世界の全てのプログラムから虫取りをして、「世の中からバグが無くなった」ことを「人間が」確認すればよいのですよ。 がんばってください。 応援しています。
あ、ちなみに。 量子コンピューターなら、あるいは。 完全バグ取りプログラムが可能であるということが証明された、という話は聞きませんが、アルゴリズムは探している人はいます。
> 同じ処理系のプログラムで 何で書こうがチューリングマシンに行きついちゃうだからー あ、チューリングマシンに行きつかない計算機使うのか... >「世の中からバグが無くなった」ことを「人間が」確認すればよいのですよ。 うはは、それって「悪魔の証明」だわ。
さらに追記。 「バグのないプログラム」を生成するプログラムが作成不可能である、という証明はまだありませんよ。 それと、あらゆるプログラムについてバグがないことを証明するプログラムは無理ですが、問題を限定すれば可能ですよ。
今でもすでにバグは根絶できます。 それを仕様とよぶと! (ネタすれ、さーせん
>(ネタすれ、さーせん ×ネタすれ ○ネタれす
> それを仕様とよぶと! あ、「完全バグ抜きアルゴリズム」がこんなとこに落ちてた。 # 青い鳥はみんなの心の中にいたのです。
> あ、「完全バグ抜きアルゴリズム」がこんなとこに落ちてた。 ほらやっぱり! 人間ならバグを完全に取れるんですよ!
アキラ さん >1は、バグをコンパイルエラーにしてくれる状態じゃないかなー。 そうですね。 ある程度は、バグをコンパイルする時点で見つけられることで解決できていると思います。 でも、どんな人とは、あんな人やこんな人も・・・ですw ------------------------------ n さん >バグがない事が唯一のバグになる日。 バグがないと言っている行為がバグということでしょうか? 哲学的な感じがします。 ------------------------------ みきぬ さん >たとえ人類が滅びようとも、バグは不滅です! バグだと言う人がいなければ、それはバグではないのです。 そういう動きをする何かなのです。 ------------------------------ aetos さん >バグがない完璧な自律思考コンピュータを作ったら、完璧な思考ロジックの果てに「人類滅ぶべし」という結論を下して最終戦争に突入し、人間の勇者が敢えてバグを注入することで終戦を迎えた…なんて陳腐なストーリーを想像してみたり。 ハリウッドで作れば、それなりに面白いものができそうです。 >自律思考コンピュータに「お前にバグがないことを証明せよ」って言ったら無限ループに突入してみたり。 ありそうだなー ------------------------------ T.Hirase さん >だから、バグはバグのまま置いておくのもいいかと。 >ま、その場合、そのバグは果たしてバグなのか、という >哲学的な問いかけが生まれてしまいますが。。 このネタ(実際ネタのつもりで書いた)が、哲学的っぽい気もするのでアリだと思います! ------------------------------ 倉田 有大 さん >それを仕様とよぶと! 逆に、本当に仕様でも、声の大きい人の理不尽な言葉でバグにされてしまうこともあります。 ------------------------------ neko さん >×ネタすれ >○ネタれす ありがとうございます。 まあ、ネタすれであることには違いないのですが。 ------------------------------ επιστημη さん プログラミング言語によるソフトウェアの開発ではない手法も出てくるかもしれません。 曖昧な部分は、コンピューター自身が補間するか、不明なら確認するなどによってソフトウェアが開発されるかも知れません。 ・・・でも、そのソフトウェアにバグがいないことは・・・やはり照明できないのか orz ------------------------------ れい さん >普通に人間がやればよいのですよ。 担当した人間が、バグが無かったと言っちゃえば済んでしまう気もしますw 人間が一切関与しなければバグは生まれないけれど、仕様設計レベルでもバグは生まれますよね。 結局、人間がソフトウェアを要求することと、人間が完全ではないという2点で、人類が滅びないとバグは滅びないのかなぁ、と思った訳です。
Powered by: Copyright © R・田中一郎