Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: criskapunk en 9 Noviembre 2010, 14:30 PM

Título: C#: ¿Compilado-interpretado? (Solucionado)
Publicado por: criskapunk en 9 Noviembre 2010, 14:30 PM
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 ;)
Título: Re: C#: ¿Compilado-interpretado?
Publicado por: [D4N93R] en 9 Noviembre 2010, 14:56 PM
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!
Título: Re: C#: ¿Compilado-interpretado?
Publicado por: criskapunk en 9 Noviembre 2010, 16:10 PM
Muchas gracias [D4N93R].

Un saludo ;)
Título: Re: C#: ¿Compilado-interpretado? (Solucionado)
Publicado por: MANULOMM en 9 Noviembre 2010, 16:14 PM
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