概要
共通言語インフラストラクチャ(CLI)の視覚的な概要CLI仕様では、とりわけ以下の5つの側面について説明している。
- 共通型システム(CTS)
- CTS準拠のプログラミング言語すべてに共通する、データ型と演算のセット。
- メタデータ
- プログラム構造に関する情報は言語に依存しないため、言語やツール間で参照することができ、開発者が使用していない言語で書かれたコードでも簡単に扱うことができます。
- 共通言語仕様(CLS)
- CLSはCTSのサブセットであり、サポートされている言語で開発されたコンポーネントが遵守しなければならない規則です。
- これらは、コンシューマー(CLS準拠のコンポーネントにプログラムでアクセスする開発者)、フレームワーク(言語コンパイラを使用してCLS準拠のライブラリを作成する開発者)、およびエクステンダー(言語コンパイラやコードパーサーなど、CLS準拠のコンポーネントを作成するツールを作成する開発者)に適用されます。
- 仮想実行システム(VES)
- VESは、メタデータを使用して実行時に個別に生成されたコードを組み合わせることで、CLI互換プログラムをロードおよび実行します。
- 互換性のあるすべての言語は、プラットフォームのハードウェアから抽象化された中間言語である共通中間言語(CIL)にコンパイルされます。コードが実行されると、プラットフォーム固有のVESが、特定のハードウェアとオペレーティングシステムに応じてCILを機械語にコンパイルします。
- Microsoftが最初に開発したCLI標準では、VESは共通言語ランタイム(CLR)によって実装されています。
- スタンダードライブラリ
- ファイルの読み書きなど、多くの共通機能を提供するライブラリ群。その中核となるのは基本クラスライブラリ(BCL)である。
標準化とライセンス供与
2000年8月、マイクロソフト、ヒューレット・パッカード、インテルなどがCLIの標準化に取り組みました。2001年12月にはECMAによって承認され、 2003年4月にはISO / IECによる標準化が行われました。
マイクロソフトとそのパートナーはCLIの特許を保有しています。EcmaとISO/IECは、実装に不可欠なすべての特許を「合理的かつ非差別的な(RAND)条件」で利用可能にすることを要求しています。RANDライセンスではロイヤリティの支払いが求められるのが一般的であり、これはMonoにとって懸念材料となる可能性があります。2013年1月現在 マイクロソフトもそのパートナーも、RAND条件の対象となるCLI実装に不可欠な特許を特定していません。
2009年7月現在 [ 5 ] Microsoft は、Microsoft Community Promiseが適用される仕様のリストにC#と CLI を追加しました。 [ 6 ]これにより、Microsoft からの特許訴訟を恐れることなく、誰でも標準の指定されたエディションを安全に実装できます。CLI 標準を実装するには、標準でサポートされ定義されているプロファイルのいずれかに準拠する必要があります。その最小要件はカーネル プロファイルです。カーネル プロファイルは、デフォルトの .NET インストールのよく知られたコア ライブラリと比較すると、サポートする型のセットが非常に小さいものです。ただし、CLI の準拠条項では、クラスに新しいメソッドと型を追加したり、新しい名前空間から派生したりすることで、サポートされているプロファイルを拡張できます。ただし、インターフェイスに新しいメンバーを追加することはできません。これは、準拠するプロファイルの実装が、そのプロファイルで実行されることを意図したプログラムの動作を変更しない限り、CLI の機能を使用および拡張できることを意味します。
2012年にEcmaとISO/IECはCLI規格の新版を公表した。[ 1 ] [ 2 ]
注記
- 1 2 "ISO/IEC 23271:2012 - 情報技術 - 共通言語インフラストラクチャ (CLI)" . ISO . 2023年7月2日にオリジナルからアーカイブされました。
- 1 2 "ECMA-335" . ECMA International . 2012年6月。2023年10月16日にオリジナルからアーカイブされました。
- ↑ 「HTML5とJavaScriptを使用した高度なWindowsストアアプリ開発入門」。Microsoft Press Store。2013年10月15日。2023年3月30日にオリジナルからアーカイブ済み。
- ↑ de Icaza, Miguel (2011年9月15日). 「WinRTの謎を解き明かす」 . 2023年11月30日にオリジナルからアーカイブ済み。
- ↑ Galli, Peter (2009年7月6日). "The Ecma C# and CLI Standards" . Port 25 . 2009年7月9日のオリジナルからアーカイブ済み。 2009年9月26日取得。
- ↑ v-alje (2023年3月16日)。「[ MS-DEVCENTLP ]:Microsoftコミュニティの約束」。Microsoft Learn 。 2023年5月1日取得。
参考文献
- 「標準規格 ECMA-335、共通言語インフラストラクチャ (CLI)」。Ecma International 。 2023年11月1日取得。
- 「ISO/IEC 23271、共通言語インフラストラクチャ」。ISO /IEC 。 2006年9月27日取得。
- 「Ecma C# および共通言語インフラストラクチャ標準」。マイクロソフト社。2009年10月13日取得。
- "Language independence and language-independent components". Microsoft Learn. December 21, 2022. Retrieved May 19, 2023.
External links
- ISO/IEC 23271:2012 Information technology — Common Language Infrastructure (CLI)