Common Language Infrastructureとは - わかりやすく解説 Weblio辞書 (original) (raw)
共通言語基盤。
共通言語基盤(きょうつうげんごきばん、英語: 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プロジェクトの一環。こちらもオープンソースの実装であったが2012年に廃止された[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日閲覧。
| 表 話 編 歴 .NET | |
|---|---|
| アーキテクチャ | 共通言語基盤 アセンブリ メタデータ マネージコード 基本クラスライブラリ .NET Standard 仮想実行システム Roslyn Native AOT |
| 共通言語基盤 | 共通言語ランタイム 共通型システム 共通中間言語 動的言語ランタイム |
| 言語 | C# Visual Basic .NET F# PowerShell C++/CLI (マネージ拡張) †J# JScript .NET IronPython IronRuby Nemerle Boo PiechPie(英語版) / †Phalanger †Cω †Spec# |
| パッケージマネージャ | NuGet myget ProGet |
| 関連技術 | Azure MAUI(英語版) †Xamarin Blazor Aspire Uno Platform(英語版) †UWP Avalonia UI(英語版) WPF WCF WF WCS Windows Forms ASP.NET ADO.NET ASP.NET MVC Framework Entity Framework ClickOnce XAML †Silverlight LINQ †.NET Remoting MSBuild XSP ML.NET(英語版) Windows UI Library Windows App SDK(英語版) |
| その他のCLI実装 | †.NET Core .NET Framework Mono シェアードソースCLI Portable.NET .NET nanoFramework .NET Micro Framework .NET Compact Framework †Microsoft XNA |
| 組織 | .NET Foundation Microsoft Xamarin |
| 開発環境 | Visual Studio Visual Studio Code JetBrains Rider(英語版) MonoDevelop / Xamarin Studio SharpDevelop |
| その他 | async/await MVVM ReactiveX(英語版) |