2012-09-25 14 views
7

Sé que el código de Java está compilado en byte-code, que es ejecutado por la JVM.¿El código C# está compilado en binarios nativos?

¿Cuál es el caso con C#? Me he dado cuenta de que las aplicaciones escritas en C# tienen la extensión .exe, lo que sugiere que son instrucciones nativas de la máquina. Pero, es realmente así ?

+0

Esto debería explicar. http://en.wikipedia.org/wiki/List_of_CLI_languages ​​ – km1

+0

Con ngen (Java por igual con jit) – Cynede

Respuesta

14

como Java, C# se compila a un lenguaje intermedio (MSIL llamada o CIL).

A diferencia de Java, el IL se almacena en archivos EXE que tienen suficiente código EXE real para mostrar un cuadro de diálogo pidiendo a los usuarios que instalen .Net.

+1

Mm. Es un poco confuso decir "No" a "Se compila el código de C#". Obviamente, está compilado. En las instrucciones CLI. Simplemente no (directamente) en el código nativo. Obviamente, al final ellos _are_ (just-in-time) compilados a código nativo, de todos modos. – sehe

+0

@sehe: estoy diciendo "no" a la última línea de la pregunta. – SLaks

+0

He editado el título de la pregunta para evitar la falta de coincidencia :) – sehe

2

El código de C# se compila en MSIL. le gusta bytecode java. msil se convertirá en isntrctions de la máquina en tiempo de ejecución.

1

C# código se compila a MSIL, MSIL es atendido por CLR .NET

2

C# compilación se realiza en estos dos pasos:

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

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

Un componente (justo a tiempo) lleva a cabo esta compilación en tiempo de ejecución de CIL al código de máquina

Cuestiones relacionadas