アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

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



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

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

お礼日時:2010/04/24 12:02

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



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

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

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

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

お礼日時:2010/04/24 19:40

ILコードをネィティブに変換するのが


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

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

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

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

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

お礼日時:2010/04/25 21:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!