fbpx
Wikipedia

Common Intermediate Language

Common Intermediate Language (CIL, pronunciado "sil" o "kil") (anteriormente llamado Microsoft Intermediate Language o MSIL) es el lenguaje 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 a CIL. CIL es un lenguaje ensamblador orientado a objetos, y está basado en pilas. Es ejecutado por una máquina virtual. Los lenguajes .NET principales son C#, Visual Basic .NET, C++/CLI, y J#.

CIL fue conocido originalmente como Microsoft Intermediate Language (MSIL) durante las versiones de prueba de los lenguajes .NET. Debido a esto, CIL es frecuentemente llamado MSIL. Es posible ejecutar este lenguaje en plataformas GNU/Linux gracias al Proyecto Mono, que implementa una máquina virtual similar a la de .NET pero de software libre.

Información general

Durante la compilación de los lenguajes de programación .NET, el código fuente es convertido a código CIL en lugar de código objeto específico del procesador o de la plataforma. CIL es un conjunto de instrucciones independientes de la plataforma y que puede ser ejecutado en cualquier CPU.

Instrucciones CIL

El código intermedio de CIL incluye un conjunto de instrucciones para las siguientes grupos de tareas:

Compilación en tiempo de ejecución

La compilación en tiempo de ejecución (JIT, just-in-time) involucra convertir el código intermedio en código inmediatamente ejecutable por la CPU. La conversión es realizada gradualmente durante la ejecución del programa. La compilación JIT proporciona optimización especifica para el ambiente, seguridad de tipos en tiempo de ejecución, y verificación de ensamblados. Para cumplir con esto, el compilador JIT examina los metadatos del ensamblado en busca de accesos ilegales y maneja las violaciones apropiadamente.

Generador de imágenes nativas

El generador de imágenes nativas (NGEN) produce una imagen binaria nativa para el entorno actual. El bytecode es omitido completamente o convertido en instrucciones nativas de CPU antes de la ejecución. Esto elimina la sobrecarga del JIT a costo de la portabilidad; cuando una imagen generada por NGEN es ejecutada en un entorno no compatible, el .NET framework automáticamente utilizara el compilador JIT.

Se pretende que NGEN haga la ejecución de ensamblados más rápida al eliminar el proceso de compilación JIT en tiempo de ejecución, pero en algunos casos, esto tiene efectos adversos debido a la optimización hecha por el optimizador JIT. Por este hecho, se sugiere usar NGEN solo después de medir el rendimiento de la aplicación antes y después de usarlo.

Compilación a .NET Native en la nube

Desde abril de 2014 Microsoft comenzó a desarrollar la tecnología en la nube necesaria para que todas las aplicaciones en su tienda de aplicaciones universal se compilaran mediante .NET Native a código nativo según cada dispositivo.[1]​ Esto mejorará enormemente el rendimiento de Aplicaciones Universales en Windows 10 tanto para teléfonos como para PCs, permitiendo que estas abran y reanuden un 60% más rápido y usen un 20% menos de memoria, permitiendo al sistema menores tiempos de respuesta.[2]

Esto mejorará el rendimiento enormemente, especialmente en dispositivos donde el consumo de memoria y procesador es crítico, como por ejemplo los dispositivos que actualmente ejecutan Windows Phone 8.1 y que actualizarán a Windows 10 Mobile a finales del año 2015.[3]

Metadato

Los metadatos son información acerca de las clases compiladas. Al igual que los tipos de biblioteca en el Component Object Model, permite a las aplicaciones proporcionar y descubrir interfaces, clases, tipos, métodos y campos en el ensamblado. El proceso de lectura de metadatos es llamado reflexión.

Ejecución de CIL

  • El código fuente es convertido a Common Intermediate Language y un ensamblado .NET es creado.
  • Hasta la ejecución de un ensamblado .NET, su CIL es pasado a través del compilador JIT del Common Language Runtime para generar código nativo. (La compilación NGEN elimina este paso en tiempo de ejecución.)
  • El código nativo es ejecutado por el procesador de la computadora.

Referencias

  1. «Inside .NET Native» (en inglés). Channel 9. 2 de abril de 2014. Consultado el 13 de octubre de 2015. 
  2. «Microsoft .NET Native» (en inglés). Microsoft. 10 de julio de 2015. Consultado el 13 de octubre de 2015. 
  3. «La actualización a Windows 10 Mobile llegaría en noviembre según Lumia España». Microsoft Insider. 8 de octubre de 2015. Consultado el 13 de octubre de 2015. 

Enlaces externos

  • Programa Hola Mundo en CIL (en inglés)
  • Introducción a CIL por Kenny Kerr (llamado MSIL en el tutorial) (en inglés)
  • Estándar Common Language Infrastructure (ECMA-335) (en inglés)
  • (en inglés)
  •   Datos: Q263544

common, intermediate, language, pronunciado, anteriormente, llamado, microsoft, intermediate, language, msil, lenguaje, programación, legible, humanos, más, bajo, nivel, common, language, infrastructure, framework, lenguajes, framework, compilan, lenguaje, ens. Common Intermediate Language CIL pronunciado sil o kil anteriormente llamado Microsoft Intermediate Language o MSIL es el lenguaje de programacion legible por humanos de mas bajo nivel en el Common Language Infrastructure y en el NET Framework Los lenguajes del NET Framework compilan a CIL CIL es un lenguaje ensamblador orientado a objetos y esta basado en pilas Es ejecutado por una maquina virtual Los lenguajes NET principales son C Visual Basic NET C CLI y J CIL fue conocido originalmente como Microsoft Intermediate Language MSIL durante las versiones de prueba de los lenguajes NET Debido a esto CIL es frecuentemente llamado MSIL Es posible ejecutar este lenguaje en plataformas GNU Linux gracias al Proyecto Mono que implementa una maquina virtual similar a la de NET pero de software libre Indice 1 Informacion general 2 Instrucciones CIL 3 Compilacion en tiempo de ejecucion 4 Generador de imagenes nativas 5 Compilacion a NET Native en la nube 6 Metadato 7 Ejecucion de CIL 8 Referencias 9 Enlaces externosInformacion general EditarDurante la compilacion de los lenguajes de programacion NET el codigo fuente es convertido a codigo CIL en lugar de codigo objeto especifico del procesador o de la plataforma CIL es un conjunto de instrucciones independientes de la plataforma y que puede ser ejecutado en cualquier CPU Instrucciones CIL EditarEl codigo intermedio de CIL incluye un conjunto de instrucciones para las siguientes grupos de tareas Carga y almacenamiento Aritmeticas Conversion de tipos Creacion y manipulacion de objetos Operadores de pila push pop Transferencia de control saltos Invocacion y retorno de metodos Manejo de excepciones Concurrencia basada en monitoresCompilacion en tiempo de ejecucion EditarLa compilacion en tiempo de ejecucion JIT just in time involucra convertir el codigo intermedio en codigo inmediatamente ejecutable por la CPU La conversion es realizada gradualmente durante la ejecucion del programa La compilacion JIT proporciona optimizacion especifica para el ambiente seguridad de tipos en tiempo de ejecucion y verificacion de ensamblados Para cumplir con esto el compilador JIT examina los metadatos del ensamblado en busca de accesos ilegales y maneja las violaciones apropiadamente Generador de imagenes nativas EditarEl generador de imagenes nativas NGEN produce una imagen binaria nativa para el entorno actual El bytecode es omitido completamente o convertido en instrucciones nativas de CPU antes de la ejecucion Esto elimina la sobrecarga del JIT a costo de la portabilidad cuando una imagen generada por NGEN es ejecutada en un entorno no compatible el NET framework automaticamente utilizara el compilador JIT Se pretende que NGEN haga la ejecucion de ensamblados mas rapida al eliminar el proceso de compilacion JIT en tiempo de ejecucion pero en algunos casos esto tiene efectos adversos debido a la optimizacion hecha por el optimizador JIT Por este hecho se sugiere usar NGEN solo despues de medir el rendimiento de la aplicacion antes y despues de usarlo Compilacion a NET Native en la nube EditarDesde abril de 2014 Microsoft comenzo a desarrollar la tecnologia en la nube necesaria para que todas las aplicaciones en su tienda de aplicaciones universal se compilaran mediante NET Native a codigo nativo segun cada dispositivo 1 Esto mejorara enormemente el rendimiento de Aplicaciones Universales en Windows 10 tanto para telefonos como para PCs permitiendo que estas abran y reanuden un 60 mas rapido y usen un 20 menos de memoria permitiendo al sistema menores tiempos de respuesta 2 Esto mejorara el rendimiento enormemente especialmente en dispositivos donde el consumo de memoria y procesador es critico como por ejemplo los dispositivos que actualmente ejecutan Windows Phone 8 1 y que actualizaran a Windows 10 Mobile a finales del ano 2015 3 Metadato EditarArticulo principal Metadatos NET Los metadatos son informacion acerca de las clases compiladas Al igual que los tipos de biblioteca en el Component Object Model permite a las aplicaciones proporcionar y descubrir interfaces clases tipos metodos y campos en el ensamblado El proceso de lectura de metadatos es llamado reflexion Ejecucion de CIL EditarEl codigo fuente es convertido a Common Intermediate Language y un ensamblado NET es creado Hasta la ejecucion de un ensamblado NET su CIL es pasado a traves del compilador JIT del Common Language Runtime para generar codigo nativo La compilacion NGEN elimina este paso en tiempo de ejecucion El codigo nativo es ejecutado por el procesador de la computadora Referencias Editar Inside NET Native en ingles Channel 9 2 de abril de 2014 Consultado el 13 de octubre de 2015 Microsoft NET Native en ingles Microsoft 10 de julio de 2015 Consultado el 13 de octubre de 2015 La actualizacion a Windows 10 Mobile llegaria en noviembre segun Lumia Espana Microsoft Insider 8 de octubre de 2015 Consultado el 13 de octubre de 2015 Enlaces externos EditarPrograma Hola Mundo en CIL en ingles Introduccion a CIL por Kenny Kerr llamado MSIL en el tutorial en ingles Estandar Common Language Infrastructure ECMA 335 en ingles Speed NGen Revs Up Your Performance With Powerful New Features MSDN Magazine April 2005 en ingles Datos Q263544Obtenido de https es wikipedia org w index php title Common Intermediate Language amp oldid 125207481, 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