Documento para exposicion
24 diapositivas
El proceso de la compilación se desglosa en dos partes:
◦La parte que depende solo del lenguaje fuente (etapa inicial o front-end )
◦La parte que depende solo del lenguaje objeto (etapa final o back-end).
Etapa inicial: corresponde con la parte de análisis (léxico, sintáctico y semántico).
Etapa final: corresponde con la parte de síntesis (generación de código).
◦La parte que depende solo del lenguaje fuente (etapa inicial o front-end )
◦La parte que depende solo del lenguaje objeto (etapa final o back-end).
Etapa inicial: corresponde con la parte de análisis (léxico, sintáctico y semántico).
Etapa final: corresponde con la parte de síntesis (generación de código).
La etapa inicial traduce un programa fuente a una representación intermedia a partir de la cual la etapa final genera el código objeto.
De esta forma, los detalles que tienen que ver con las características siguientes se engloban en la etapa final y se aíslan del resto.
- Lenguaje objeto (código ensamblador, código maquina absoluto o relocalizable, etc)
- La arquitectura de la maquina (numero de registros, modos de direccionamiento, tamaño de los tipos de datos, memoria cache, etc)
- El entorno de ejecución (estructura de registros y memoria de la maquina donde se va a ejecutar el programa)
- El sistema operativo
La generación de código es la tarea mas complicada de un compilador.
Las ventajas de utilizar esta representación intermedia, independiente de la maquina en la que se va a ejecutar el programa, son:
- Se puede crear un compilador para una nueva maquina distinta uniendo la etapa final de la nueva maquina a una etapa inicial ya existente.
- Se facilita la redestinacion.
- Se puede aplicar, a la representación intermedia, un optimizador de código independiente de la maquina.
Documento para exposicion
24 diapositivas
No hay comentarios:
Publicar un comentario