みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語やC++、VC++について

C言語やC++、VC++について
C言語やC++、VC++などはIL コードと呼ばれる中間言語が作成されるのでしょうか?それともコンパイラーがネイティブコードに変換されるのでしょうか?でもネイティブコードに変換すると機械語なので互換性がないのではないのでしょうか?それなのになぜ他のwindowsのパソコンで実行できるのはなぜなのでしょうか?そこら辺はどうなっているのでしょうか?

投稿日時 - 2010-04-24 07:36:37

QNo.5847587

すぐに回答ほしいです

質問者が選んだベストアンサー

ILコードをネィティブに変換するのが
.NET(ドットネット)フレームワークの仕事です。
これは、.NETをインストールすると自動的に入ります。
(というか、これがないと.NETは意味をなさない!)

厳密にはOSと.NET フレームワークは別の存在です。
しかし、最近のWinではOSインストール済みのPCでは
有無を言わさず,.NETが入ってます。

(.NETのないWin7インストール済みPCなんてありえないです)

そういう意味で、
アプリ作成者側からは
「OSがネィティブに変換してくれる」
ととらえても
大きな問題とはならないと思います。

投稿日時 - 2010-04-25 16:56:50

お礼

回答ありがとうございます。やっぱりそういうことでしたか!ありがとうございました。

投稿日時 - 2010-04-25 21:47:16

ANo.3

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Wr5

>このコンパイラーはOSに最初から入っているのでしょうか?

(CまたはC++のコンパイラということならば)入っていません。

>それとも自分でダウンロードしなくてはならないのでしょうか?もしダウンロードしなくてはならない場合どこにあるのでしょうか?

無料のものならダウンロードしてインストールできるでしょう。
VC系ならMicrosoft Visual C++ 2008 Express Editionが、
Borlandからも無料のコンパイラが提供されていたはずです。
当然有料のモノもあるわけですが…。
検索すればそれなりに情報はみつかるでしょう。

投稿日時 - 2010-04-24 15:37:45

お礼

質問を間違えました。
>VCはマネージ拡張といってILコードが生成されるものもあります。(マネージ拡張はある意味C++とは別言語)
>(CまたはC++のコンパイラということならば)入っていません。
というのはILコードをコンパイルするコンパイラ(VBやVCのマネージ拡張用のコンパイラ)はOSに最初からインストールされているのでしょうか?

投稿日時 - 2010-04-24 19:40:49

ANo.1

機械語はCPUの種類によって違いますが、簡単に言うと現在普通のパソコンに入っているwindowsやLinuxが動くCPUはx86系といって、共通の命令セットを持っているので、機械語でもある程度の互換性はあります。

C、C++、VC++はILコードは生成されません。VCはマネージ拡張といってILコードが生成されるものもあります。(マネージ拡張はある意味C++とは別言語)
ILコードは主にC#やVB.NET(他にもF#、IronRuby、IronPythonなど)がコンパイルされたときにできるものです。

投稿日時 - 2010-04-24 08:20:27

お礼

回答ありがとうございます。あともうひとつ教えていただきたいのですが、ILコードって専用のコンパイラーがないといけないのはわかるのですが、このコンパイラーはOSに最初から入っているのでしょうか?それとも自分でダウンロードしなくてはならないのでしょうか?もしダウンロードしなくてはならない場合どこにあるのでしょうか?

投稿日時 - 2010-04-24 12:02:27

あなたにオススメの質問