差分
ナビゲーションに移動
検索に移動
事前条件
,'''事前条件'''(じぜんじょうけん)とは、「[[契約による設計]]」における条件のひとつで、[[サブルーチン]]の呼び出し時に、これを「呼ぶ側」が保証すべき性質(条件)のことである。
== 概要 ==
[[静的型付け言語]]では[[サブルーチン]]の[[引数]]に[[データ型]]を指定することで、呼び出し側において想定外の[[データ型]]が指定されれば[[コンパイルエラー]]となる。
これに加え、[[契約による設計]]における事前条件は、その[[引数]]の[[データ]]の中身まで厳密に規定しておくというものである。たとえば[[境界値チェック]]や[[nullチェック]]などがこれにあたる。なお[[オブジェクト指向プログラミング言語]]であれば[[引数]]のみならず[[フィールド変数]]などもチェック対象となる。
これらの[[データ]]のチェックをおこなう処理を、[[契約による設計]]に対応した[[プログラミング言語]]([[Eiffel]]や[[D言語]]など)の構文や、専用[[フレームワーク]]([[.NET]]の[[コードコントラクト]]など)を使用して[[ソースコード]]を記述しておくことで、[[サブルーチン]]の「呼び出し側」において範囲外となるパターンが存在しないかを[[静的解析ツール]]などと呼ばれる専用ツールをもちいて事前にチェックすることができる。
たとえば[[静的解析]]と[[コンパイラ]]が一体化した[[プログラミング言語]]であれば、本来はいつ発生するかわからない[[実行時エラー]]となりえる部分が、[[プログラム]]を動かす前に[[コンパイルエラー]]となるため、[[プログラム]]の品質を著しく高めることができる。
== 関連項目 ==
* [[契約による設計]]
== 参考文献 ==
<references/>
== 外部リンク ==
{{stub}}
== 概要 ==
[[静的型付け言語]]では[[サブルーチン]]の[[引数]]に[[データ型]]を指定することで、呼び出し側において想定外の[[データ型]]が指定されれば[[コンパイルエラー]]となる。
これに加え、[[契約による設計]]における事前条件は、その[[引数]]の[[データ]]の中身まで厳密に規定しておくというものである。たとえば[[境界値チェック]]や[[nullチェック]]などがこれにあたる。なお[[オブジェクト指向プログラミング言語]]であれば[[引数]]のみならず[[フィールド変数]]などもチェック対象となる。
これらの[[データ]]のチェックをおこなう処理を、[[契約による設計]]に対応した[[プログラミング言語]]([[Eiffel]]や[[D言語]]など)の構文や、専用[[フレームワーク]]([[.NET]]の[[コードコントラクト]]など)を使用して[[ソースコード]]を記述しておくことで、[[サブルーチン]]の「呼び出し側」において範囲外となるパターンが存在しないかを[[静的解析ツール]]などと呼ばれる専用ツールをもちいて事前にチェックすることができる。
たとえば[[静的解析]]と[[コンパイラ]]が一体化した[[プログラミング言語]]であれば、本来はいつ発生するかわからない[[実行時エラー]]となりえる部分が、[[プログラム]]を動かす前に[[コンパイルエラー]]となるため、[[プログラム]]の品質を著しく高めることができる。
== 関連項目 ==
* [[契約による設計]]
== 参考文献 ==
<references/>
== 外部リンク ==
{{stub}}