Cuadro Sinoptico de Compilador

Preview:

DESCRIPTION

tarea

Citation preview

Compilador

Partes de un compilador

Análisis

Síntesis

Front-end

Back-end

Se trata de la comprobación de la corrección del programa fuente.

Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones.

Es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos.

Es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.

Tipos de compiladores

Compiladores cruzados.

Compiladores optimizadores.

Compiladores de una sola pasada.

Compiladores de varias pasadas.

Compiladores JIT (Just In Time).

generan código para un sistema distinto del que están funcionando.

realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.

generan el código máquina a partir de una única lectura del código fuente.

necesitan leer el código fuente varias veces antes de poder producir el código máquina.

forman parte de un intérprete y compilan partes del código según se necesitan.

Proceso de compilación

Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina.

Etapas del proceso

Fase de análisis.

Análisis léxico.

Análisis sintáctico.

Análisis semántico.

es la encargada de leer el código fuente y separarlo en lotes para poder ser leído por el análisis sintáctico.

Fase de síntesis.

evalúa los lotes de código con el fin de que este cumpla con los requerimientos definidos por el compilador.

busca establecer que el código fuente cumpla con la semántica solicitada por el compilador, es decir que el código este correctamente escrito para poder ser interpretado.

Generación de código intermedio.

Optimización de código.

Generación de código.

este código se genera con el fin de mejorar el uso de la memoria con el fin de optimizar código fuente.

el objeto de esta fase es mejorar el código para que sea más rápido ejecutarlo

Aquí se crea el código final de salida que va a ser interpretado por la máquina.