共通言語基盤
表示
![]() |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Diagram_of_Common_Language_Infrastructure_%28ja%29.svg/280px-Diagram_of_Common_Language_Infrastructure_%28ja%29.svg.png)
共通言語基盤(きょうつうげんごきばん、英語: Common Language Infrastructure、略称 : 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プロジェクトの一環。こちらもオープンソースの実装であったが2102年に廃止された[1]。
- PlayStation Suite - ソニー・コンピュータエンタテインメントによる多機種共通環境を目指した実装。ECMA-335カスタム仕様[2]。
脚注
[編集]- ^ “DotGNU Project”. 2023年12月11日閲覧。 “As of December 2012, the DotGNU project has been decommissioned, until and unless a substantial new volunteer effort arises. The exception is the libjit component, which is now a separate libjit package.”
- ^ Paul Holman. “Portable Entertainment Development - the console approach” (英語). SCEE. 2012年2月22日閲覧。
参照
[編集]- “Standard ECMA-335, Common Language Infrastructure (CLI)”. Ecma International. 2005年8月31日閲覧。
- “ISO/IEC 23271, Common Language Infrastructure”. ISO. 2005年8月31日閲覧。