¿Qué significa Common Language Runtime?
Common Language Runtime (CLR) es un entorno de ejecución gestionado que forma parte del marco .NET de Microsoft. CLR gestiona la ejecución de programas escritos en diferentes lenguajes soportados.
El CLR transforma el código fuente en una forma de bytecode conocida como Lenguaje Intermedio Común (CIL). En tiempo de ejecución, el CLR gestiona la ejecución del código CIL.
Diccionario Techopedia: Common Language Runtime
Los desarrolladores escriben el código en un lenguaje .NET compatible, como C# o VB.Net. A continuación, el compilador .NET lo convierte en código CIL. Durante el tiempo de ejecución, el CLR convierte el código CIL en algo comprensible para el sistema operativo. Alternativamente, el código CIL puede transformarse en código nativo utilizando el generador de imágenes nativo (NGEN).
Los compiladores de lenguajes almacenan metadatos que describen los miembros, tipos y referencias del código compilado. El CLR utiliza los metadatos para disponer instancias en memoria, localizar y cargar clases, aplicar la seguridad, establecer límites de contexto en tiempo de ejecución y generar código nativo.
El CLR permite utilizar fácilmente distintos lenguajes compatibles para lograr un objetivo común. De este modo, los desarrolladores pueden elegir con flexibilidad su propio lenguaje de programación, siempre que sea compatible con el marco .NET. Con CLR, .NET puede gestionar la ejecución de todos los lenguajes soportados transformándolos en bytecode y luego en código nativo para la plataforma elegida.
El uso de NGEN hace que las ejecuciones posteriores sean más rápidas porque CLR no tendrá que transformar el bytecode en código nativo cada vez. Aunque otras implementaciones de CLI pueden ejecutarse en plataformas distintas de Windows, la implementación de CLI de Microsoft sólo está pensada para ejecutarse en la plataforma Windows.