共通言語基盤(きょうつうげんごきばん、、CLI)とは、異なるプログラミング言語で作成されたプログラムを共通の方式で実行可能とするために定義された標準仕様であり、中間言語の形式、型システム、コード実行方式などを規定することで、言語やハードウェアに依存しないアプリケーション実行を可能にする。

CLI に適合するプログラムは共通中間言語(CIL)へコンパイルされ、実行時には仮想実行システム(VES)によって各環境の機械語へ変換される。

標準化とライセンス 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プロジェクトの一環。こちらもオープンソースの実装であったが2012年に廃止された。 PlayStation Suite - ソニー・コンピュータエンタテインメントによる多機種共通環境を目指した実装。ECMA-335カスタム仕様。

脚注

参照