しばらく検索しましたが、「述語検査」で簡潔な定義を見つけることができません。いつ述語チェックを適用できますか?ホアレのトリプルとどう違うの? Hoareのトリプルをすべてのコード行に正しく適用すれば、ソフトウェアの正確性を保証できます。 (私が間違っている場合は私を修正してください。)述語検査で同じ特性が得られますか?質問自体が正しくない場合、私はお詫び申し上げます。私は本当に述語検査が何をしているのか分からない。述語チェックとは何ですか?
1
A
答えて
2
述語は、真または偽の結果に等しいロジックステートメントまたは関数です。
手続き型言語と宣言型言語の両方の述語の最も単純な例は、ガード句とアサーションです。
> if (x != null) then ...
> assert x != null
Hoareの事前条件と事後条件は述語の例です。私は、カプセル化されたステートメントの細分性に関して、Hoareに明白なことはないと思っています。単一のステートメント、関数、またはプロセス全体である可能性があります。
不変量は、条件の前の条件である述語の特殊なケースです。
恐らく最も純粋な例はPrologです。ここで、文は述語です。別の例は、Eiffelで使用されているようなdesign-by-contractであり、LISPの空のリストも述語です。
私は、正確性が述語に準拠しているという資格を外して、「ソフトウェアの正確性を保証する」ことに同意することを嫌うだろう。
更新
- Assume in JUnitとBDDに考えるとは、事前条件 述語です。
- Assert in JUnitおよびその中のBDDは、 です。条件付き述語。
関連する問題
- 1. .NETのラムダ式と述語の違いは何ですか?
- 2. 述語#と:内部述語にアクセスする方法は?
- 3. RDFの語彙と述語
- 4. Cでのジェネリックと述語#
- 5. NHibernateは(述語?)
- 6. なぜLINQ.Where(述語).First()は.First(述語)より高速ですか?
- 7. ハスケルではどのようにm-ary述語とn-ary述語をとり、(m + n)-ary述語を構築できますか?
- 8. 一致する述語を検索します。述語の述語?
- 9. Ransack gemは述語名とカスタム述語名を選択します
- 10. Prologで述語名の後にスラッシュの意味は何ですか?
- 11. 式の述語を式の述語から取得するには?
- 12. 式と述語の問題
- 13. 「用語ベクトルアルゴリズム」とは何ですか?
- 14. なぜ汎用アルゴリズムのために述語バージョンと非述語バージョンを区別するのですか?
- 15. 述語キャッシュ
- 16. PHFetchOptions mediaSubtype述語
- 17. 述語ビルダー号
- 18. 述語のルックアップテーブル?
- 19. Neo4jclient ALL述語
- 20. コアデータ - 述語
- 21. vb.net述語ラッパーエラー
- 22. C#述語ビルダー、私は次のコードで述語ビルダーを使用しようとしています
- 23. wcfで述語をシリアライズ
- 24. ias-web.xmlデプロイメント記述子ファイルとは何ですか?
- 25. フェッチ述語としての日付の範囲 - コアデータ間のNSDate述語
- 26. MySQLの結果チェックはオフです...ベストメソッドとは何ですか?
- 27. この述語/ CreateDelegateの使用で何が問題になりますか?
- 28. 述語を使用してNSMutableArrayで何かを検索する方法
- 29. DataViewコンストラクタの述語?
- 30. ウェブサービスタスクフロー記述言語