マネージコード

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

これに対し、ランタイムによる管理を受けず、オペレーティングシステム上で直接実行されるコードは、アンマネージコード（英: unmanaged code）またはネイティブコード（英: native code）と呼ばれる。

マネージコードの実行
マネージコードのプログラムは通常C#やVB.NETといった人間が読み書きしやすい言語で書かれ、共通中間言語 (CIL) にコンパイルされる。

コードが実行される際、CILは仮想実行システム (VES) で実行環境（プロセッサアーキテクチャ）に依存した機械語にコンパイルされる。このコンパイルはマネージ実行環境のコンパイラによってなされるので、マネージ実行環境はコードが何をしようとしているのかを完全に知ることができる。故にガベージコレクションのフックや例外処理、型安全性の保証、配列境界のチェックなどを行うことができる。

これは古典的にJITコンパイルと言われる手法である。しかし多くのJITコンパイラと違い、仮想マシンが機械語に変換する擬似機械語が格納されたファイルは環境依存の機械語（x86やPowerPCなど）をも含むことができる。これはAppleのUniversal Binaryの考えに似ている。

 その他の用例 
JavaやScala、KotlinなどのJava仮想マシン上で動作する言語もまた、中間表現であるJavaバイトコードを出力できる言語であり、管理された安全なコードを記述できるという意味でマネージ言語と呼ばれることもあるモダンC++対マネージコード：パフォーマンス対生産性。

 脚注 

 関連項目 
 .NET Framework

まねえしこと