| ISO/IEC 23271:2012(J) の翻訳 | |
| 略語 | コマンドライン |
|---|---|
| 状態 | 公開済み |
| 開始年 | 2000年 |
| 初版 | 2001 年(Ecma)、2003 年(ISO/IEC) |
| 最新バージョン | 第6版 2012年6月 |
| 組織 | 開発元: Microsoft、Hewlett-Packard、Intel他 標準化元: Ecma、ISO / IEC |
| 委員会 | ISO/IEC JTC 1/SC 22 |
| ドメイン | 共通言語(クロスプラットフォーム) |
| ライセンス | ランド |
| Webサイト | ECMA-335、 ISO/IEC 23271 |
共通言語基盤( CLI ) は、もともとMicrosoftによって開発され、ISO / IEC ( ISO/IEC 23271 ) およびEcma International ( ECMA 335 ) [1] [2]によって標準化されたオープン仕様および技術標準であり、実行可能コードと、特定のアーキテクチャ用に書き直すことなく、さまざまなコンピューター プラットフォームで複数の高水準言語を使用できるようにするランタイム環境を記述します。これは、それがプラットフォームに依存しないことを意味します。.NET Framework、.NET、およびMono は、CLI の実装です。メタデータ形式は、 Windows ランタイムによって公開されるAPI定義を指定するためにも使用されます。[3] [4]
概要

CLI 仕様では、とりわけ次の 5 つの側面について説明しています。
- 共通型システム(CTS)
- すべての CTS 準拠プログラミング言語で共有されるデータ型と操作のセット。
- メタデータ
- プログラム構造に関する情報は言語に依存しないため、言語やツール間で参照でき、開発者が使用していない言語で記述されたコードを簡単に操作できます。
- 共通言語仕様 (CLS)
- CTS のサブセットである CLS は、サポートされている言語で開発されたコンポーネントが従う必要があるルールです。
- これらは、コンシューマー (CLS 準拠のコンポーネントにプログラムでアクセスする開発者)、フレームワーク (言語コンパイラを使用して CLS 準拠のライブラリを作成する開発者)、およびエクステンダー (CLS 準拠のコンポーネントを作成する言語コンパイラやコード パーサーなどのツールを作成する開発者) に適用されます。
- 仮想実行システム(VES)
- VES は、メタデータを使用して実行時に個別に生成されたコード部分を結合し、CLI 互換プログラムをロードして実行します。
- 互換性のある言語はすべて、プラットフォーム ハードウェアから抽象化された中間言語である共通中間言語(CIL)にコンパイルされます。コードが実行されると、プラットフォーム固有の VES が、特定のハードウェアとオペレーティング システムに応じて CIL をマシン言語にコンパイルします。
- Microsoft によって最初に開発された CLI 標準では、VES は共通言語ランタイム(CLR) によって実装されます。
- 標準ライブラリ
- ファイルの読み取りや書き込みなど、多くの一般的な機能を提供するライブラリのセット。その中核となるのは、基本クラス ライブラリ(BCL) です。
標準化とライセンス
2000 年 8 月、Microsoft、Hewlett-Packard、Intelなどが CLI の標準化に取り組みました。2001 年 12 月までに CLI はEcmaによって承認され、 2003 年 4 月にはISO / IECによる標準化が続きました。
Microsoft とそのパートナーは CLI の特許を保有しています。Ecma と ISO/IEC は、実装に不可欠なすべての特許を「合理的かつ非差別的な (RAND) 条件」で利用できるようにすることを要求しています。RAND ライセンスでは、ある程度のロイヤリティの支払いが必要になるのが一般的ですが、これはMonoの懸念材料になる可能性があります。2013 年 1 月現在[アップデート]、Microsoft もそのパートナーも、RAND 条件の対象となる CLI 実装に不可欠な特許を特定していません。[引用が必要]
2009 年 7 月現在[アップデート]、[5] Microsoft はC#と CLI をMicrosoft Community Promiseが適用される仕様のリストに追加しました。 [6]そのため、誰もが Microsoft からの特許訴訟を恐れることなく、標準の指定されたエディションを安全に実装できます。CLI 標準を実装するには、標準のサポートされ定義されているプロファイルの 1 つに準拠する必要があります。その最低限の要件はカーネル プロファイルです。カーネル プロファイルは、既定の .NET インストールのよく知られたコア ライブラリと比較すると、サポートする型のセットは非常に少ないです。ただし、CLI の準拠条項により、クラスに新しいメソッドと型を追加したり、新しい名前空間から派生したりすることで、サポートされているプロファイルを拡張できます。ただし、インターフェイスに新しいメンバーを追加することはできません。つまり、準拠プロファイルの実装によって、そのプロファイルで実行することを意図したプログラムの動作が変更されない限り、CLI の機能を使用および拡張できますが、その実装専用に記述されたプログラムからの未指定の動作は許可されます。
2012年に、EcmaとISO/IECはCLI標準の新版を発行した。[1] [2]
実装
- .NET Framework は、Microsoft のオリジナルの CLI 商用実装です。Windows のみをサポートしています。2020 年 11 月に .NET に置き換えられました。
- .NET は、以前は .NET Core として知られていましたが、 MIT ライセンスの下でリリースされた、無料のオープンソースのマルチプラットフォームの .NET Framework の後継です。
- .NET Compact Framework は、ポータブル デバイスおよびXbox 360向けの CLI の Microsoft による商用実装です。
- .NET Micro Framework は、リソースが制限されたデバイス向けの CLI のオープン ソース実装です。
- Mono は、主にモバイルおよびゲーム開発に使用される、CLI および付随するテクノロジの代替オープン ソース実装です。
- DotGNU は、 Microsoft の.NET Frameworkに代わる無料のオープン ソース ソフトウェアを提供することを目的として 2001 年 1 月に開始された GNU プロジェクトの廃止された部分です。
参照
注記
- ^ ab 「ISO/IEC 23271:2012 - 情報技術 - 共通言語インフラストラクチャ (CLI)」。ISO。2023年7月2日時点のオリジナルよりアーカイブ。
- ^ ab "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 demystified」. 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 Community Promise」. Microsoft Learn . 2023 年5 月 1 日閲覧。
参考文献
- 「標準 ECMA-335、共通言語インフラストラクチャ (CLI)」。Ecma International 。2023 年11 月 1 日閲覧。
- 「ISO/IEC 23271、共通言語インフラストラクチャ」。ISO /IEC。2006年9 月 27 日閲覧。
- 「Ecma C# および共通言語インフラストラクチャ標準」。Microsoft Corporation。2009年10 月 13 日閲覧。
- 「言語非依存性と言語非依存コンポーネント」。Microsoft Learn。2022年 12 月 21 日。2023 年5 月 19 日に閲覧。
外部リンク
- ISO/IEC 23271:2012 情報技術 — 共通言語インフラストラクチャ (CLI)
