Definición - ¿Qué significa Lenguaje Intermedio (IL)?
El lenguaje intermedio (IL) es un lenguaje de programación orientado a objetos diseñado para que lo utilicen los compiladores de .NET Framework antes de la compilación estática o dinámica en código máquina. El IL es utilizado por .NET Framework para generar código independiente de la máquina como resultado de la compilación del código fuente escrito en cualquier lenguaje de programación .NET.
IL es un lenguaje ensamblador basado en pilas que se convierte a código de bytes durante la ejecución de una máquina virtual. Está definido por la especificación de Common Language Infrastructure (CLI). Como IL se utiliza para la generación automática de código compilado, no es necesario aprender su sintaxis.
Este término también se conoce como lenguaje intermedio de Microsoft (MSIL) o lenguaje intermedio común (CIL).
Techinfo explica el lenguaje intermedio (IL)
Con la ayuda de un compilador JIT adecuado, el código IL se puede ejecutar en cualquier arquitectura de computadora compatible con el compilador JIT. A diferencia de los intérpretes, la compilación JIT proporciona un mejor rendimiento, conserva la memoria y ahorra tiempo durante la inicialización de la aplicación. IL habilita la función de independencia de la plataforma y la CPU del marco .NET, al permitir que el código fuente compilado se ejecute en cualquier entorno que admita la especificación CLI.
La verificación de la seguridad del código, para el código IL, proporciona mayor seguridad y confiabilidad que los archivos ejecutables compilados de forma nativa. Los metadatos, que describen el código MSIL en el ejecutable portátil, eliminan la necesidad de bibliotecas de tipos y archivos de lenguaje de definición intermedia como se usaba en la tecnología del Modelo de objetos componentes (COM). Combinado con metadatos y un sistema de tipo común, IL constituye el medio para integrar módulos escritos en diferentes idiomas en una sola aplicación, permitiendo así la independencia del idioma.
Aunque IL es similar al código de bytes de Java en su uso por los compiladores, se diferencia de este último en que está diseñado para la independencia de la plataforma y del lenguaje. También se diferencia en que se compila y no se interpreta.
Con IL se incluyen dos tipos de conjuntos de instrucciones; instrucciones base, similares a las instrucciones nativas de la CPU, e instrucciones del modelo de objeto utilizadas por el lenguaje de alto nivel. IL incluye todas las instrucciones necesarias para cargar, almacenar, inicializar y llamar a métodos en objetos. También incluye operaciones aritméticas y lógicas, flujo de control, acceso directo a la memoria, manejo de excepciones y otras operaciones. A diferencia del formato de archivo de objeto común utilizado para el contenido ejecutable en el ejecutable portátil tradicional de Microsoft, el ejecutable portátil generado, después de la compilación del código administrado, contiene tanto instrucciones IL como metadatos.
Las dos herramientas asociadas con el código IL son MSIL Assembler (Ilasm.exe) y MSIL Disassemble (Ildasm.exe). El primero genera un archivo ejecutable portátil a partir del código IL y permite ver el código IL en formato legible por humanos, mientras que el segundo convierte un archivo ejecutable portátil de nuevo en un archivo de texto, para su visualización y modificación. Ambos se instalan automáticamente como parte de Visual Studio.
Esta definición se escribió en el contexto de .NET