2012-09-25 16 views
7

So che il codice Java è compilato in byte-code, che viene eseguito dalla JVM.Il codice C# è compilato in binari nativi?

Che cosa è il caso di C#? Ho notato che le applicazioni scritte in C# hanno l'estensione .exe che suggerirebbe di essere istruzioni native della macchina. Ma è davvero così ?

+0

Questo dovrebbe spiegare. http://en.wikipedia.org/wiki/List_of_CLI_languages ​​ – km1

+0

Con ngen (allo stesso modo Java con jit) – Cynede

risposta

14

No.

come Java, C# viene compilato in un linguaggio intermedio (MSIL chiamato o CIL).

A differenza di Java, l'IL è memorizzato in file EXE che hanno abbastanza codice EXE effettivo per mostrare una finestra di dialogo che chiede agli utenti di installare .Net.

+1

Mm. Bit che confonde semplicemente dire "No" a "Il codice C# è compilato". Ovviamente, è compilato. Nelle istruzioni CLI. Non solo (direttamente) nel codice nativo. Ovviamente, alla fine essi _sono_ (just-in-time) compilati in codice nativo, comunque. – sehe

+0

@sehe: Sto dicendo "no" all'ultima riga nella domanda. – SLaks

+0

Ho modificato il titolo della domanda per evitare la mancata corrispondenza :) – sehe

2

Il codice C# è compilato in formato MSIL. gli piace il bytecode java. msil verrà convertito in isntrctions della macchina in fase di esecuzione.

1

codice C# viene compilato a MSIL, MSIL è curata dal CLR .NET

2

C# compilazione è fatto in questi due passaggi:

1. Conversion from C# to CIL by the C# compiler 

2. Conversion from CIL to instructions that the processor can execute. 

Un componente (just in time) esegui questa compilation a tempo di esecuzione da CIL al codice macchina

Problemi correlati