2

「状況固有」とは、現在のデータベース設定、一部のOSのバージョンなど、アクセスできるデータを使用することを意味します.

コンパイラがアプリで現在使用しているデータベースをチェックし、「データベース内の現在のデータは、あなたが書いたばかりのステートメントをトリガーすることはありません」または「ご存知のように、これが null 値になると、本当に困惑することになります'... しばらく時間がかかる可能性があります。あらゆる可能性」。

これは実現可能/価値があると思いますか? これはどこかに存在しますか?

あらゆる可能性を見つけ出して、自動的に例外処理などを考え出す量子コンパイラがあれば素晴らしいでしょう。

4

6 に答える 6

3

ジェームズが推測しているように、これはホールティング問題と同型であり、したがっておそらく不可能です。

実際、この問題は、Perl のコンパイルに単純化することができます (Perl には状況依存の知識が必要なため)。Perlが実際にコンパイルできないというシンプルで洗練された証明が存在します。

したがって、少なくとも 1 つの反例 (Perl) があり、静的コンパイラがプログラムの正しさをチェックできず、仮説と矛盾しています。 QED

于 2009-10-05T08:50:45.273 に答える
0

この問題を完全に解決することはできないかもしれませんが、静的解析を可能な限り賢くしようとする試みがいくつかあります。そのうちの 1 つである Wesner Moise の NStatic では、期待値が非常に高く設定されています (これが、ツールが出荷されておらず、すぐには出荷されないようです:))

http://wesnerm.blogs.com/net_undocumented/nstatic/

于 2009-10-05T08:21:14.167 に答える
0

これは、私が知っているどこにも存在しません (まだ)。しかし、私は人間味のあるエラーメッセージのアイデアが本当に好きです:

You know, if this becomes a null value you are really going to be screwed.

これが実現可能かどうかについては、いずれ何かが起こる可能性があるので、実際に誰が知っているかはわかりません (そして、未来を予測する私は誰でしょうか)。

価値はありますか: はい! それは非常に時間の節約になるでしょうし、あなたが言ったように、例外処理を考え出すことで、これまでで最も便利なツールの 1 つになるでしょう。これまで!!!

于 2009-10-04T05:13:04.713 に答える