Re: assert() and precondition and invariant
河野真治 @ 琉球大学情報工学です。
In article <YAS.04Sep10200724@kirk.is.tsukuba.ac.jp>, yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes
> 検証と2重チェックか。違いがよくわかりません。
> コンパイル時だと検証で、実行時だとチェックですか。
あらゆる可能な実行の可能性に対してチェックするのが検証です。
validity とか satisfiablity とか言う奴。( だから、その程度の
論理学は知らないと...)
assert は、特定の実行に対するチェックなので検証ではない。
もっとも、世の中の人はシミュレーションとかを検証とかいう
人もいるんですけどね。
コンパイル時の型チェックなどは、可能な実行状態に作用されない
ので、検証と同等になります。
> この時点であいまいだけど、たとえば、1秒としましょう。
> ボタンを押すと、1秒以内に何らかの反応がある
「反応がある」っていうのを定義して、それに対してチェック
するみたいな感じ。
例えば、反応があったら特定の変数をセットするような感じ
にして、
[] (ボタンが押される -> <> 反応変数がセット)
常に いつか
みたいなのを検証します。あらゆるボタンの押す順序に対して。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735