なお、障害には「ビザンチン障害」というのがあって、ありとあらゆるケースで正しい反応を示すが、唯一あなたが本当に正しく動作してほしい場合にだけ、誤った結果を出す、という障害がありえます。ですので、ビザンチン障害が全く無いことを証明しなくてはいけません。 # 詳細は Andrew S. Tanenbaum 先生の本を読んでくれ。 .
「完璧ではないもの(バグがありえるもの)」の上で実行された結果を使っても、証明にはならないのですよ。それは CPU であっても同じです。チューリングマシンはそもそも CPU というハードウェアとその上で動くソフトウェアをワンセットにしてモデル化したものですから。
ノイマンじゃないの (スコア:0)
結局非ノイマン型はほとんど日の目を見てないし、他の人たちは彼の考えたフレームワークの上で動いているに過ぎない。
基礎論 (スコア:1)
計算機科学の基礎を築いたという意味ではチューリング [wikipedia.org]もすてがたい。
Re: (スコア:4, おもしろおかしい)
基礎も築いたが
「デバッグは無限地獄である(その変更でバグが取れたと言う保証がなされることはありえない)」
という証明もしてくれたすばらしい人。
唯一の問題は、この証明が言っている事を「ちゃんと理解している人」が日本にほとんどいない、ということぐらいだろう。
# 「バグがなくなったという証明を持ってこいっ」と無茶を言う顧客の割合が、日本だけ突出しているのは
# どういうことなのか…
fjの教祖様
Re: (スコア:2, 参考になる)
チューリングの停止性問題は、「(任意の)プログラムにバグがないか判定できるプログラム」は存在しないといっているだけで、「バグのないプログラム」が存在しないとは言ってませんよ。
お客に「プログラムじゃなくて人間が判定して持ってこい」と言われたらどうします?
#「人間はチューリングマシンと同等か」という哲学的問題に発展するが。
Re: (スコア:2, 興味深い)
ほら~やっぱりわかっていない人がいる。
それがどうしたのかね?
バグの無いプログラムであることが判明しないなら、同じことじゃないか。
そして、あるプログラムx を別のプログラムp0で判定して「xにバグは無い」と出てきた場合、『p0はあてになるのか?』という問題が発生する。
p0をp1で判定すると『p1はあてになるのか?』、p1をp2で判定すると『p2はあてになるのか』…
p(n)をp(n)で判定すると『p(n)はあてになるのか?』という問題に帰着して
fjの教祖様
反例 (スコア:0)
「バグのないプログラムは無い」の反例知ってますよ。
今確認しましたが、VisualStudio2008のC#のプログラムでバグがないものが書けました。
え、どんな仕様なんだ、ですか?
「VS2008でコンパイルできるC#のプログラムを作れ」って仕様ですが、何か?
# 物理学で宇宙の外を語ることはありません
Re:反例 (スコア:1)
典型的で古典的な勘違いですね。
「あなたのマシンが壊れていて、たまたま VS2008でコンパイルが通ってしまっただけである」のではない証明をしてください。壊れたマシンの上で、たまたまエラーが見当たらないからと言って、障害が無いとはいえない、という点は理解できていると思います。
なお、障害には「ビザンチン障害」というのがあって、ありとあらゆるケースで正しい反応を示すが、唯一あなたが本当に正しく動作してほしい場合にだけ、誤った結果を出す、という障害がありえます。ですので、ビザンチン障害が全く無いことを証明しなくてはいけません。
# 詳細は Andrew S. Tanenbaum 先生の本を読んでくれ。
.
「完璧ではないもの(バグがありえるもの)」の上で実行された結果を使っても、証明にはならないのですよ。それは CPU であっても同じです。チューリングマシンはそもそも CPU というハードウェアとその上で動くソフトウェアをワンセットにしてモデル化したものですから。
fjの教祖様