アンマネージコード 【unmanaged code】 アンマネージドコード
.NETでは原則として、プログラミング言語で記述されたソースコードは開発環境のコンパイラによって「共通中間言語」(CIL:Common Intermediate Language)と呼ばれるコード形式に変換される。これをアンマネージコードという。
共通中間言語はCPUの機械語に似た形式のコードで、実行時には.NET Frameworkなどに含まれる共通言語ランタイム(CLR:Common Language Runtime)によって、そのコンピュータに固有の機械語プログラム(ネイティブコード)に変換されて実行される。CLRがあればどのような環境でも同じように動作する。
一方、ソースコードを特定の機種で直接起動して実行できるネイティブコードに変換して配布することもできる。これをアンマネージコードという。特定のCPUの機械語で記述されたコードや、Win32 APIなどを利用した従来のWindows向けのバイナリコードなどが含まれる。
マネージコードではCLRが提供するガベージコレクションや例外処理などの機能を利用でき、型安全性のチェックなど危険な挙動を抑止する管理も行われるが、アンマネージコードではこれらの恩恵を受けることはできず、対象機種でしか動作しないという制約もある。ただし、アンマネージコードよりも高速に動作させることができ、特定の機種やOSが提供する.NET非標準の機能などを利用することができる。
(2024.1.26更新)