共通型システムおよび共通言語仕様との関係

共通型システム (CTS: Common Type System) は、共通言語ランタイムが型を宣言、使用、および管理するときに準拠する規則を規定したモデルです。CTS は、複数言語の統合、タイプ セーフ、および高いパフォーマンスでのコードの実行を可能にするフレームワークを確立します。このモデルは、クラス ライブラリをビルドするための素材となります。

共通言語仕様 (CLS: Common Language Specification) は、異なるプログラミング言語で記述された型の相互運用性を確保するための、プログラムによって検証可能な一連の規則を定義しています。CLS に対応することは、言語間の相互運用性を保証するうえで優れた手段です。マネージ クラス ライブラリのデザイナは、CLS を利用することによって、作成した API を幅広いプログラミング言語から確実に呼び出せるようにすることができます。CLS は、優れたライブラリ デザインを推奨するものであり、強制するものではありません。詳細については、「CLS 準拠コードの記述」を参照してください。

クラス ライブラリに含める機能を決定するときには、CLS に準じた次の 2 つの原則を考慮する必要があります。

  1. その機能によって、マネージ空間に適した API 型の開発が簡略化されるかどうか。

    CLS の規定は幅広く、これに従って、あらゆるマネージ ライブラリを作成できます。しかし、同じ作業を実行するための方法が複数あると、クラス ライブラリのユーザーは適切なデザインや使用方法がわからず、混乱する可能性があります。たとえば、安全な構成要素と安全ではない構成要素の両方を提供した場合、どちらを使用するかをユーザーが決定する必要が生じます。そのため、CLS では、適切な使用方法を促すように、タイプ セーフな (安全な) 構成要素だけを提供するように規定しています。

  2. その機能をコンパイラによって公開するのが困難かどうか。

    すべてのプログラミング言語では、ランタイムおよび CTS に対応するために、ある程度の変更が必要になります。しかし、開発者は、言語を CLS 準拠にするために、あまり大量の追加作業は行う必要はありませんし、逆に行わないようにする必要があります。これは、CLS の目標が、できる限りサイズを小さく抑えながら、豊富なデータ型と機能を提供することにあるためです。

参照

共通型システム | クラス ライブラリ | 共通言語仕様の概要 | CLS 準拠コードの記述