Representaciรณn visual, en inglรฉs, de la infraestructura de lenguaje comรบn.

La infraestructura de lenguaje comรบn (en inglรฉs Common Language Infrastructure o CLI) es una especificaciรณn estandarizada que describe un entorno virtual para la ejecuciรณn de aplicaciones, cuya principal caracterรญstica es la de permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan luego ejecutarse en mรบltiples plataformas tanto de hardware como de software sin necesidad de reescribir o recompilar su cรณdigo fuente.

Si bien el CLI tuvo sus orรญgenes en Microsoft (en principio se pensaba desarrollar un entorno de ejecuciรณn compartido para COM con el nombre de Common Object Runtime, que luego se extendiรณ y generalizรณ para dar lugar a CLI), sus especificaciones fueron llevadas ante ECMA (European Computer Manufacturers Association), una importante organizaciรณn europea de estรกndares, para su estandarizaciรณn en el aรฑo 2000. Tras un aรฑo de trabajo conjunto entre ECMA, Microsoft y otras empresas que copatrocinaron el proceso (Intel, HP, IBM y Fujitsu entre otras), el estรกndar ECMA-335 que define el entorno CLI finalmente vio la luz en diciembre de 2001. En abril del aรฑo 2003 ISO ratificรณ este estรกndar con la denominaciรณn ISO/IEC 23271:2003 .

Para comprender mejor la inclusiรณn de cada una de las partes principales de la arquitectura de CLI es interesante analizar los objetivos de diseรฑo que se plantearon desde su concepciรณn. Segรบn su especificaciรณn, la arquitectura de CLI debe:

  • Permitir escribir componentes interoperables independientemente de la plataforma subyacente y del lenguaje de programaciรณn utilizado.
  • Exponer todas las entidades programรกticas a travรฉs de un รบnico sistema unificado de tipos (en la especificaciรณn, este sistema es conocido como CTS, o Common Type System).
  • Empaquetar todos los tipos en unidades completamente autodescriptivas y portables.
  • Cargar los tipos de forma tal que se encuentren aislados unos de otros en tiempo de ejecuciรณn, pero que puedan a su vez compartir recursos.
  • Resolver dependencias entre tipos en tiempo de ejecuciรณn usando una polรญtica flexible que pueda tener en cuenta la versiรณn, atributos de localizaciรณn y polรญticas administrativas.
  • Ejecutar aplicaciones bajo la supervisiรณn de un entorno privilegiado que permita controlar y hacer cumplir polรญticas en tiempo de ejecuciรณn.
  • Diseรฑar toda la infraestructura y servicios basรกndose en metadatos extensibles, de manera tal que toda la arquitectura pueda acomodarse con poco impacto a nuevas incorporaciones y cambios.
  • Poder realizar tareas de bajo nivel, como carga de tipos en memoria, enlace con librerรญas y compilaciรณn a cรณdigo nativo sรณlo cuando sea necesario (este enfoque se conoce tรญpicamente como โ€œon demandโ€, o โ€œjust in timeโ€).
  • Proveer una serie de funcionalidades comunes mediante un grupo de librerรญas de programaciรณn que los desarrolladores puedan utilizar para construir sus aplicaciones.

Microsoft .NET de hecho es un superconjunto de esta especificaciรณn, es decir, provee todo lo necesario para cumplir con la misma y ademรกs agrega una serie de herramientas, librerรญas y funcionalidades no contempladas por ella originalmente y que proveen una enorme utilidad y flexibilidad a los desarrolladores (por ejemplo, librerรญas para la creaciรณn de aplicaciones y servicios web, acceso a motores de bases de datos, controles grรกficos, herramientas para desensamblar assemblies, debuggers, etc.). Si bien es gratuito, su cรณdigo fuente no es abierto, y es distribuido por Microsoft en versiones para sistemas operativos Windows 98 y sus sucesores รบnicamente.

La especificaciรณn del CLI estรก formada por cuatro partes:

  • Sistema comรบn de tipos, en inglรฉs Common Type System (CTS).
  • Metadatos.
  • Especificaciones de lenguaje comรบn, en inglรฉs Common Language Specification (CLS).
  • Sistema de ejecuciรณn virtual, del inglรฉs Virtual Execution System (VES).

Vรฉase tambiรฉn

editar

๐Ÿ“š Artikel Terkait di Wikipedia

Common Language Runtime

Recolecciรณn de basura Seguridad Microsoft .NET Common Language Infrastructure Common Intermediate Language Mรกquina virtual Parrot Java virtual machine Portable

Common Intermediate Language

de programaciรณn legible por humanos de mรกs bajo nivel en el Common Language Infrastructure y en el .NET Framework. Los lenguajes del .NET Framework compilan

Common Language Resources and Technology Infrastructure

Common Language Resources and Technology Infrastructure (CLARIN) es un proyecto europeo orientado a desarrollar y a reunir recursos tecnolรณgicos en relaciรณn

CLI

Call Level Interface (un API de gestiรณn de base de datos SQL) Common Language Infrastructure (una especificaciรณn del Framework Microsoft.NET) CLI (x86 instruction)

Infraestructura (desambiguaciรณn)

Datos Espaciales (IDE); a la infraestructura de lenguaje comรบn (Common Language Infrastructure o CLI), una especificaciรณn estandarizada que describe un entorno

NDoc

NDoc es un generador de documentaciรณn para Common Language Infrastructure que utiliza documentaciรณn conectable para generar varios formatos de salida diferentes

Shared source

que abarque los tรฉrminos originales. Microsoft Shared Source Common Language Infrastructure no es tampoco software libre de acuerdo a la Free Software Foundation

Boo (lenguaje de programaciรณn)

programaciรณn orientado a objetos, de tipos estรกticos para la Common Language Infrastructure con una sintaxis inspirada en Python y un รฉnfasis en la extensibilidad