私はJavaコードがバイトコードにコンパイルされていることを知っています。これはJVMによって実行されます。C#コードはネイティブバイナリにコンパイルされていますか?
C#の場合はどうなりますか?私は、C#で書かれたアプリケーションには、ネイティブのマシン命令であることを示唆する拡張子が.exe
であることに気付きました。それは本当にそうですか?
私はJavaコードがバイトコードにコンパイルされていることを知っています。これはJVMによって実行されます。C#コードはネイティブバイナリにコンパイルされていますか?
C#の場合はどうなりますか?私は、C#で書かれたアプリケーションには、ネイティブのマシン命令であることを示唆する拡張子が.exe
であることに気付きました。それは本当にそうですか?
号
ようなJava、C#は(MSILまたはCILとも呼ばれる)、中間言語にコンパイルされます。
ILは、Javaとは異なり、.Netをインストールするようダイアログボックスを表示するのに十分な実際のEXEコードを持つEXEファイルに格納されています。
c#コードはMSILにコンパイルされます。それはJavaのバイトコードが好きです。 msilは実行時にマシンの制御に変換されます。
C#コードをMSILにコンパイルされ、MSILは、.NET CLRによって世話をされに
C#のコンパイルが、これらの二つのステップで行われる:
1. Conversion from C# to CIL by the C# compiler
2. Conversion from CIL to instructions that the processor can execute.
成分(ジャストインタイム)で、このコンパイルを行いますCILからマシンコードまでの実行時間
ファイルが実行可能であることを.exeが示すとします。 C#はJavaと同じようにバイトコードにコンパイルされますが、.NETはこれをCLR実行可能ファイルにラップします。 CLR実行ファイルhttp://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/
ポータブル実行可能ファイルという用語は、.NET固有の用語ではありません。 – Matthew
これで深さで、より外観のため、ここで
ルックは説明する必要があります。 http://en.wikipedia.org/wiki/List_of_CLI_languages – km1
ngen(jitと同様のJava) – Cynede