Está en la página 1de 4

Compiladores 1, Segundo Semestre 2010

Universidad De San Carlos de Guatemala

Procesador de Lenguaje:
Los procesadores de lenguaje son todos los programas que a travs de una entrada escrita en un
lenguaje de programacin pueden manipular herramientas de software y hardware de un
computador.
Intrprete [No genera cdigo adicional]: Es un programa que simultneamente analiza y
ejecuta un programa escrito en lenguaje fuente.
La primera fase de anlisis es igual que el compilador.

Es ms sencillo de implementar.
No es necesario tener en memoria todo el cdigo fuente.

Programa
Interprete

Fuente

Interprete Puro

Interprete
Avanzado

Interprete
Incrementales

Resultados

El proceso es a travs del anlisis de cada sentencia y su ejecucin


hasta finalizar todo el programa fuente.
Pensado para maquinas con limitaciones de memoria.
Si en cualquier momento se produce un error, se debe
ejecutar desde el inicio.
Incorporan un paso previo de anlisis de todo el programa fuente.
Generan posteriormente un lenguaje ejecutado por el parser.
Usan lenguajes mas avanzados ya permiten optimizacin de
cdigo.
Dirigidos a lenguajes que no pueden compilarse.
Se pueden crear objetos y funciones en tiempo de ejecucin.
Se compilan las partes estaticas.

Aplicaciones de Interpretes:
Interpretes de comandos:
Tomando el lenguaje fuente y ejecuta sobre el sistema operativo (C-SHELL, KORN-SHELL, JCL).
Entornos de programacin:
Lenguajes con caractersticas especiales y cuya compilacin no es efectiva. [Python, Ruby, Perl]
Seccin A

Pgina 1

Compiladores 1, Segundo Semestre 2010


Universidad De San Carlos de Guatemala

Compilador:
Los compiladores son programas que reciben un lenguaje fuente y lo transforman a un programa
objeto, que puede ser ensamblador o de cdigo mquina.

Programa

Programa
Compilacion

Fuente

Objeto

Tipos de Compiladores:
Compiladores Cruzados
Compiladores Optimizadores
Compiladores de una sola
pasada
Compiladores de Varias
Pasadas
Compiladores JIT

Generan cdigo para un sistema distinto del que estn


funcionando.
Realizan cambios en el cdigo para mejorar su eficiencia, pero
manteniendo la funcionalidad del programa original.
Generan el cdigo maquina a partir de una nica lectura del
cdigo fuente.
Necesitan leer el cdigo fuente varias veces antes de poder
producir el cdigo maquina.
Forman parte de un intrprete y compilan partes del cdigo
segn se necesitan.

Los Compiladores tienen 2 fases:

FUENTE

DESTINO

Anlisis

Sntesis

Fase de Anlisis: Verifica el cdigo fuente haciendo un anlisis de los componentes lxicos, luego
agrupa los elementos en tokens y se verifica su estructura semntica y sintctica.
Fase de Sntesis: Despus de la fase de anlisis algunos compiladores generan representacin
intermedia del programa fuente que tiene como caracterstica fcil de producir y fcil de traducir a
programa objeto. Luego se trata de mejorar el cdigo intermedio de modo que ejecute un cdigo
maquina ms fcil de ejecutar.

Seccin A

Pgina 2

Compiladores 1, Segundo Semestre 2010


Universidad De San Carlos de Guatemala

Programa Fuente
Anlisis
Anlisis Lxico

Lee los caracteres de entrada y elabora como salida una secuencia de


componentes lxicos que son utilizadas en el anlisis sintctico.
Componentes Lxicos: Identificadores, palabras reservadas,
operadores lgicos, smbolos especiales, constantes etc.

Anlisis Sintctico

Analiza el orden de un lenguaje con sus reglas que son prescritas por
estructura bien definida(rbol sintctico a partir de una gramtica).
Una gramtica da una especificacin sintctica precisa y fcil de
entender de un lenguaje de programacin.

Anlisis Semntico

Verifica el contexto en el que se encuentra cada sentencia sintctica.


Se verifican:
- Comprobacin de Tipos
- Alcance y nombre de las variables
- Sobrecarga de operadores

Sntesis
Generacin de
cdigo intermedio

Optimizacin de
cdigo intermedio

Generacin de
Cdigo

La generacin de cdigo intermedio es una representacin


intermedia, para una maquina abstracta.
Codigo de tres direcciones: Una secuencia de operaciones que tiene
como mximo 3 operadores.
La optimizacin de cdigo es la verificacin que se hace del cdigo ya
generado para mejora la velocidad al momento de la ejecucin.
Existen algunas reglas para optimizar:
 Elimina la reescritura de cdigo
 Eliminacin de cdigo inalcanzable
 Optimizacin de temporales

Traduce el cdigo intermedio a cdigo ensamblador.


Las posiciones de memoria se seleccionan para cada una de las
variables usadas en el programa.

Programa Objeto
Seccin A

Pgina 3

Compiladores 1, Segundo Semestre 2010


Universidad De San Carlos de Guatemala
Tabla de Simbolos:
Almacena la estructura de datos:

Variables
Constantes
Etiquetas.
Tipos.
Valores.
Asignacin de valores.

Operaciones:

Insertar smbolo.
Consultar smbolo.
Borrar smbolo.

Deteccin de Errores:
El manejador de errores permite establecer si el programa fuente posee algn error ya sea de tipo:
 lxico (caracteres no definidos),
 sintctico (estructura inadecuada)
 semntico (contexto no apropiado)
Compiladores Vs Intrpretes

Compilador
Una nica compilacin.
Mayor velocidad ejecucin.
Mayor detalle de errores.
Mayor consumo de memoria.

Seccin A

Interprete
Interpretacin en ejecucin.
Menor velocidad de ejecucin.
Menor detalle de errores.
Menor consumo de memoria.

Pgina 4

También podría gustarte