Hello, VDM++
ひらめいた!
前回の2つのサンプルに続き、動作はできるけれど事後条件に合わないサンプルを提示するのです。
-- はじめてのVDM(まちがった陽仕様版) class はじめてのVDM operations public hello: () ==> seq of char hello() == return "こんにちわ, VDM++" -- まちがった動作を記述 post RESULT = "Hello, VDM++"; -- 事後条件 end はじめてのVDM
文法的には正しいし、実行もできます。
しかし、事後条件の検証を有効にすれば、事後条件と実際の戻り値が異なるので、
「契約が成り立っていない」ことが検出できます。