Practica Compiladores
Enviado por deaflow • 7 de Septiembre de 2011 • 703 Palabras (3 Páginas) • 647 Visitas
1. Explique brevemente qué es Common Language Infrastructure (CLI), Common Intermediate Language (CIL) y Virtual Execution System (VES). (ver documento Ecma-335.pdf)
CLI. Especificación estandarizada que describe un entorno virtual para la ejecución de aplicaciones. Su principal característica es permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan ejecutarse en múltiples plataformas tanto de hardware como de software sin necesidad de reescribir o compilar nuevamente su código fuente.
CIL. Lenguaje de programación legible por humanos de nivel más bajo en el CLI y en el .NET Framework. Estos últimos compilan a CIL, el cual a su vez es ensamblado en bytecode. CIL es un lenguaje ensamblador orientado a objetos que está basado en pilas y es ejecutado por una máquina virtual. Los lenguajes .NET principales son:
• C#
• Visual Basic .NET
• C++/CLI
• J#.
2. Describa las opciones que tiene el ensamblador ILASM para compilar un programa. Ejemplo /dll. (man ilasm)
output <nombre del archivo>: especifica la salida del archivo nombrado.
exe: genera un ejecutable
dll: genera una librería
scan_only: escanea solo el código IL y los tokens.
show_tokens: muestra los tokens.
show_metod_def: despliega la información del método cuando un método es definido.
show_metod_ref: despliega la información del método cuando un método es referenciado.
key:KEYFILE: la salida de ensamblador usando el par llave presenta la especificación del nombre del archivo llave (snk). si el par de llaves lleno es requerido (i.e. retrasa el signo confirmando con el uso de la directiva .publickey)
key:@CONTAINER: la salida del ensamblador usando el par de llaves presenta un contenido especificado.
--about: despliega la información acerca de ilasm.
--version: despliega la version de ilasm.
3. Describa para que sirven los comandos:
mcs Sirve para compilar código C#, este a su vez nos genera un código ejecutable.
monodis Convierte la salida de un código c# a un código il.
ilasm Desensambla un código generado a una imagen CI después de haber generado el ejecutable en C#(.exe).
monolinker Localiza las funciones que un programa puede requerir, la conexión analiza el código intermedio CIL producido en cada compilación sobre la plataforma mono.
monop Permite ver las líneas de salida de una clase, como ver el nombre de cada miembro de la clase.
gacutil Inicia parte del ensamblado que está disponible por todas las aplicaciones ejecutadas, permite desarrollar versiones ensambladas dentro del sistema GAC.
4. Haga un resumen del conjunto de
...