共通言語インフラストラクチャ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

共通言語インフラストラクチャ
ISO / IEC 23271:2012(E)
略語CLI
状態公開済み
年が始まった2000 ; 21年前 (2000
初版2001 ; 20年前(Ecma)と2003 ; 18年前(ISO) (2001) (2003)
最新バージョン
2012年6月第6版; 9年前 (2012-06)
組織開発者: MicrosoftHewlett-PackardIntel、その他
標準化者: EcmaISO
委員会ISO / IEC JTC 1 / SC 22
ドメイン共通言語(クロスプラットフォーム
ライセンスランド
WebサイトECMA-335
ISO / IEC 23271

共通言語基盤CLIは)開いている仕様技術標準、もともとによって開発された、マイクロソフトとによって標準化されたISOISO / IEC 23271)とEcmaインターナショナルECMA 335[1] [2]実行可能コードおよびランタイム環境のことを説明します特定のアーキテクチャ用に書き直すことなく複数の高レベル言語を異なるコンピュータプラットフォームで使用できるようにします。これは、プラットフォームに依存しないことを意味します。.NET Frameworkの.NETおよびモノラルはCLIの実装です。メタデータフォーマットも指定するために使用されたAPIによって公開された定義がWindowsランタイムを[3] [4]

概要

共通言語インフラストラクチャ(CLI)の視覚的な概要

特に、CLI仕様では次の4つの側面について説明しています。

共通型システム(CTS)
すべてのCTS準拠のプログラミング言語で共有されるデータ型と操作のセット
メタデータ
プログラム構造に関する情報は言語に依存しないため、言語とツールの間で参照できるため、開発者が使用していない言語で記述されたコードを簡単に操作できます。
共通言語仕様(CLS)
CLIは、言語が他のCLS準拠言語と相互運用する必要があるため、言語を対象とする一連の基本ルールに準拠する必要があります。CLSルールは、共通型システムのサブセットを定義します。
仮想実行システム(VES)
VESは、CLI互換プログラムをロードして実行し、メタデータを使用して、実行時に個別に生成されたコードを結合します。

互換性のあるすべての言語は、プラットフォームハードウェアから抽象化され中間言語である共通中間言語(CIL)にコンパイルされます。コードが実行されると、プラットフォーム固有のVESは、特定のハードウェアとオペレーティングシステムに従ってCILを機械語コンパイルします。

標準化とライセンス

2000年8月、MicrosoftHewlett-PackardIntelなどがCLIの標準化に取り組みました。2001年12月では、それが批准してはEcmaで、ISOの標準化は、2003年4月に次のよう。

Microsoftとそのパートナーは、CLIの特許を保有しています。EcmaとISOは、実装に不可欠なすべての特許を「合理的かつ非差別的な(RAND)条件」で利用できるようにすることを要求していますRANDライセンスでは、ロイヤルティの支払いが必要になるのが一般的です。これは、Monoに関する懸念の原因となる可能性があります2013年1月の時点で、Microsoftもそのパートナーも、RAND条件の対象となるCLIの実装に不可欠な特許を特定していません。

2009年7月の時点で、[5] Microsoftは、Microsoft Community Promiseが適用される仕様のリストにC#とCLIを追加しました[6]。そのため、マイクロソフトからの特許訴訟を恐れることなく、誰でも標準の特定のエディションを安全に実装できます。 CLI標準を実装するには、標準でサポートおよび定義されているプロファイルの1つに準拠する必要があります。このプロファイルの最小値は、カーネルプロファイルです。カーネルプロファイルは、デフォルトの.NETインストールのよく知られたコアライブラリと比較して、実際にはサポートするタイプの非常に小さなセットです。ただし、CLIのconformance句を使用すると、クラスに新しいメソッドとタイプを追加したり、新しい名前空間から派生したりすることで、サポートされているプロファイルを拡張できます。ただし、インターフェイスに新しいメンバーを追加することはできません。これは、準拠するプロファイルの実装がそのプロファイルで実行することを目的としたプログラムの動作を変更しない限り、CLIの機能を使用および拡張できることを意味します。その実装のために特別に作成されたプログラムからの不特定の動作を可能にしながら。

2012年、EcmaとISOは、CLI標準の新版[1] [2]公開しましたが、これはCommunityPromiseの対象外です。[6]

実装

  • .NET Frameworkは、Microsoft独自のCLIの商用実装です。Windowsのみをサポートします。2020年11月に.NETに取って代わられました。
  • .NETは、MITライセンスの下でリリースされた.NETFrameworkの後継である無料のオープンソースマルチプラットフォームです。
  • .NET Compact Frameworkは、ポータブルデバイスおよびXbox360用のCLIのMicrosoftの商用実装です
  • .NET Micro Frameworkは、リソースに制約のあるデバイス用のCLIのオープンソース実装です。
  • Monoは、CLIおよび付随するテクノロジーの代替のオープンソース実装であり、主にモバイルおよびゲーム開発に使用されます。

も参照してください

メモ

  1. ^ a b ISO / IEC 23271:2012-情報技術-共通言語基盤(CLI)
  2. ^ a b 標準ECMA-335-第6版(2012年6月)
  3. ^ HTML5とJavaScriptを使用した高度なWindowsストアアプリ開発の概要| Microsoft Press Store
  4. ^ WinRTの謎を解き明かす-Miguelde Icaza
  5. ^ 「EcmaC#およびCLI標準-ポート25:Microsoftのオープンソースコミュニティ」2009年7月6日。2009年7月9日のオリジナルからアーカイブ2009年9月26日取得
  6. ^ B カバー仕様| MicrosoftOpen仕様

参考文献

外部リンク