Infraestructura de lenguaje común

Infraestructura de lenguaje común
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. Luego de un año de trabajo conjunto entre ECMA, Microsoft y otras empresas que co-sponsorearon 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 el 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 ínteroperables 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 auto descriptivas 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 súper conjunto 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


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Infraestructura de Lenguaje Común — Saltar a navegación, búsqueda La infraestructura de lenguaje común (Common Language Infrastructure, CLI) es una especificación estandarizada que describe un entorno virtual para la ejecución de aplicaciones, cuya principal característica es la de …   Wikipedia Español

  • Infraestructura de Lenguaje Común — La Infraestructura de Lenguaje Común, más conocida como CLI del inglés Common Language Infrastructure, es una especificación abierta publicada por el ECMA pero desarrollada por Microsoft para definir un entorno de ejecución comúm para todos los… …   Enciclopedia Universal

  • Lenguaje de programación — Captura de la microcomputadora Commodore PET 32 mostrando un programa en el lenguaje de programación BASIC, bajo el emulador VICE en una distribución GNU/Linux. Un lenguaje de programación es un idioma artificial diseñado para expresar… …   Wikipedia Español

  • Sentido común — Para la política oficial de la Wikipedia, véase Wikipedia:Usa el sentido común. La expresión sentido común describe las creencias o proposiciones que benefician a la mayoría de una sociedad (familia, clan, pueblo o nación). Contenido 1… …   Wikipedia Español

  • Proyecto Mono — Saltar a navegación, búsqueda Mono Archivo:C:mono.jpg Desarrollador Novell http://www.mono project.com …   Wikipedia Español

  • Microsoft .NET — Para el dominio de Internet, véase .net. Para la televisión pública de Grecia, véase NET (Grecia). Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria …   Wikipedia Español

  • Microsoft Visual Studio — Desarrollador Microsoft microsoft.com/spain/visualstudio Información general Lanzamiento 30 de julio de 1998 …   Wikipedia Español

  • Shared source — Fuente Compartida es un término para uno de los mecanismos legales de Microsoft para la distribución de código fuente de software. La Iniciativa de Fuente Compartida de Microsoft, lanzada en mayo de 2001,[1] incluye un espectro de tecnologías y… …   Wikipedia Español

  • LayerD — es un framework de desarrollo de software compuesto por lenguajes de alto nivel, un lenguaje común denominado Zoe y con un diseño completamente modular. El objetivo principal del framework es desarrollar herramientas que permitan implementar… …   Wikipedia Español

  • Historia de Internet — La historia de Internet se remonta al temprano desarrollo de las redes de comunicación. La idea de una red de computadoras diseñada para permitir la comunicación general entre usuarios de varias computadoras sea tanto desarrollos tecnológicos… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”