Anda di halaman 1dari 29

Compiladores

Integrantes: Flores Ramrez Ishtar Kenia Juan Carlos Lpez Valds Chaves Valencia Alejandra Pepe Salas Mandujano

Que es un Compilador?
Es un traductor que convierte un texto escrito en un lenguaje fuente de alto nivel en un programa objeto en cdigo mquina.

Fases del compilador

Programa Fuente
El

cdigo fuente o programa fuente de un programa o software es un conjunto de lneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. El cdigo fuente de un programa est escrito por un programador en algn lenguaje de programacin

Tabla de smbolos
Una

tabla de smbolos es una estructura de datos que usa el proceso de traduccin de un lenguaje de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de cada variable, constante o procedimiento.

Manejador de Errores
Es

una funcin muy importante, pues al ocurrir un error esta funcin debe tratar de alguna forma el error para as seguir con el proceso de compilacin (la mayora de errores son detectados en las etapas de anlisis lxico, anlisis sintctico, anlisis semntico).

Cdigo Objeto
Cdigo

que resulta de la compilacin del cdigo fuente. Consiste en lenguaje mquina o bytecode y se distribuye en varios archivos que corresponden a cada cdigo fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos de cdigo objeto con un programa llamado enlazador(linker).

Software
(Programa

Ejecutable)Programa que ha sido traducido a cdigo mquina en un formato que puede cargarse en la memoria y ejecutarse. Sin embargo, en los lenguajes interpretados puede referirse simplemente al cdigo fuente en su formato apropiado.

Los compiladores se dividen en


Una

pasada Mltiples pasadas Carga y Ejecucin Depuracin u Optimizacin Cruzado

Compiladores Cruzados: Generan cdigo para un sistema distinto del que estn funcionando.

Compiladores Optimizadores: Realizan cambios en el cdigo para mejorar su eficiencia, manteniendo la funcionalidad de programa original.

Compiladores de una pasada: Generan el cdigo maquina a partir de una nica lectura del cdigo fuente. Compiladores de Varias pasadas: Necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo maquina.

Compiladores JIT (Just In Time): Forma parte de un intrprete y compilar partes del cdigo segn vayan necesitando.

Un compilador de compiladores o generador de parsers es una utilera para generar el cdigo fuente de parsers.

Compilador de compiladores

Reglas Lxicas

Gramtica
Conjunto

de todas las cadenas de smbolos terminales que pueden derivarse del smbolo inicial o axioma

Rutinas Semnticas
Son

las reglas de la gramtica que tienen relacin con las expresiones aritmticas y la asignacin. sent_asig: T_IDENT '=' expresion ';'

Generador de Cdigo
herramientas

generadoras automticas de cdigo para un compilador. Estas herramientas trabajan basadas en un conjunto de reglas; estas reglas definen la traduccin de las instrucciones del lenguaje intermedio al lenguaje de mquina.

Analizador Lxico
Esta

fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un anlisis smbolo por smbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este anlisis no logra detectar muchos errores por su caracterstica.

Ejemplo: total=valor*5 Luego

del anlisis lxico: id= id * num

Anlisis Sintctico
En

esta fase se analiza la estructura de las expresiones en base a gramticas. Aqui ya se puede determinar si una extructura por ejemplo una expresin matemtica mal formada. El anlisis que se realiza es jerrquico es decir en base a rboles de derivacin que se obtienen de las mismas gramticas. Ejemplo: position:=initial + rate*60

Analizador Semntico
Este

anlisis es ms dificil de formalizar, determina el tipo de los resultados intermedios, comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre s.

Generacin de Cdigo
Llegamos

a la generacin de cdigo ensamblador o cdigo mquina del procesador que nos interese por ejemplo:

a:=b+c LOAD B ADD C STORE A

Maquina de Touring

Diferencias de interprete y compilador


Interprete Es un programa que lee lnea a lnea un programa escrito en un lenguaje en lenguaje fuente y lo va traduciendo a un cdigo intermedio, para ejecutarlo

Compilador Es un programa que lee totalmente un programa escrito en un lenguaje; el lenguaje fuente, y lo traduce a un programa equivalente a otro lenguaje, lenguaje objeto

Traductor
Es una mquina terica que tiene como entrada un texto escrito en un lenguaje L1 y como salida un texto escrito en un lenguaje L2. Habitualmente se denomina a L1 lenguaje fuente y a L2 lenguaje objeto.

Anda mungkin juga menyukai