Monday, October 5, 2009

Common Language Runtime


















Este es (léase como Adela Micha) el estandarte, la señal honorífica, el distintivo, la insignia del .Net Framework. Pretende reunir las ventajas de lenguajes como C++ y VB en uno solo. CLR es el verdadero núcleo del .net framework, es aquí donde se CARGAN TODAS las aplicaciones desarrolladas en los distintos lenguajes, ampliando así el conjunto de servicios del sistema operativo (el de la compañía de las ventanas).

La herramienta de desarrollo compila el código fuente en cualquiera de los lenguajes soportados por .NET en un código intermedio (CIL o MSIL), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificación CLS (Common Language Specification) que determina las reglas necesarias para crear el código MSIL compatible con el CLR.

Para ejecutarse se necesita un segundo paso. Un compilador JIT (Just-in-time) es el que genera el código máquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue independencia de la plataforma de hardware. La compilación JIT la realiza el CLR a medida que el programa invoca métodos. El código ejecutable obtenido se almacena en la memoria caché de la computadora, siendo recopilado de nuevo sólo en el caso de producirse algún cambio en el código fuente.

Características.

Es el encargado de proveer lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta:
  • Cargador de clases: permite cargar en memoria las clases.
  • Compilador MSIL a nativo: transforma codigo intermedio de alto nivel independiente del hardware que lo ejecuta a código máquina del dispositivo que lo ejecuta.
  • Administrador de código: coordina toda la operación de los distintos subsistemas del Common Language Runtime.
  • Recolector de basura: elimina de memoria objetos no utilizados
  • Motor de seguridad: Administra la seguridad del código que se ejecuta.
  • Motor de depuración: permite hacer un seguimiento de la ejecución del código aún cuando se utilicen lenguajes distintos.
  • Verificador de tipos: controla que las variables de la aplicación usen el área de memoria que tienen asignado.
  • Administrador de excepciones: maneja los errores que se producen durante la ejecución del código.
  • Soporte de multiproceso (hilos): permite ejecutar código en forma paralela.
  • Empaquetador COM: coordina la comunicación con los componentes COM para que puedan ser usados en el .Net Framework, ai mas adelante se mencionara sobre estos.
  • Soporte de la biblioteca de clases base: interfaz con las clases base del .Net Framework. Esto quiere decir que existen tipos de estructuras como es la de Java y la de .Net.

No comments:

Post a Comment