「契約による設計」の版間の差分

 
(他の1人の利用者による、間の4版が非表示)
19行目: 19行目:
ここに記載する[[プログラミング言語]]はあくまで一例でありすべてではない。
ここに記載する[[プログラミング言語]]はあくまで一例でありすべてではない。


=== [[.NET Framework 4.0]] ===
=== .NET Framework 4.0 ===
[[.NET Framework 4.0]]では、[[コードコントラクト]]([[Code Contracts]])という名前の機能が追加され、[[プログラミング言語]]レベルではなく、[[ランタイム]]レベルで「契約による設計」に対応した。これにより[[.NET Framework]]系のすべての[[プログラミング言語]]が対応することとなった。
[[.NET Framework 4.0]]では、[[コードコントラクト]]([[Code Contracts]])という名前の機能が追加され、[[プログラミング言語]]レベルではなく、[[ランタイム]]レベルで「契約による設計」に対応した。これにより[[.NET Framework]]系のすべての[[プログラミング言語]]が対応することとなった。


また、[[Visual Studio]]用のアドオンも提供されており、契約による設計のキモである[[静的チェック]]や[[ドキュメント]]の自動生成も行いえる。とくに[[静的チェック]]はとても重要な要素であり、これが使えないとただの[[コーディング規約]]程度の話で終わってしまい、契約による設計の魅力の99.9999%が失われる。
また[[Visual Studio]]用のアドオンも提供されており、契約による設計のキモである[[静的チェック]]や[[ドキュメント]]の自動生成も行いえる。とくに[[静的チェック]]はとても重要な要素であり、これが使えないとただの[[コーディング規約]]程度の話で終わってしまい、契約による設計の魅力の99.9999%が失われる。なお[[アドオン]]が使えない[[Visual Studio Express]]ではツール群が使えないので、ただの実行時のエラーチェックと化し、前述のように契約による設計の魅力の99.9999%が失われる。
 
なお[[アドオン]]が使えない[[Visual Studio Express]]ではツール群が使えないので、ただの実行時のエラーチェックと化し、前述のように契約による設計の魅力の99.9999%が失われる。


[[コードコントラクト]]を利用するための[[ライブラリ]]は[[System.Diagnostics.Contracts 名前空間]]にあり、[[事前条件]]、[[事後条件]]、[[不変条件]]などの表すための[[C Sharp/静的クラス|静的クラス]]が用意されている。
[[コードコントラクト]]を利用するための[[ライブラリ]]は[[System.Diagnostics.Contracts 名前空間]]にあり、[[事前条件]]、[[事後条件]]、[[不変条件]]などの表すための[[C Sharp/静的クラス|静的クラス]]が用意されている。
30行目: 28行目:
* http://msdn.microsoft.com/en-us/devlabs/dd491992
* http://msdn.microsoft.com/en-us/devlabs/dd491992


=== [[D言語]] ===
=== D言語 ===
[[D言語]]の契約による設計機能は初の正式版リリースにあわせた目玉機能として大々的に宣伝されていた。
しかし、プロジェクト自体のゴタゴタで正式リリースが遅れに遅れたことで[[.NET Framework 4.0]]に先を越されるという事態になった。
残念賞である。


=== [[Eiffel]] ===
=== Sather ===
[[Eiffel]]は契約による設計を提唱・サポートした一番最初の[[プログラミング言語]]だそうだ。まったく知らない。
[[Sather]][[Eiffel]]から派生した[[サブセット]]であり、その後に独自の進化を遂げてものらしい。
まったく知らない。


=== [[Sather]] ===
=== Eiffel ===
[[Eiffel]]から派生した[[サブセット]]で独自の進化を遂げてものらしい。
[[Eiffel]]は契約による設計を提唱およびサポートした一番最初の[[プログラミング言語]]だそうだ。
まったく知らない。
まったく知らない。
Eiffelの開発元であるEiffel Software(旧名:Interactive Software Engineering、略称:ISE)とマイクロソフト、オーストラリアのモナッシュ大学のグループが共同で[[共通言語ランタイム]]で動く[[Eiffel Sharp|Eiffel#]]なるものを出している<ref>[http://msdn.microsoft.com/ja-jp/library/ms973898.aspx</ref>。Eiffelの一部なので別途パッケージがあるわけではなく、[[Eiffel]]を入れるとオマケで付いてくる感じである。


== 関連項目 ==
== 関連項目 ==
53行目: 57行目:
<references/>
<references/>


== 外部リンク ==
[[category: プログラミング]]
 
{{stub}}