C#: ¿Compilado-interpretado? (Solucionado)

Iniciado por criskapunk, 9 Noviembre 2010, 14:30 PM

0 Miembros y 1 Visitante están viendo este tema.

criskapunk

Buenas chicos,

Estoy leyendo un poco sobre el .NET Framework antes de meterme de lleno en C# y me surgio una duda.

Segun entiendo, todos los lenguajes .NET al compilar no lo hacen a codigo maquina sino a Lenguaje Intermedio el cual despues es ejecutado por el CLR. Pero cuando se "re-compila" utiliza un compilador (:P) JIT que va traduciendo linea por linea al codigo nativo del procesador. Esta ultima forma de trabajar, no es como lo hacen los lenguajes interpretados?

Esa es mi pregunta, C# es un lenguaje compilado-interpretado?

Un saludo y gracias ;)

[D4N93R]

No Criska, de hecho queda en cache esa compilación. Ahora vamos a profundizar un poco.

Cuando compilas a MSIL es cuando se revisan también los errores de código, y cuando el JIT compila, no revisa nada de eso, solo errores en modo de ejecución. Entonces es por eso que cuando se hacen los benchmark de .Net y php, .Net siempre resulta más rápido, y esto no es un problema de php, sino del intérprete como tal.

El JIT se llama así porque va compilando lo que se va pidiendo, no compila todo a nativo de una sola vez, pero no quiere decir que sea interpretado.

Aunque .Net también ofrece la posibilidad de ser interpretado, pero eso ya depende del compilador, un ejemplo: el intérprete de IronPython o el de F#

Un saludo!

criskapunk


MANULOMM

es una maquina virtual y segun eso va realizando todo, es un escenario igual que el de java solo que en java todo esta ByteCodes. el IL es un estandar definido en el Common Lenguage Specification por eso .net es tan abierto.

Atentamente,

Juan Manuel Lombana

Microsoft Student Partners
Microsoft Certified Professional
Medellín - Colombia