stringtranslate.com

Infraestructura lingüística común

La infraestructura de lenguaje común ( CLI ) es una especificación abierta y un estándar técnico desarrollado originalmente por Microsoft y estandarizado por ISO / IEC ( ISO/IEC 23271 ) y Ecma International ( ECMA 335 ) [1] [2] que describe el código ejecutable y un entorno de ejecución que permite utilizar múltiples lenguajes de alto nivel en diferentes plataformas informáticas sin tener que reescribirse para arquitecturas específicas. Esto implica que es independiente de la plataforma. .NET Framework , .NET y Mono son implementaciones de la CLI. El formato de metadatos también se utiliza para especificar las definiciones de API expuestas por Windows Runtime . [3] [4]

Descripción general

Descripción visual de la infraestructura de lenguaje común (CLI)

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

El sistema de tipos comunes (CTS)
Un conjunto de tipos de datos y operaciones que comparten todos los lenguajes de programación compatibles con CTS .
Los metadatos
La información sobre la estructura del programa es independiente del lenguaje , de modo que se puede hacer referencia a ella entre lenguajes y herramientas, lo que facilita trabajar con código escrito en un lenguaje que el desarrollador no está usando.
La especificación del lenguaje común (CLS)
Las CLS, un subconjunto de las CTS, son reglas que deben cumplir los componentes desarrollados con/para los lenguajes compatibles.
Se aplican a consumidores (desarrolladores que acceden mediante programación a un componente compatible con CLS), marcos (desarrolladores que utilizan un compilador de lenguaje para crear bibliotecas compatibles con CLS) y extensores (desarrolladores que crean una herramienta como un compilador de lenguaje o un analizador de código que crea componentes compatibles con CLS).
El sistema de ejecución virtual (VES)
El VES carga y ejecuta programas compatibles con CLI, utilizando los metadatos para combinar fragmentos de código generados por separado en tiempo de ejecución.
Todos los lenguajes compatibles se compilan en lenguaje intermedio común (CIL), que es un lenguaje intermedio que se abstrae del hardware de la plataforma. Cuando se ejecuta el código, el VES específico de la plataforma compilará el CIL en el lenguaje de máquina según el hardware y el sistema operativo específicos.
En el estándar CLI desarrollado inicialmente por Microsoft, el VES se implementa mediante Common Language Runtime (CLR).
Las bibliotecas estándar
Un conjunto de bibliotecas que proporcionan muchas funciones comunes, como la lectura y escritura de archivos. Su núcleo es la biblioteca de clases base (BCL).

Normalización y licencias

En agosto de 2000, Microsoft , Hewlett-Packard , Intel y otros trabajaron para estandarizar la CLI. En diciembre de 2001, la ECMA la ratificó y en abril de 2003 se estandarizó según la ISO / IEC .

Microsoft y sus socios poseen patentes para CLI. ECMA e ISO/IEC exigen que todas las patentes esenciales para la implementación se pongan a disposición en " términos razonables y no discriminatorios (RAND) ". Es común que las licencias RAND requieran el pago de regalías, lo que podría ser motivo de preocupación con Mono . A enero de 2013, ni Microsoft ni sus socios han identificado ninguna patente esencial para las implementaciones de CLI sujeta a los términos RAND.

A partir de julio de 2009, [5] Microsoft agregó C# y CLI a la lista de especificaciones a las que se aplica la Promesa de la Comunidad de Microsoft , [6] de modo que cualquiera puede implementar de manera segura ediciones específicas de los estándares sin temor a una demanda de patentes de Microsoft. Para implementar el estándar CLI se requiere conformidad con uno de los perfiles admitidos y definidos del estándar, el mínimo de los cuales es el perfil de kernel. El perfil de kernel es en realidad un conjunto muy pequeño de tipos para admitir en comparación con la biblioteca central bien conocida de las instalaciones .NET predeterminadas. Sin embargo, la cláusula de conformidad de la CLI permite extender el perfil admitido agregando nuevos métodos y tipos a las clases, así como derivando de nuevos espacios de nombres. Pero no permite agregar nuevos miembros a las interfaces. Esto significa que las características de la CLI se pueden usar y extender, siempre que la implementación del perfil conforme no cambie el comportamiento de un programa destinado a ejecutarse en ese perfil, al tiempo que permite un comportamiento no especificado de los programas escritos específicamente para esa implementación.

En 2012, Ecma e ISO/IEC publicaron la nueva edición del estándar CLI. [1] [2]

Implementaciones

Véase también

Notas

  1. ^ ab "ISO/IEC 23271:2012 - Tecnología de la información - Infraestructura de lenguaje común (CLI)". ISO . Archivado desde el original el 2 de julio de 2023.
  2. ^ ab "ECMA-335". ECMA International . Junio ​​de 2012. Archivado desde el original el 16 de octubre de 2023.
  3. ^ "Introducción al desarrollo avanzado de aplicaciones para la Tienda Windows con HTML5 y JavaScript". Microsoft Press Store . 15 de octubre de 2013. Archivado desde el original el 30 de marzo de 2023.
  4. ^ de Icaza, Miguel (15 de septiembre de 2011). «WinRT desmitificado». Archivado desde el original el 30 de noviembre de 2023.
  5. ^ Galli, Peter (6 de julio de 2009). "Los estándares de C# y CLI de ECMA". Puerto 25. Archivado desde el original el 9 de julio de 2009. Consultado el 26 de septiembre de 2009 .
  6. ^ v-alje (16 de marzo de 2023). «[MS-DEVCENTLP]: Promesa de la comunidad de Microsoft». Microsoft Learn . Consultado el 1 de mayo de 2023 .

Referencias

Enlaces externos