Re: assert() and precondition and invariant
久野です。
yas@is.tsukuba.ac.jpさん:
> たのですが、precondition とか invariant という言葉が一瞬通じ
> ませんでした。
なるほど…確かにそういうことは習わないかもorz
> まあ、precondition とか invariant はわからなくてもassert()
それは…使えはするだろうけど効果半減じゃないすかね? ^_^;
> は使えます。大学のカリキュラムのどこかで教えているかというと、
教えていないかも知れない。Hoare Logicとか私は結局ゼミとかで
始めて接したような気がする。
> どっかでは教えてるんだろうけど、assert() ととは結び付いてい
> ないのでしょう。C言語でそういうのを使ってプログラムの検証す
> るのは難しいから。
assertは「検証」じゃないんですよ。抽象データ型なりをCで実現す
るときに維持すべき条件も抽象データ型の上で考えて、それをCに翻訳
したものをCの条件式として書くんじゃないかな。2重チェックという感
じですかね。
> プログラムの検証も、今の技術だとトートロジーっぽくなっちゃう
> ですよね。検証をパスしたものを正しいと定義しているわけだし。
…そうじゃないと思うけどなあ。 久野
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