You are on page 1of 30

Universidad San Pedro

Teora de Lenguajes y Compiladores


Procesadores de Lenguaje

Docente: Ing. He er !"me# Hurtado

Contenidos

$ jetivos %lcance Tema de la presentaci"n

$ jetivos
De&inir 'ue son los procesadores de lenguajes. Distinguir las &ases 'ue componen un traductor. Descri ir cuales son los elementos componen cada &ase.

%lcances

Procesadores de lenguaje

Traductores Int(rpretes *ase de %n+lisis *ase Sntesis

)structura de los traductores


Procesadores de Lenguaje
Los procesadores de lenguaje son todos los programas 'ue a trav(s de una entrada escrita en un lenguaje de programaci"n pueden manipular ,erramientas de so&t-are y ,ard-are de un computador. )stos procesadores de lenguaje se dividen en traductores e int(rpretes.

.erar'ua

Traductor
Un

traductor es un programa 'ue reci e un c"digo &uente y lo traduce a otro c"digo/ generalmente a un c"digo o jeto/ sin perder su &uncionamiento.

Clasi&icaci"n de los Traductores

Compilador
Los

compiladores son programas 'ue reci en un lenguaje &uente de nivel medio o superior y lo trans&orman a un programa o jeto/ 'ue puede ser ensam lador o de m+'uina

)nsam lador
Los ensam ladores son programas 'ue traducen de lenguaje ensam lador a lenguaje de m+'uina. Integra m"dulos del programa 0eserva y resuelve direcciones de memoria 0elacionado con la estructura interna de computador

Preprocesador
Tam i(n se le conoce como precompilador. )s un programa 'ue se ejecuta antes del compilador. )ste programa es capa# de reconocer lenguaje em e ido o incrustado dentro del lenguaje principal o an&itri"n/ y luego convertir este lenguaje em e ido ,acia el lenguaje an&itri"n.

Preprocesador

)jemplo de c"digo em e ido

Pseudocompilador

)s un programa muy similar a un compilador/ con la di&erencia principal 'ue el c"digo o jeto 'ue genera no puede ser ejecutado en un computador/ es indispensa le la ejecuci"n en una m+'uina virtual. )l c"digo generado se le denomina c"digo de yte.

Interpretes

Un int(rprete es un programa dise1ado para ejecutar instrucciones de un c"digo determinado/ no genera ning2n tipo de c"digo adicional/ y es ejecuta le.

Int(rprete Puro

)l proceso es a trav(s del an+lisis de cada sentencia y su ejecuci"n ,asta &inali#ar todo el programa &uente. %l momento de encontrar alg2n error se de e de comen#ar nuevamente el proceso.

Interprete Puro

Int(rprete %van#ado

)l proceso es a trav(s del an+lisis de cada sentencia y su ejecuci"n ,asta &inali#ar todo el programa &uente. %l momento de encontrar alg2n error se de e de comen#ar nuevamente el proceso.

Int(rprete %van#ado

)structura de los Traductores

La estructura interna de los traductores de lenguaje consiste en dos &ases importantes el an+lisis y la sntesis.

*ase de %n+lisis
La &ase de an+lisis se encarga de: 3eri&icar el c"digo &uente/ a trav(s del an+lisis minucioso de los componentes l(4icos o to5ens. Luego de agrupar todos los elementos en to5ens se veri&ica su estructura sint+ctica y sem+ntica de cada o instrucci"n del lenguaje.

)structura interna

*ase de %n+lisis: %n+lisis L(4ico


Se

toman los elementos del programa &uente/ agrupando cada uno de los caracteres para &ormar to5ens o componentes l(4icos Los to5ens identi&ican: constantes/ identi&icadores/ varia les/ &unciones/ clases/ pala ras reservadas/ operadores/ eti'uetas/ etc

*ase de %n+lisis: %n+lisis Sint+ctico


Con los to5ens se esta lece la estructura de las sentencias del programa a trav(s de clases sint+cticas. Construye un +r ol sint+ctico a partir de unas reglas llamadas gram+tica. )ste an+lisis puede ser ascendente o descendente.

*ase de %n+lisis: %n+lisis Sem+ntico


)n esta &ase del an+lisis se veri&ica el conte4to en el 'ue se encuentra cada sentencia sint+ctica/ por lo general se reali#a simult+neamente con el an+lisis sint+ctico/ se veri&ican: Compro aci"n de tipos C,e'ueo de unicidad y multiplicidad %n+lisis de nom res y alcance de varia les

*ase de Sntesis: !eneraci"n de C"digo Intermedio


La

generaci"n de c"digo intermedio permite generar c"digo 'ue es porta le e independiente de la m+'uina/ ya 'ue es entendi le solamente por una m+'uina a stracta. Para esto puede utili#arse:

6otaci"n polaca Cuartetos Tripletes

*ase de Sntesis: $ptimi#aci"n de


C"digo
La optimi#aci"n de c"digo es la veri&icaci"n 'ue se ,ace del c"digo ya generado para mejora la velocidad al momento de la ejecuci"n. )4isten algunas reglas para optimi#ar: elimina la reescritura de c"digo eliminaci"n de c"digo inalcan#a le optimi#aci"n de temporales

*ase de Sntesis: !eneraci"n de


C"digo
Traduce el c"digo intermedio a c"digo ensam lador/ c"digo de m+'uina o para el &uncionamiento dentro de una pila. Cada una de las instrucciones pasa a ser instrucciones en c"digo de m+'uina donde se involucran posiciones reales de memoria por medio de los registros.

Ta la de Sm olos
%lmacena

os identi&icadores del programa &uente/ pueden ser: varia les/ constantes/ procedimientos o tipos. La ta la de sm olos puede ser almacena en una ta la de ,as,/ un +r ol inario o cual'uier otra estructura 'ue permita ,acer 2s'uedas r+pidas.

7anejador de )rrores
)l manejador de errores permite esta lecer si el programa &uente posee alg2n error ya sea de tipo: l(4ico 8caracteres no de&inidos9/ sint+ctico 8estructura inadecuada9 o sem+ntico 8conte4to no apropiado9

Tra ajo

)la orar los mapas conceptuales para los siguientes conceptos:


Compilador Interprete

You might also like