Sie sind auf Seite 1von 8

Universidad Nacional de Loja

Evaluación de compiladores
Análisis Semántico

Integrantes:
- Alex Enrique Yunga Benítez
- María José Zúñiga Suárez

Paralelo: 9no “B”


Fecha: 2010 -02-02
Resolver:
6.4. Considere una gramática de expresión como se
escribiría para un analizador sintáctico predictivo con la
recursividad por la izquierda eliminada:

exp term exp’


exp’ +term ex’p’ | - term exp’ | £
term factor term’
term’ *factor term’ | £
factor(exp) | numero

Escriba una gramática con atributos para el valor de una


expresión dada por esta gramática.
Solución:
•Primero separamos las producciones una a una:

exp term exp’


exp’ +term exp’
exp’ - term exp’
exp’ £
term factor term’
term’ *factor term’
term’£
factor(exp)
factor numero
RECORRIDO DE LA CADENA
 La cadena que vamos a recorrer es:
(4+3*7)*7*5

 Recorrido de la cadena:
exp term exp’  factor term’ exp’  (exp)term’ exp’
(term exp’)term’ exp’  (factor term’ exp’)term’ exp’ 
(4+term exp’)term’ exp’ (4+factor term’exp’) term’ exp’
(4+3 term’ exp’) term’ exp’(4+3*factor term’ exp’) term’ exp’ 
(4+3*7)*factor term’ exp’  (4+3*7)*7 term’ exp’
(4+3*7)*7*factor term’ exp’ (4+3*7)*7*5
PROPAGACIÓN DE ATRIBUTOS exp

term exp’

factor term’ £

( exp ) * factor term’

term exp’

* factor term’
7
£
factor term’

5 £
4 + term exp’

factor £
term’ Las flechas nos indican como
realizamos la propagación de
los atributos y encontramos
3 *
factor term’ el valor final de la expresión
(4+3*7)*7*5
7 £
RECONOCIMIENTO DE ATRIBUTOS SINTETIZADOS
Reglas de Producciones Acciones Semánticas
exp term exp’ exp.val=term.val exp’.val
exp’ +term exp’ exp’.val= + term.val exp’.val
exp’ - term exp’ exp’.val= - term.val exp’.val
exp’ £ exp’.val= £
term factor term’ term.val= factor.val term’.val
term’ *factor term’ Term’.val= * factor.val term’.val
term’£ term’.val= £
factor(exp) factor.val= (exp.val)
factor numero Factor.val= numero.val_lex
factor
exp
(25) Pila de Reconocimiento de cadena
exp (4+3*7)*7*5
term
(25)
term
factor + term’ exp
4+21 term Fin de la
875 Pila
term
+ term exp
21 term
(25)*35
term
factor*term’ term
3*7 factor* term’
(25)*35
term’
* factor term’
7 *factor *term’
* 7*5
term
factor+term’ term’
? *Factor
5

Inicio de la Pila
ESQUEMAS DE TRADUCCIÓN
ESQUEMAS DE TRADUCCIÓN
exp term exp’ {exp.val=term.val exp’.val}

exp’+term exp’{ exp’.val= + term.val exp’.val}

exp’ - term exp’{exp’.val= - term.val exp’.val}


exp’ £{exp.val=exp’.val}

term factor term’{term.val= factor.val term’.val}


term’ *factor term’{Term’.val= * factor.val term’.val}
term’£{term.val=term’.val}
factor(exp){factor.val= (exp.val)}
factor numero{Factor.val= numero.val_lex}

Das könnte Ihnen auch gefallen