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

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
 
'''マネージドコード'''(managed code)とは、[[.NET Framework]]で用いられる[[共通中間言語]]([[CIL]])の[[バイナリ]]形式のことで、[[共通言語基盤]]([[CLI]])で実行される[[プログラム]]を指す。なお、日本では'''マネージコード'''(manage code)と「ド」抜きで表記されることが多い。「ド」の有無で英語の意味が違うよ、などという細かい指摘は英語など知らん大半の日本人には無用である。
 
'''マネージドコード'''(managed code)とは、[[.NET Framework]]で用いられる[[共通中間言語]]([[CIL]])の[[バイナリ]]形式のことで、[[共通言語基盤]]([[CLI]])で実行される[[プログラム]]を指す。なお、日本では'''マネージコード'''(manage code)と「ド」抜きで表記されることが多い。「ド」の有無で英語の意味が違うよ、などという細かい指摘は英語など知らん大半の日本人には無用である。
  
マネージドコードは[[ガーベジコレクション]]などの機能をフルに利用できる。
+
== 概要 ==
 +
[[ネイティブコード]]などの[[共通言語基盤]]([[CLI]])の外側で動くコードや、[[共通言語基盤]]([[CLI]])の安全性チェック機能などのリミッターを外したコード(たとえば[[C Sharp|C#]]のunsafeキーワードを使ったコード)のことを「[[アンマネージドコード]]」という。また、アンマネージドコードを一切含まない[[プログラム]]のことを[[ピュアマネージドコード]]または[[ピュアマネージド]]という。
 +
 
 +
マネージドコードは[[ガベージコレクション]]などの機能をフルに利用できる。
 +
 
 +
== バイトコードとマネージドコード ==
 +
主に[[Java]]から来た人を中心に[[CIL]]およびマネージドコードのことを[[バイトコード]]と呼ぶこともあるが、[[CIL]]およびマネージドコードは[[オペコード]](命令)のバイト表現が可変長(ほぼ1[[バイト]]だが0xFEで始まる命令群は2バイト)なので、正確には[[固定長]]の命令を絶対条件とする[[バイトコード]]の定義には当てはまらない。
  
[[ネイティブコード]]などの[[共通言語基盤]][[CLI]])の外側で動くコードや、[[共通言語基盤]][[CLI]])の安全性チェック機能などのリミッターを外したコード(たとえば[[C Sharp|C#]]のunsafeキーワードを使ったコード)のことを「[[アンマネージドコード]]」という。また、アンマネージドコードを一切含まない[[プログラム]]のことを[[ピュアマネージドコード]]または[[ピュアマネージド]]という。
+
例えるなら[[CPU]]で言えば[[RISC]][[CISC]]のような違いに近い。
 +
ただし、[[CPU]][[RISC]][[CISC]]かを気にする人はほとんど存在しないように、そんな細かいことを気にしても仕方がなく、また大多数の人には意味は伝わるので、よほどの偏屈を相手にする場合を除き、使い分ける必要も、気にする必要もない。そんな細かいことを気にしては[[ハゲ]]るので気にしてはならない。
  
 
== 関連項目 ==
 
== 関連項目 ==
11行目: 18行目:
 
** [[ピュアマネージコード]]
 
** [[ピュアマネージコード]]
 
** [[アンマネージドコード]]
 
** [[アンマネージドコード]]
 +
* [[バイトコード]]
 
* [[ネイティブコード]]
 
* [[ネイティブコード]]
 
* [[P/Invoke]]
 
* [[P/Invoke]]
  
 
== 参考文献 ==
 
== 参考文献 ==
<references/>
+
{{reflist}}
  
 
== 外部リンク ==
 
== 外部リンク ==
  
 
{{stub}}
 
{{stub}}

2014年1月21日 (火) 02:19時点における最新版

マネージドコード(managed code)とは、.NET Frameworkで用いられる共通中間言語CIL)のバイナリ形式のことで、共通言語基盤CLI)で実行されるプログラムを指す。なお、日本ではマネージコード(manage code)と「ド」抜きで表記されることが多い。「ド」の有無で英語の意味が違うよ、などという細かい指摘は英語など知らん大半の日本人には無用である。

概要[編集 | ソースを編集]

ネイティブコードなどの共通言語基盤CLI)の外側で動くコードや、共通言語基盤CLI)の安全性チェック機能などのリミッターを外したコード(たとえばC#のunsafeキーワードを使ったコード)のことを「アンマネージドコード」という。また、アンマネージドコードを一切含まないプログラムのことをピュアマネージドコードまたはピュアマネージドという。

マネージドコードはガベージコレクションなどの機能をフルに利用できる。

バイトコードとマネージドコード[編集 | ソースを編集]

主にJavaから来た人を中心にCILおよびマネージドコードのことをバイトコードと呼ぶこともあるが、CILおよびマネージドコードはオペコード(命令)のバイト表現が可変長(ほぼ1バイトだが0xFEで始まる命令群は2バイト)なので、正確には固定長の命令を絶対条件とするバイトコードの定義には当てはまらない。

例えるならCPUで言えばRISCCISCのような違いに近い。 ただし、CPURISCCISCかを気にする人はほとんど存在しないように、そんな細かいことを気にしても仕方がなく、また大多数の人には意味は伝わるので、よほどの偏屈を相手にする場合を除き、使い分ける必要も、気にする必要もない。そんな細かいことを気にしてはハゲるので気にしてはならない。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]