共通言語ランタイム

CLRの動作イメージ。バイトコード機械語に変換、実行する。
プログラムの実行
一般的な概念
コードの種類
コンパイル戦略
有名なランタイム
有名なコンパイラとツールチェーン

共通言語ランタイム (: Common Language Runtime, CLR) とは、.NET Frameworkアプリケーションを実行するための仮想機械で、共通言語基盤 (CLI) のマイクロソフト自身による実装。

.NET Framework 1.x - 4.x で使用されている CLR は Windows 上のみで動作する。.NET CoreMITライセンスオープンソースになり、CoreCLRはWindows、macOSLinuxFreeBSD で動作する[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の役割・機能には、メモリ管理(ガベージコレクション)、とアセンブリの管理、スレッド管理、例外処理セキュリティがある。

脚注

出典

  1. ^ dotnet/coreclr - GitHub
  2. ^ GitHub - dotnet/runtime: .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
  3. ^ core/os-lifecycle-policy.md at main · dotnet/core · GitHub
  4. ^ RyuJIT and .NET 4.6 - JIT, NGen, and other Managed Code Generation Stuff - Site Home - MSDN Blogs[リンク切れ]
  5. ^ Retargeting changes for migration to .NET Framework 4.6.x - .NET Framework | Microsoft Learn
  6. ^ Performance Improvements in RyuJIT in .NET Core and .NET Framework - .NET Blog

関連項目

アーキテクチャ
共通言語基盤
言語
パッケージマネージャ
関連技術
その他のCLI実装
組織
開発環境
その他
カテゴリ カテゴリ
全体
プラットフォームの
仮想化
仮想マシン
ハードウェアレベル
ソフトウェアレベル
言語レベル
リソースの仮想化
CPU
メインメモリ
ディスク装置
ネットワーク
その他
カテゴリ カテゴリ
典拠管理データベース ウィキデータを編集
全般
  • FAST
  • VIAF
国立図書館
  • フランス
  • BnF data
  • イスラエル
  • アメリカ