共通言語ランタイム [common language runtime]
共通言語ランタイム
【英】CLR, Common Language Runtime
共通言語ランタイムとは、Microsoftの.NET Framework上で、サービスやアプリケーションを実行するための仮想マシンの名称である。
共通言語ランタイムは、複数のプログラミング言語で作成されたアプリケーションを、さまざまなシステム環境において、その環境に固有の特性を考慮するために再作成することなく実行できるようにする。共通言語ランタイムを用いることで、Javaプラットフォーム上におけるJava仮想マシンと同じように、プログラミング言語に依存しない開発や実行が可能になる。
ちなみに、共通言語ランタイムは、Microsoftが策定した共通言語基盤(CLI)と呼ばれる仕様をベースとして、そのWindows向け商用実装として開発されたものである。
参照リンク
.NET Framework Developer Center: 共通言語ランタイム (CLR) - (マイクロソフト)
共通言語ランタイム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/16 13:55 UTC 版)
プログラムの実行 |
---|
一般的な概念 |
コードの種類 |
コンパイル戦略 |
有名なランタイム |
|
有名なコンパイラとツールチェーン |
|
共通言語ランタイム (英: Common Language Runtime, CLR) とは、.NET Frameworkアプリケーションを実行するための仮想機械で、共通言語基盤 (CLI) のマイクロソフト自身による実装。
.NET Framework 1.x - 4.x で使用されている CLR は Windows 上のみで動作する。.NET CoreはMITライセンスのオープンソースになり、CoreCLRはWindows、macOS、Linux、FreeBSD で動作する[1]。.NET 5以降は.NET Runtime[2]と呼ばれるようになり、.NET 6では実行環境としてAndroidやiOSのサポートも加わった[3]。
CLRは、共通中間言語 (CIL) と呼ばれる、プログラミング言語や環境に依存しない中間言語(中間表現)を解釈する。CILは実行時にJITコンパイラによって機械語に変換され、実行される。.NET Framework 4.6 では64ビット版は RyuJIT という名称のJITコンパイラが搭載された[4]。ただし.NET 4.6時点のRyuJITには多数の不具合があり、.NET 4.6.2にアップグレードするか、RyuJITを無効化する回避策が紹介されていた[5]。RyuJITは.NET Coreでも利用されている[6]。
そのほかのCLRの役割・機能には、メモリ管理(ガベージコレクション)、型とアセンブリの管理、スレッド管理、例外処理、セキュリティがある。
脚注
出典
- ^ dotnet/coreclr - GitHub
- ^ GitHub - dotnet/runtime: .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
- ^ core/os-lifecycle-policy.md at main · dotnet/core · GitHub
- ^ RyuJIT and .NET 4.6 - JIT, NGen, and other Managed Code Generation Stuff - Site Home - MSDN Blogs[リンク切れ]
- ^ Retargeting changes for migration to .NET Framework 4.6.x - .NET Framework | Microsoft Learn
- ^ Performance Improvements in RyuJIT in .NET Core and .NET Framework - .NET Blog
関連項目
- 共通言語ランタイムのページへのリンク