共通言語基盤
出典: フリー百科事典『ウィキペディア(Wikipedia)』
共通言語基盤(Common Language Infrastructure、CLI)は、.NET Frameworkの基幹を構成する実行コードや実行環境などについてのマイクロソフトが作った仕様である。CLIは、プログラミング言語やコンピュータ・アーキテクチャに依存しない環境を定義しており、様々な高級言語で書いたソースコードが書き直すことなく他のプラットフォームでも使えるようになっている。
CLIの性質を説明する際に、CLIのことを共通言語ランタイム(CLR)と呼ぶ場合があるが、これは厳密には誤りである。CLIは仕様であり、CLRはそれを実装したものの一つにすぎない。しかし、現時点において実用的なCLIの実装はCLRしか存在しないため、意図してそう呼ぶ場合もある。いずれにせよ注意が必要である。
CLIに含まれる重要な概念として、次の4つのものがある。
- 共通型システム (CTS) — プログラミング言語間で共通して用いられる型の集合。
- メタデータ — プログラムの構造に関する情報。プログラミング言語上やツールなどから参照できる。
- 共通言語仕様 (CLS) — 相互運用性のためのプログラミング言語に対する規定。
- 仮想実行システム (VES) — CLIに適合したプログラムの読込と実行。メタデータを活用して動的に機械語を生成する。
CLIに適合するプログラムは全て共通中間言語 (CIL)へコンパイルされる。CILは、ハードウェアから抽象化された中間言語であり、実行時にはVESが機械語へコンパイルする。
[編集] 標準化とライセンス
2000年8月にマイクロソフト、ヒューレットパッカード、インテルそしてその他いつかの企業がCLIの標準化に動いた。2001年11月ECMAに承認され、2003年4月にはISOにも承認された。その翻訳として2006年11月、JIS X 3016が公開された。
マイクロソフトとそのパートナーがCLIに対する特許を保持していたため、ECMAとISOは実装に必要な全ての特許を「合理的かつ非差別的」なライセンス (RAND)にするよう求め、各企業はそれを受け入れた。そして、「ロイヤリティーフリー、その他はRAND」という形態になった。
[編集] 実装
- Microsoft .NET Framework - マイクロソフトのデスクトップ向けの商用実装。様々なリソース、ライブラリ、ツールも含まれている。
- Shared Source Common Language Infrastructure - マイクロソフトによるリファレンス実装。シェアド・ソースのライセンスの元で利用できる。
- .NET Compact Framework - マイクロソフトによるポータブルデバイス向けの商用実装。
- Mono - オープンソースの実装として知られている。 Novellがスポンサーとしてついている。
- Portable.NET - dotGNUプロジェクトの一環。こちらもオープンソースの実装である。
[編集] 参照
- "Standard ECMA-335, Common Language Infrastructure (CLI)" ECMA International. 2005Aug. 31閲覧.
- "ISO/IEC 23271, Common Language Infrastructure" ISO. 2005Aug. 31閲覧.