コンテンツにスキップ

「マネージコード」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
編集の要約なし
Cewbot (会話 | 投稿記録)
9行目: 9行目:
コードが実行される際、CILは仮想実行システム (VES) で実行環境(プロセッサアーキテクチャ)に依存した[[機械語]]にコンパイルされる。このコンパイルはマネージ実行環境のコンパイラによってなされるので、マネージ実行環境はコードが何をしようとしているのかを完全に知ることができる。故に[[ガベージコレクション]]の[[フック (プログラミング)|フック]]や[[例外処理]]、[[型システム|型安全性]]の保証、配列境界のチェックなどを行うことができる。
コードが実行される際、CILは仮想実行システム (VES) で実行環境(プロセッサアーキテクチャ)に依存した[[機械語]]にコンパイルされる。このコンパイルはマネージ実行環境のコンパイラによってなされるので、マネージ実行環境はコードが何をしようとしているのかを完全に知ることができる。故に[[ガベージコレクション]]の[[フック (プログラミング)|フック]]や[[例外処理]]、[[型システム|型安全性]]の保証、配列境界のチェックなどを行うことができる。


これは古典的に[[ジャストインタイムコンパイル方式|JITコンパイル]]と言われる手法である。しかし多くのJITコンパイラと違い、仮想機械が機械語に変換する擬似機械語が格納されたファイルは環境依存の機械語([[x86]]や[[PowerPC]]など)をも含むことができる。これは[[アップル (企業)|アップル]]の[[Universal Binary]]の考えに似ている。
これは古典的に[[ジャストインタイムコンパイル方式|JITコンパイル]]と言われる手法である。しかし多くのJITコンパイラと違い、仮想機械が機械語に変換する擬似機械語が格納されたファイルは環境依存の機械語([[x86]]や[[PowerPC]]など)をも含むことができる。これは[[Apple]]の[[Universal Binary]]の考えに似ている。


== その他の用例 ==
== その他の用例 ==

2021年5月20日 (木) 11:42時点における版

マネージコード (managed code) とは、.NET Frameworkにおける共通言語基盤 (CLI) に準拠した仮想機械上で実行される命令(コード)のことである。

これに対してマネージコード以外のコードはアンマネージコード (unmanaged code) やネイティブコード (native code) と呼ばれる。

マネージコードの実行

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

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

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

その他の用例

JavaScalaKotlinなどのJava仮想マシン上で動作する言語もまた、中間表現であるJavaバイトコードを出力できる言語であり、管理された安全なコードを記述できるという意味でマネージ言語と呼ばれることもある[1]

脚注

関連項目