共通言語ランタイム

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
  • イスラエル
  • アメリカ