¿Qué es la infraestructura del lenguaje común?

La infraestructura de lenguaje común (CLI) es un conjunto de estándares técnicos internacionales que promueven la interoperabilidad de los lenguajes de programación de computadoras. CLI también permite que muchos lenguajes de alto nivel desarrollen aplicaciones que son independientes de plataformas y arquitecturas. Hay más de 30 lenguajes de programación agrupados para este propósito y hacen uso de cuatro divisiones de especificaciones de programación de lenguaje común para cumplir con CLI.

Haciendo uso de lo que se llama un sistema de tipos comunes (CTS), usando un conjunto de tipos de datos y operaciones e información de metadatos en estructuras de programación, permite la escritura de código en varios idiomas. La CLI compila los lenguajes en un lenguaje intermedio común (CIL) y, desde CIL, comunica los aspectos de la aplicación al lenguaje de máquina ensamblador, que se ocupa del hardware. Además, existen especificaciones de lenguaje común (CLS), que son reglas base establecidas para su uso por cualquier idioma que busque interoperación, y un sistema de ejecución virtual (VES) para la carga, ejecución y generación de códigos de ejecución para todos los programas compatibles con CLI. .

La mayoría de los lenguajes compatibles con CLI se compilan directamente en CIL mediante el uso de Common Language Runtime (CLR). Después de ser compilado y almacenado en caché, un compilador justo a tiempo se apropia del código de máquina de la arquitectura existente. La construcción del código de la máquina de ensamblaje también se puede construir antes de CLR con un compilador anticipado.

Para que los lenguajes compatibles con CLI aprovechen la especificidad de los objetos, la infraestructura de lenguaje común especifica que los objetos solo necesitan exponer las características que tienen en común con los otros lenguajes compatibles con CLI cuando se llaman. Se dice que los componentes de código desarrollados para usar solo tipos de datos aceptados en el CTS son compatibles con CLI y accesibles para todos los demás lenguajes compatibles con CLI. Además, cualquier construcción de un lenguaje que no pueda ser verificado rápidamente por el tipo de seguridad del código se excluye del CLS, por lo que solo se puede decir que los códigos verificables cumplen con CLS.

Algunas funciones de programación son comunes tanto a los compiladores como a los desarrolladores y otras están disponibles solo para los compiladores. La lista es extensa y está llena de funciones útiles. Una característica disponible solo para los compiladores es: palabras clave que proporcionan identificadores de referencia y que pueden anular métodos virtuales con nombres que son palabras clave. Una característica disponible tanto para los compiladores como para los desarrolladores incluye: características modificadoras que dicen que una propiedad y sus evaluadores deben ser todos «estáticos», todos deben ser «virtuales», todos deben ser «instancia».

Los programas de implementación son para computadoras de escritorio, servidores, dispositivos móviles y consolas de juegos. Los programas de mejora de la visión por computadora y los kits de herramientas de máquinas virtuales de bajo nivel también se desarrollan a partir de lenguajes compatibles con la infraestructura de lenguaje común. Los tiempos de ejecución de la infraestructura de lenguaje común asignan los recursos del sistema y llaman a los dispositivos periféricos de manera eficiente, aunque son independientes de la plataforma.