Infraestructura del lenguaje común

Common Language Infrastructure (CLI) es una especificación abierta desarrollada por Microsoft y estandarizada por la ISO y ECMA que describe el código ejecutable y ambiente de tiempo de ejecución que forman el corazón de Microsoft.NET Marco y las realizaciones de la fuente libres y abiertas Mono y Portable.NET. La especificación define un ambiente que permite que lenguas de alto nivel múltiples se usen en plataformas del ordenador diferentes sin volverse a escribir para arquitecturas específicas.

Descripción

Entre otras cosas, la especificación CLI describe los cuatro aspectos siguientes:

Common Type System (CTS): Un juego de tipos de datos y operaciones que son compartidas por todos los lenguajes de programación CTS-dóciles.

Metadata: la información sobre la estructura del programa es el agnóstico de la lengua, de modo que se pueda referir entre lenguas e instrumentos, haciendo fácil trabajar con el código escrito en una lengua que no usa.

Common Language Specification (CLS): Un juego de reglas bajas con las cuales cualquier lengua que apunta el CLI se debería conformar a fin de interactuar con otras lenguas CLS-dóciles. Las reglas de CLS definen un subconjunto del Sistema del Tipo Común.

Virtual Execution System (VES): El VES carga y ejecuta programas CLI-compatibles, usando el metadata para combinar piezas por separado generadas del código en el tiempo de ejecución.

Todas las lenguas compatibles compilan a Common Intermediate Language (CIL), que es una lengua intermedia que se abstrae del hardware de la plataforma. Cuando el código se ejecute, VES específico para la plataforma compilará el CIL al lenguaje de máquina según el hardware específico y sistema operativo.

Estandarización y licenciamiento

En el agosto de 2000, Microsoft, Hewlett-Packard, Intel y los otros trabajaron para estandarizar CLI. Hacia el diciembre de 2001, fue ratificado por el ECMA, con la estandarización de la ISO después en el abril de 2003.

Microsoft y sus compañeros sostienen patentes para CLI. ECMA y la ISO requieren que todas las patentes esenciales para la realización se pongan a disposición en "términos de razonable y no discriminatorio (RAND)", pero la interpretación de esto ha llevado a mucha controversia, en particular en caso del Mono.

Desde julio de 2009. Microsoft se presentó C# y CLI bajo la Promesa de la Comunidad, por tanto cualquiera puede poner en práctica sin peligro aquellos estándares sin temer un pleito evidente.

Apoyo a lenguas dinámicas

La Infraestructura del Lenguaje común actualmente no tiene apoyo incorporado a lenguas Dinámicamente escritas a máquina porque la Lengua Intermedia Común existente estáticamente se escribe a máquina.

El Tiempo de ejecución de la Lengua Dinámico es un esfuerzo en curso de traer este apoyo al CLR.

Realizaciones

Notas



Buscar