Beruflich Dokumente
Kultur Dokumente
Sección: A
Carnet: 200611078
1
Índice
Tema Pág.
Introducción 3
Objetivos 4
Marco Teórico
XNA 6
.Net Framework 6
El Proceso de Compilación 8
Ejecución de Código 10
Capas de XNA 11
Arquitectura Windows 11
Estructura de CLR 13
Analizando XNA 14
Conclusiones 16
Recomendaciones 17
Referencias Bibliográficas 18
2
Introducción
Pero para lograr esto, antes debió existir alguna base para brindar soporte a esta innovadora
idea, y justamente la encontraron en la plataforma de .Net Framework, y es aquí donde
comienza todo, porque sobre esta plataforma se ejecutan los diferentes lenguajes de
programación incluidos en el Visual Studio.
3
Objetivos
General
Observar y analizar el funcionamiento de una plataforma de programación y el
proceso que esta realiza para analizar y llevar hasta un lenguaje de bajo de nivel de
tal modo que sea compresible para el CPU.
Especifico
Entender y comprender como funciona el Proceso de Ejecución Administrativa, que
es la forma en la cual se desenvuelve la plataforma de .NET, además de ver que
procesos están involucrados en cada una de las diferentes fases y etapas por la cual
pasa los lenguajes sobre dicha plataforma.
4
Planteamiento del Problema
Que es XNA: sus siglas No son un Acrónimo, quiere decir que no forman ninguna palabra.
XNA, es una Interfase de Programación desarrollada por Microsoft para el desarrollo de
videojuegos para las plataformas Xbox 360, Zune y Windows.
El propósito de esta investigación, es el poder apreciar como una herramienta, en este caso
XNA, aunque trabaja su programación con un lenguaje de alto nivel (C#), este debe pasar
por un proceso de compilación el cual involucra una serie de etapas, pasando por código
intermedio(MISIL) hasta llegar al lenguaje maquina, además tocar puntos importantes
como lo es el funcionamiento de la maquina virtual de .Net Framework y como define el
ambiente de ejecución para los programas y como es que sobre esta plataforma se realiza la
compilación en tiempo de ejecución.
5
Marco Teórico
XNA
Fue realizado con el fin de crear comunidades sobre plataformas Microsoft, entiéndase en
ello Windows y XBOX 360.
.NET FRAMEWORK
6
Para facilitar la interoperabilidad entre lenguajes, los tipos de .NET Framework cumplen la
especificación de lenguaje común (CLS) y, por tanto, se pueden utilizar en todos los
lenguajes de programación cuyo compilador satisfaga los requisitos de CLS.
.NET Framework es literalmente una infraestructura que permite que los programas
creados sobre esta plataforma ser independientes en el sistema operativo MS Windows
98/2000/Server2003/XP/XP64/Vista32/Vista64. El conjunto de todos los lenguajes .NET
no compilan directamente código de CPU si no a un código intermedio llamado MSIL
generado a través de CLR, que es convertido a código CPU en tiempo de ejecución
Es el lenguaje base de .NET Framework y reúne todos los lenguajes que maneja .NET en
uno solo. Realmente es el verdadero entorno de ejecución de .NET donde son cargadas
todas las aplicaciones desarrolladas.
Esta unión entre diferentes lenguajes, es posible porque los compiladores y las herramientas
de lenguajes orientados al motor en tiempo de ejecución utilizan un sistema de tipos común
definido por el motor en tiempo de ejecución, y los lenguajes siguen las reglas en tiempo de
ejecución para definir nuevos tipos, así como para crear, utilizar, almacenar y enlazar tipos.
Mejoras en el rendimiento.
Capacidad para utilizar fácilmente componentes desarrollados en otros lenguajes.
Tipos extensibles que proporciona una biblioteca de clases
Nuevas características del lenguaje como herencia, interfaces y sobrecarga para la
programación orientada a objetos; compatibilidad con el uso de subprocesos libres
que permite la creación de multiprocesos; aplicaciones escalables; compatibilidad
con los atributos personalizados y el control de excepciones estructurado.
7
Proceso de Compilación
Entre las razones más importantes que motivaron a elegir C# como lenguaje para
desarrollar para la plataforma XNA encontramos:
Esta es una de las preguntas que todo el mundo realiza, y los motivos son variados entre
ellos tenemos:
8
Compilar el Código a Código Intermedio (MSIL)
Cuando el compilador genera MSIL, también crea metadatos. Los metadatos describen los
tipos que aparecen en el código, incluidas las definiciones de los tipos, las firmas de los
miembros de tipos, los miembros a los que se hace referencia en el código y otros datos que
el motor en tiempo de ejecución utiliza en tiempo de ejecución. El lenguaje intermedio de
Microsoft y los metadatos se incluyen en un archivo ejecutable portable denominado PE,
que se basa y extiende el PE de Microsoft publicado y el formato Common Object File
Format (COFF) utilizado tradicionalmente para contenido ejecutable. Este tipo de archivo,
que contiene el código MSIL o código nativo así como metadatos, permite que el sistema
operativo reconozca imágenes de Common Language Runtime. El que los metadatos junto
al Lenguaje intermedio de Microsoft (MSIL) permite generar código autodescriptivo, con
lo cual las bibliotecas de tipos y el Lenguaje de definición de interfaces son innecesarios. El
motor en tiempo de ejecución busca, ubica y extrae los metadatos del archivo cuando son
necesarios durante la ejecución.
Durante esta compilación, el código debe pasar un proceso de comprobación que examina
el MSIL para garantizar que el proceso sea satisfactorio, y para esta ejecutar esta acción se
utiliza el compilador JIT, el cual compila y ejecuta al mismo tiempo.
Para poder ejecutar MSIL, primero debe convertir éste, mediante un compilador Just-In-
Time (JIT) de .NET Framework, a código nativo. Common Language Runtime brinda un
9
compilador JIT para cada arquitectura de CPU compatible con .Net Framework, por lo que
los programadores pueden escribir un conjunto de MSIL que se puede compilar mediante
un compilador JIT y ejecutar en equipos con diferentes arquitecturas.
La compilación JIT tiene como característica, que nunca, durante la ejecución se llamará a
parte del código. En vez de utilizar tiempo y memoria para convertir todo el MSIL de un
archivo ejecutable portable (PE) a código nativo, convierte el MSIL necesario durante la
ejecución y almacena el código nativo resultante para que este pueda ser accesible en las
llamadas posteriores.
Como parte de la compilación MSIL en código nativo, el código debe pasar un proceso de
comprobación, aunque esta etapa puede saltearse si así se desea. Aquí en esta etapa se
comprueba el MSIL y los metadatos para determinar si el código garantiza la seguridad de
tipos, lo cual significa que el código sólo tiene acceso a aquellas ubicaciones de la memoria
para las que está autorizado.
Ejecución de Código
Para realizar la última etapa, que es realmente cuándo podremos observar nuestros
resultados, regresamos a tocar el tema CLR porque, es este, el que permite que la ejecución
se lleve a cabo.
Common Language Runtime nos brinda la estructura que permite que la ejecución
administrada tenga lugar, además de una gran cantidad de servicios que pueden ser
utilizados durante la ejecución. Para poder ejecutar un método, primero se debe compilar a
código específico del procesador. Los métodos para los que se genera MSIL son
compilados mediante un compilados JIT cuando se les llama por primera vez y, a
continuación, se ejecutan. La próxima vez que se ejecuta el método, se ejecuta el código
nativo existente resultante de la compilación JIT. El proceso de compilación JIT y, a
continuación, este proceso es repetido hasta finalizar la ejecución.
10
compatibilidad de depuración entre lenguajes diferentes y compatibilidad mejorada con el
control de versiones y la implementación.
Capas de XNA
Arquitectura Windows
11
Arquitectura XBOX 360
12
Estructura Interna del CLR
13
Verificador de tipos: controla que las variables de la aplicación usen el área de
memoria que tienen asignado.
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 .NET
XBOX 360
14
Windows
15
Conclusiones
El CLR junto con el JIT son realmente la base sobre la plataforma de desarrollo
.Net, pero es el CLR el que controla todo.
16
Recomendaciones
XNA fue básicamente creado para personas que desean iniciarse en el área de
programación de juegos, pero no sería extraño que en poco tiempo se convirtiera en
una de las áreas de desarrollo más solicitada por las grandes compañías.
17
Referencias Bibliográficas
http://msdn.microsoft.com/es-es/library/k5532s8a(VS.80).aspx
http://creators.xna.com/en-US/
http://msdn.microsoft.com/es-es/library/k1s94fta(VS.80).aspx
http://xna.animered.net/index.php?Itemid=14&id=13&option=com_content&task=view
http://xna.animered.net/index.php?Itemid=14&id=8&option=com_content&task=view
18