2
私はJMLの質問があります。 array_の要素に関するJMLはnullではありませんか?
protected /*@ non_null */ Object[] array_;
として、それを宣言する
/*@ invariant array_ != null; */
との違いは何ですか?それぞれの場合、どのような財産がありますか?
ありがとうございます。
私はJMLの質問があります。 array_の要素に関するJMLはnullではありませんか?
protected /*@ non_null */ Object[] array_;
として、それを宣言する
/*@ invariant array_ != null; */
との違いは何ですか?それぞれの場合、どのような財産がありますか?
ありがとうございます。
array_の要素については?それぞれの場合、どのような財産がありますか?
要素については何も言及されていません。保証されているのは、array_
の参照がnullでないことだけです。
注
Object[] array = null;
間、例えば差
Object[] array_ = { null };
又は
Object[] array_ = { };
後者の二つは許されるであろうしながら最初の行は、不変量に違反する、などarray_
は、実際の配列を指しています(ただし、この配列はcontヌル要素、または全く要素がない場合もあります)。
もう1つの違いは、あなたがnon_null
プラグマを使用する場合array_ != null
は、プログラム全体のすべての制御ポイントで保持しなければならないがinvariant array_ != null;
アプローチでは、array_ != null
のみ、各メソッドの後の前に保持しなければならないということです。
ありがとうございます! – Tronic
Hey aioobe、たぶんあなたは、ESC警告がここに届くのはなぜですか?// @確実に\ old(x_)!= 0 ==> \ result == array_ [first_];エラーは:ポストコンディションが確立されていない可能性がある(投稿) – Tronic
そして実装は何ですか? – aioobe