Abstract IL (Lenguaje intermedio) es un kit de desarrollo de software (SDK) que consta de bibliotecas, documentación y otras herramientas de desarrollo que se pueden utilizar para manipular el contenido de .NET framework y archivos binarios a un alto nivel.
Abstract IL se puede utilizar en el código escrito en cualquier lenguaje .Net como C#, F#, etc. Su propósito principal es leer y modificar los binarios del código escrito en lenguaje de alto nivel, cuyos detalles de otro modo serían más engorrosos para acceso en formato binario.
También se ha utilizado para lo siguiente:
- Como herramienta de compilación para código escrito en F#
- Para realizar análisis estáticos de código de verificación relacionado con la seguridad de acceso al código y para proyectos de programación orientados a aspectos.
- Una herramienta para desarrollar programas MS-ILX que contienen código escrito en lenguajes de programación funcionales.
El concepto de Abstract IL es el resultado de los esfuerzos del grupo de herramientas y principios de programación de Microsoft Research para crear una herramienta que pueda analizar, manipular y transformar los ejecutables de .NET Framework.
Con esta función, se puede desarrollar una amplia gama de aplicaciones para mejorar la seguridad, la detección de errores, las comprobaciones de seguridad dinámicas y las herramientas de perfilado/optimización de IL.
El requisito para usar Abstract IL SDK con fines de desarrollo es tener .NET Framework SDK junto con un compilador F#, ya que F# generalmente se considera la mejor herramienta para escribir código administrado (usando IL) en comparación con otros lenguajes .NET.
Para la implementación de programas .NET basados en las bibliotecas Abstract IDL, se debe proporcionar una copia de .NET Runtime Redistributable.
Además, el uso de Abstract IL evita la dependencia de tener ilasm.exe/ildasm.exe en la ruta, ya que se encarga de leer/escribir datos binarios.
La otra terminología comúnmente utilizada en relación con Abstract IL en .NET es Common IL. Common IL es la versión legible por humanos del código escrito en .NET que se puede ejecutar en un entorno compatible con Common Language Infrastructure (CLI), lo que ayuda a eliminar la dependencia de la plataforma o el tipo de CPU.
Common IL tiene como objetivo generar código que elimine la necesidad de distribuir binarios separados para diferentes plataformas y tipos de CPU, junto con funciones mejoradas de seguridad y confiabilidad.
Sin embargo, Abstract IL está diseñado para un mejor acceso a los archivos binarios de .NET.