共通言語基盤

共通言語基盤（きょうつうげんごきばん、、略称 : CLI）は、.NET Frameworkの基幹を構成する実行コードや実行環境などについてマイクロソフトが策定した仕様である。仕様は、ECMA-335 および ISO/IEC 23271 として標準化され公開されている。CLIは、プログラミング言語やコンピュータ・アーキテクチャに依存しない環境を定義しており、様々な高水準言語で書いたソースコードが書き直すことなく他のプラットフォームでも使える。

共通言語ランタイム (CLR) はCLIの仕様を実装したものの一つである。CLIに適合するプログラムは全て共通中間言語 (CIL) へコンパイルされる。CILは、ハードウェアから抽象化された中間言語であり、実行時にはVESが機械語へコンパイルする。
概念
 共通型システム (CTS) — プログラミング言語間で共通して用いられる型の集合
 メタデータ — プログラムの構造に関する情報。プログラミング言語上やツールなどから参照できる
 共通言語仕様 (CLS) — 相互運用性のためのプログラミング言語に対する規定
 仮想実行システム (VES) — CLIに適合したプログラムの読込と実行。メタデータを活用して動的に機械語を生成する

標準化とライセンス 
2000年8月にマイクロソフト、ヒューレットパッカード、インテルそしてその他いくつかの企業がCLIの標準化に動いた。2001年11月Ecma Internationalに承認され、2003年4月にはISOにも承認された。その翻訳として2006年11月、JIS X 3016が公開された。

マイクロソフトとそのパートナーがCLIに対する特許を保持していたため、Ecma InternationalとISOは実装に必要な全ての特許を「合理的かつ非差別的」なライセンス (RAND) にするよう求め、各企業はそれを受け入れた。そして、「ロイヤリティーフリー、その他はRAND」という形態になった。

実装 
 Microsoft .NET Framework - マイクロソフトのデスクトップ向けの商用実装。様々なリソース、ライブラリ、ツールも含まれている。
 シェアードソース共通言語基盤 - マイクロソフトによるリファレンス実装。シェアードソースのライセンスの元で利用できる。
 .NET Compact Framework - マイクロソフトによるポータブルデバイス向けの商用実装。
 Mono - オープンソースの実装として知られている。
 Portable.NET - dotGNUプロジェクトの一環。こちらもオープンソースの実装である。
 PlayStation Suite - ソニー・コンピュータエンタテインメントによる多機種共通環境を目指した実装。ECMA-335カスタム仕様。

脚注

参照 
 
 

.NET Framework
仮想機械