stringtranslate.com

Infraestructura de lenguaje 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 tiempo de ejecución. entorno que permite utilizar múltiples lenguajes de alto nivel en diferentes plataformas informáticas sin tener que reescribirlos para arquitecturas específicas. Esto implica que es independiente de la plataforma. .NET Framework , .NET y Mono son implementaciones de 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 del 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 idioma , por lo que se puede hacer referencia a ella entre lenguajes y herramientas, lo que facilita el trabajo con código escrito en un lenguaje que el desarrollador no está utilizando.
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 idiomas admitidos.
Se aplican a consumidores (desarrolladores que acceden mediante programación a un componente compatible con CLS), marcos (desarrolladores que utilizan un compilador de lenguajes para crear bibliotecas compatibles con CLS) y extensores (desarrolladores que crean una herramienta como un compilador de lenguajes). o un analizador de código que crea componentes compatibles con CLS).
El Sistema de Ejecución Virtual (VES)
VES carga y ejecuta programas compatibles con CLI, utilizando los metadatos para combinar piezas de código generadas 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 extrae 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 de acuerdo con el hardware y el sistema operativo específicos.
En el estándar CLI desarrollado inicialmente por Microsoft, VES se implementa mediante Common Language Runtime (CLR).
Las bibliotecas estándar
Un conjunto de bibliotecas que proporcionan muchas funciones comunes, como lectura y escritura de archivos. Su núcleo es la Biblioteca de clases base (BCL).

Estandarización y licencias

En agosto de 2000, Microsoft , Hewlett-Packard , Intel y otros trabajaron para estandarizar la CLI. En diciembre de 2001, fue ratificado por la Ecma , seguido de la estandarización ISO / IEC en abril de 2003.

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

En 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] para que cualquiera pueda implementar de forma segura ediciones específicas de los estándares sin temer una demanda de patente por parte de Microsoft. Para implementar el estándar CLI se requiere la conformidad con uno de los perfiles definidos y admitidos del estándar, el mínimo de los cuales es el perfil del kernel. El perfil del kernel es en realidad un conjunto muy pequeño de tipos a admitir en comparación con la conocida biblioteca central de instalaciones .NET predeterminadas. Sin embargo, la cláusula de conformidad de la CLI permite ampliar 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 funciones de la CLI se pueden utilizar y ampliar, siempre y cuando 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 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

Ver también

Notas

  1. ^ ab "ISO/IEC 23271:2012 - Tecnología de la información - Infraestructura del lenguaje común (CLI)". YO ASI . Archivado desde el original el 2 de julio de 2023.
  2. ^ ab "ECMA-335". ECMA Internacional . Junio ​​de 2012. Archivado desde el original el 16 de octubre de 2023.
  3. ^ "Introducción al desarrollo avanzado de aplicaciones de la Tienda Windows utilizando HTML5 y JavaScript". Tienda de prensa de Microsoft . 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 Ecma C# y CLI". 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 aprende . Consultado el 1 de mayo de 2023 .

Referencias

enlaces externos