Common Intermediate Language (anteriormente llamado Microsoft Intermediate Language o MSIL) es el lenguaje de programación legible por humanos de más bajo nivel en el Common Language Infrastructure y en el .NET Framework. Los lenguajes del .NET Framework (C#,Visual Basic :Net) compilan a CIL, el cual a su vez es ensamblado en bytecode.
CIL es un lenguaje ensamblador orientado a objetos, y está basado en pilas. Es ejecutado por una máquina virtual. Los lenguajes .NET principales son C#, Visual Basic .NET, C++/CLI, y J#.
CIL fue conocido originalmente como Microsoft Intermediate Language (MSIL) durante las versiones de prueba de los lenguajes .NET. Debido a la estandarización de C# y CLI, el bytecode es ahora conocido oficialmente como CIL. Debido a esto, CIL es frecuentemente llamado MSIL. Es posible ejecutar este lenguaje en plataformas GNU/Linux gracias al Proyecto Mono, que implementa una maquina virtual similar a la de .NET pero de software libre.
Durante la compilación de los lenguajes de programación .NET, el código fuente es convertido a código CIL en lugar de código maquina especifico del procesador. CIL es un conjunto de instrucciones independientes de la plataforma y CPU que puede ser ejecutado en cualquier ambiente que soporte el .NET Framework.
La compilación en tiempo de ejecución (JIT, just-in-time) involucra convertir el código CIL en código inmediatamente ejecutable por la CPU. La compilación JIT proporciona optimización especifica para la CPU, seguridad de tipos en tiempo de ejecución, y verificación de ensamblados.
Aquí os dejo el código de un hola mundo en CIL:
.assembly Hello {}
.method public static void Main() cil managed
{
.entrypoint
.maxstack 1
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
Y el código C# que generaría este ensamblado:
class Hello
{
static void Main()
{
System.Console.WriteLine("Hello, world!");
}
}
No hay comentarios:
Publicar un comentario