CLRの動作イメージ。バイトコード機械語に変換、実行する。

共通言語ランタイム (: Common Language Runtime, CLR) は、Microsoft が開発した .NET プラットフォームにおいてマネージドコードを実行するための実行環境であり、異なるプログラミング言語で作成されたプログラムを共通の基盤上で動作させるために設計された。CLR は共通言語基盤(CLI)仕様に基づく実装であり、複数言語間の相互運用を前提とした点を特徴とする。

CLR 上で実行されるプログラムは、各言語のソースコードから言語に依存しない共通中間言語(CIL)へコンパイルされ、実行時に Just-In-Timeコンパイラによって各環境の機械語へ変換され実行される。また CLR は、メモリ管理(ガベージコレクション)、型安全性の検証、例外処理スレッド管理、セキュリティ検証、アセンブリ管理などを担い、開発者がこれらの基盤処理を個別に実装する負担を軽減する。

CLR は当初 Windows 上の .NET Framework の実行基盤として提供されたが、その後の .NET の発展に伴い、オープンソース実装を含むクロスプラットフォーム対応の実行環境へと展開され、複数のオペレーティングシステムおよびデバイス上で .NET アプリケーションを実行する基盤となっている。

実行環境の変遷と実行方式

編集

.NET Framework 1.x - 4.x で使用されている CLR は Windows 上のみで動作する。.NET CoreMITライセンスオープンソースになり、CoreCLRはWindows、macOSLinuxFreeBSD で動作する[1].NET 5以降は.NET Runtime[2]と呼ばれるようになり、.NET 6では実行環境としてAndroidiOSのサポートも加わった[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]

脚注

編集

出典

編集

関連項目

編集

📚 Artikel Terkait di Wikipedia

Microsoft DirectX

Managed DirectX 1.1のグラフィックスコンポーネントはDirect3D 9およびD3DX 9を内部で使用している。Managed DirectX 1.1の開発環境はDirectX SDKに、実行環境はDirectXエンドユーザーランタイムに同梱されている。 Managed DirectX

マネージコード

マネージコード(英: managed code)とは、実行時にメモリ管理、型安全性の検証、例外処理などがランタイムによって管理されながら実行されるプログラムコードである。これらは通常、共通言語基盤(CLI)に基づく実行環境上で動作する形式で生成される。 これに対し、ランタイムによる管理を受けず、オペ

共通中間言語

int32) cil managed { /* コンストラクタ */ } .method public void Move(int32) cil managed { /* 実装は省略 */ } .method public void TurnRight() cil managed { /* 実装は省略

Graphics Device Interface

2015年1月25日閲覧。[リンク切れ] ^ System.Drawing Namespace | Microsoft Docs ^ About GDI+ Managed Code | Microsoft Docs ^ §GDI and Direct2D hardware acceleration : Comparing

Visual Basic .NET

ライブラリである「Managed DirectX」が、DirectX SDKおよびDirectXエンドユーザーランタイムに同梱される形で提供されていた。なお、XNAのリリースに伴い、Managed DirectXの更新は終了したが、そのXNAもすでに更新が終了している。「Windows API Code Pack

Apache Airflow

for developers” (英語). TechCrunch. 2019年9月18日閲覧。 ^ “Introducing Amazon Managed Workflows for Apache Airflow (MWAA)” (英語). Amazon Web Services (2020年11月24日)

Microsoft Visual C++

Animation ManagerのMFC用ラッパークラスが追加される。 マネージ拡張C++ (Managed Extensions for C++、Managed C++) は.NET Frameworkに対応したアプリケーションを作成するため、C++を共通言語仕様CLSに準拠

動的言語ランタイム

Microsoft seems to have lost the will to make them a success.” ^ a b “Managed JScript announced”. 2007年5月4日閲覧。 ^ “What the heck is "VBx"?” (2007年5月1日)