差分

ナビゲーションに移動 検索に移動

静的解析ツール

520 バイト追加, 2014年8月7日 (木) 08:28
なんとも夢のような技術であるが、[[契約による設計]]に対応している[[プログラミング言語]]で[[ソースコード]]がきちんと記述されていれば凄い高い精度を叩き出すが、その他大勢の一般的な[[プログラミング言語]]では期待はずれな残念な結果しか得られないことが多い。
 
==例==
静的解析が[[コンパイラ]]に標準搭載されている[[D言語]]の記述例。
関数square_rootを呼び出してる箇所で引数xが0未満になる可能性のあるところはすべて[[コンパイルエラー]]となる。
<source lang="d">
long square_root(long x)
in
{//事前条件
assert(0 <= x);
}
out (result)
{//事後条件
assert((result * result) <= x && x < (result+1) * (result+1));
}
body
{//関数本体
return cast(long)std.math.sqrt(cast(real)x);
}
</source>
==関連項目==
匿名利用者

案内メニュー