• ベストアンサー

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

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

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

  • ベストアンサー
  • BLK314
  • ベストアンサー率55% (84/152)
回答No.3

ILコードをネィティブに変換するのが .NET(ドットネット)フレームワークの仕事です。 これは、.NETをインストールすると自動的に入ります。 (というか、これがないと.NETは意味をなさない!) 厳密にはOSと.NET フレームワークは別の存在です。 しかし、最近のWinではOSインストール済みのPCでは 有無を言わさず,.NETが入ってます。 (.NETのないWin7インストール済みPCなんてありえないです) そういう意味で、 アプリ作成者側からは 「OSがネィティブに変換してくれる」 ととらえても 大きな問題とはならないと思います。

taiyaki_10
質問者

お礼

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

その他の回答 (2)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>このコンパイラーはOSに最初から入っているのでしょうか? (CまたはC++のコンパイラということならば)入っていません。 >それとも自分でダウンロードしなくてはならないのでしょうか?もしダウンロードしなくてはならない場合どこにあるのでしょうか? 無料のものならダウンロードしてインストールできるでしょう。 VC系ならMicrosoft Visual C++ 2008 Express Editionが、 Borlandからも無料のコンパイラが提供されていたはずです。 当然有料のモノもあるわけですが…。 検索すればそれなりに情報はみつかるでしょう。

taiyaki_10
質問者

お礼

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

  • hoge_piyo
  • ベストアンサー率57% (15/26)
回答No.1

機械語はCPUの種類によって違いますが、簡単に言うと現在普通のパソコンに入っているwindowsやLinuxが動くCPUはx86系といって、共通の命令セットを持っているので、機械語でもある程度の互換性はあります。 C、C++、VC++はILコードは生成されません。VCはマネージ拡張といってILコードが生成されるものもあります。(マネージ拡張はある意味C++とは別言語) ILコードは主にC#やVB.NET(他にもF#、IronRuby、IronPythonなど)がコンパイルされたときにできるものです。

taiyaki_10
質問者

お礼

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

関連するQ&A