fbpx
Wikipedia

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.

Representación visual, en inglés, de la infraestructura de lenguaje común.

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 co-patrocinaron 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

  •   Datos: Q835904

infraestructura, lenguaje, común, infraestructura, lenguaje, común, inglés, common, language, infrastructure, especificación, estandarizada, describe, entorno, virtual, para, ejecución, aplicaciones, cuya, principal, característica, permitir, aplicaciones, esc. La infraestructura de lenguaje comun en ingles Common Language Infrastructure o CLI es una especificacion estandarizada que describe un entorno virtual para la ejecucion de aplicaciones cuya principal caracteristica es la de permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan luego ejecutarse en multiples plataformas tanto de hardware como de software sin necesidad de reescribir o recompilar su codigo fuente Representacion visual en ingles de la infraestructura de lenguaje comun Si bien el CLI tuvo sus origenes en Microsoft en principio se pensaba desarrollar un entorno de ejecucion compartido para COM con el nombre de Common Object Runtime que luego se extendio y generalizo para dar lugar a CLI sus especificaciones fueron llevadas ante ECMA European Computer Manufacturers Association una importante organizacion europea de estandares para su estandarizacion en el ano 2000 Tras un ano de trabajo conjunto entre ECMA Microsoft y otras empresas que co patrocinaron el proceso Intel HP IBM y Fujitsu entre otras el estandar ECMA 335 que define el entorno CLI finalmente vio la luz en diciembre de 2001 En abril del ano 2003 ISO ratifico este estandar con el denominacion ISO IEC 23271 2003 Para comprender mejor la inclusion de cada una de las partes principales de la arquitectura de CLI es interesante analizar los objetivos de diseno que se plantearon desde su concepcion Segun su especificacion la arquitectura de CLI debe Permitir escribir componentes interoperables independientemente de la plataforma subyacente y del lenguaje de programacion utilizado Exponer todas las entidades programaticas a traves de un unico sistema unificado de tipos en la especificacion 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 ejecucion pero que puedan a su vez compartir recursos Resolver dependencias entre tipos en tiempo de ejecucion usando una politica flexible que pueda tener en cuenta la version atributos de localizacion y politicas administrativas Ejecutar aplicaciones bajo la supervision de un entorno privilegiado que permita controlar y hacer cumplir politicas en tiempo de ejecucion Disenar toda la infraestructura y servicios basandose 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 librerias y compilacion a codigo nativo solo cuando sea necesario este enfoque se conoce tipicamente como on demand o just in time Proveer una serie de funcionalidades comunes mediante un grupo de librerias de programacion que los desarrolladores puedan utilizar para construir sus aplicaciones Microsoft NET de hecho es un super conjunto de esta especificacion es decir provee todo lo necesario para cumplir con la misma y ademas agrega una serie de herramientas librerias y funcionalidades no contempladas por ella originalmente y que proveen una enorme utilidad y flexibilidad a los desarrolladores por ejemplo librerias para la creacion de aplicaciones y servicios web acceso a motores de bases de datos controles graficos herramientas para desensamblar assemblies debuggers etc Si bien es gratuito su codigo fuente no es abierto y es distribuido por Microsoft en versiones para sistemas operativos Windows 98 y sus sucesores unicamente La especificacion del CLI esta formada por cuatro partes Sistema comun de tipos en ingles Common Type System CTS Metadatos Especificaciones de lenguaje comun en ingles Common Language Specification CLS Sistema de ejecucion virtual del ingles Virtual Execution System VES Vease tambien EditarMicrosoft NET ECMA Datos Q835904 Obtenido de https es wikipedia org w index php title Infraestructura de lenguaje comun amp oldid 131257826, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos