「事前条件」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
|||
| (他の1人の利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
'''事前条件'''(じぜんじょうけん)とは、「[[契約による設計]]」における条件のひとつで、[[サブルーチン]] | '''事前条件'''(じぜんじょうけん)とは、「[[契約による設計]]」における条件のひとつで、[[サブルーチン]]の呼び出し時に、これを「呼び出す側」が保証すべき性質(条件)のことである。 | ||
== 概要 == | == 概要 == | ||
| 13行目: | 13行目: | ||
* [[契約による設計]] | * [[契約による設計]] | ||
[[category: プログラミング]] | |||
2024年9月26日 (木) 05:49時点における最新版
事前条件(じぜんじょうけん)とは、「契約による設計」における条件のひとつで、サブルーチンの呼び出し時に、これを「呼び出す側」が保証すべき性質(条件)のことである。
概要[編集 | ソースを編集]
静的型付け言語ではサブルーチンの引数にデータ型を指定することで、呼び出し側において想定外のデータ型が指定されればコンパイルエラーとなる。
これに加え、契約による設計における事前条件は、その引数のデータの中身まで厳密に規定しておくというものである。たとえば境界値チェックやnullチェックなどがこれにあたる。なおオブジェクト指向プログラミング言語であれば引数のみならずフィールド変数などもチェック対象となる。
これらのデータのチェックをおこなう処理を、契約による設計に対応したプログラミング言語(EiffelやD言語など)の構文や、専用フレームワーク(.NETのコードコントラクトなど)を使用してソースコードを記述しておくことで、サブルーチンの「呼び出し側」において範囲外となるパターンが存在しないかを静的解析ツールなどと呼ばれる専用ツールをもちいて事前にチェックすることができる。
たとえば静的解析とコンパイラが一体化したプログラミング言語であれば、本来はいつ発生するかわからない実行時エラーとなりえる部分が、プログラムを動かす前にコンパイルエラーとなるため、プログラムの品質を著しく高めることができる。