Compiladores
FACULTAD DE INGENIERÍA EN SISTEMAS
CENTRO UNIVERSITARIO DE JUTIAPA
COMPILADORES
ING. BRAULIO TOBAR
TIPOS DE COMPILADORES
LUIS FERNANDO LOPEZ ALAY
CARNE NO. 0905-09-2713
TIPOS DE COMPILADORES
1. Compilador cruzado
Es el que genera un código objeto ejecutable en un ordenador distinto de aquél en el que se realiza la compilación.
Estaherramienta es útil cuando quiere compilarse código para una plataforma a la que no se tiene acceso, o cuando es incómodo o imposible compilar en dicha plataforma (como en el caso de los sistemas embebidos).
Esta herramienta es útil cuando quiere compilarse código para una plataforma a la que no se tiene acceso, o cuando es incómodo o imposible compilar en dicha plataforma (como el casode los sistemas empotrados).
Por ejemplo, supongamos que queremos desarrollar aplicaciones para un teléfono móvil, una PDA o una consola de videojuegos. Normalmente será más cómodo realizar el desarrollo en un PC y luego volcar el código objeto en el dispositivo de destino. En estas situaciones, el compilador que usaremos en el PC es un caso de compilador cruzado.
El sistema operativo Nachosse ejecuta sobre una máquina virtual basada en el procesador MIPS. Los programas de usuario deben estar escritos en código máquina del MIPS. Afortunadamente, no necesitas escribir los programas de usuario en código máquina o en ensamblador, sino que lo puedes hacer en lenguaje C. El compilador cruzado que viene con la instalación de Nachos es capaz de traducir de C a código del MIPS.
Elcompilador cruzado que se distribuye con el Nachos es una versión del popular compilador GCC. Funciona sobre prácticamente cualquier versión de Linux. Si quieres trabajar en tu propio ordenador, necesitas instalar este compilador.
Otro ejemplo de un compilador con estas posibilidades es el NASM, que puede ensamblar, entre otros formatos, ELF (para sistemas UNIX) y COM (para DOS).
El Netwide
Assembler oNASM, es un ensamblador libre para la plataforma Intel x86. Puede ser usado para escribir programas tanto de 16 bits como de 32 bits (IA-32). En el NASM, si se usan las bibliotecas correctas, los programas de 32 bits se pueden escribir de una manera tal para que sean portables entre cualquier sistema operativo x86 de 32 bits. El paquete también incluye un desensamblador, el NDISASM.
El usofundamental de un compilador cruzado es compilar para un entorno diferente en el que se ejecuta el compilador. Esto es muy utilizado en las siguientes situaciones:
* Sistemas empotrados, donde los recursos son extremadamente limitados.
* Compilación para múltiples máquinas.
2. Compiladores optimizadores
Realizan cambios en el código para mejorar su eficiencia, pero manteniendo lafuncionalidad del programa original.
Las optimizaciones del compilador se aplican generalmente mediante una secuencia de transformaciones de optimización, algoritmos que transforman un programa para producir otro con una salida semánticamente equivalente pero optimizado.[]
Generalmente hay varios aspectos que se desean optimizar:[]
1. Optimización temporal: Reducir el tiempo de ejecución delprograma.
2. Optimización espacial: Reducir la cantidad de espacio en memoria que ocupa el programa en ejecución.
3. Reducir el tamaño del programa.
4. Minimizar la potencia consumida por un programa (debido a las computadoras portátiles).
3. Compiladores de una sola pasada
Generan el código máquina a partir de una única lectura del código fuente, es decir examina el código fuente unavez, generando el código o programa objeto.
Una aproximación al manejo de las TS se presenta, donde el análisis léxico, sintáctico, semántico y la generación de código se realizan en una pasada, es decir, se explora el texto fuente sentencia a sentencia (o bloques de sentencias) realizándose los tres análisis y la generación de código.
Ventajas del compilador de una pasada
* Fue fácil de...
Regístrate para leer el documento completo.