You are on page 1of 11

Compiladores: Sesi on 2.

Un compilador de una pasada

Compiladores: Sesi on 2. Un compilador de una pasada


Prof. Gloria In es Alvarez V.
Departamento de Ciencias e Ingenier a de la Computaci on Ponticia Universidad Javeriana Cali

24 de enero de 2008

Compiladores: Sesi on 2. Un compilador de una pasada

Traduci on de Expresiones de Injo a Postjo

Alfabeto: los d gitos del 0 al 9 y los signos de suma (+) y resta () Se propone construir un programa que recibe una expresi on aritm etica en injo, por ejemplo: 6 + (9 (8 + 3)) y genera la misma expresi on en postjo, para el ejemplo anterior: 6983 + +

Compiladores: Sesi on 2. Un compilador de una pasada

An alisis Sint actico

Gram aticas Ambig uedad Asociatividad de operadores Precedencia de operadores

Compiladores: Sesi on 2. Un compilador de una pasada

Ejemplo de gram atica con precedencia de operadores

expr expr + term | expr term | term term term factor | term / factor | factor factor 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |( expr )

Compiladores: Sesi on 2. Un compilador de una pasada

Traducci on dirigida por sintaxis

Una denici on dirigida por sintaxis: Especica la traducci on de una construcci on en t erminos de los atributos asociados con sus componentes sint acticos. Asocia un conjunto de atributos a cada s mbolo y un conjunto de reglas sem anticas a cada producci on. Las reglas permiten calcular los valores de los atributos de los s mbolos.

Compiladores: Sesi on 2. Un compilador de una pasada

Arbol anotado

Atributos sintetizados
Se construye el arbol de sintaxis de forma bottom-up El valor de los atributos de un nodo se calcula a partir de los valores de sus hijos

Atributos heredados

Compiladores: Sesi on 2. Un compilador de una pasada

Ejemplo de denici on dirigida por sintaxis

Producciones expr expr1 + term expr expr1 term expr term term 0 ... term 9

Reglas sem anticas expr .t := expr1 .t term.t expr .t := expr1 .t term.t expr .t := term.t term.t := 0 ... term.t := 9

Compiladores: Sesi on 2. Un compilador de una pasada

Esquema de traducci on

Se pueden incluir fragmentos de programas, llamados acciones sem anticas, en cualquier punto de la parte derecha de las producciones. A diferencia de las reglas sem anticas, en este caso el orden de evaluaci on de las acciones es expl cito.

Compiladores: Sesi on 2. Un compilador de una pasada

An alisis sint actico predictivo

Se puede realizar con costo lineal Procede en forma top-down Requiere que las reglas que tienen el mismo lado izquierdo tengan el FIRST disyunto Debe eliminarse la recursi on por la izquierda, pues causa ciclos innitos

Compiladores: Sesi on 2. Un compilador de una pasada

C omo eliminar la recursi on por la izquierda


Si se tiene una gram atica:

A A|

Para eliminar la recursi on por la izquierda, se introduce un nuevo s mbolo no terminal as :

A R R R |

Compiladores: Sesi on 2. Un compilador de una pasada

M aquina abstracta de pila

Es popular como representaci on intermedia i-valores y d-valores Operaciones sobre la pila Instrucciones de control

You might also like