Anda di halaman 1dari 8

TEMA:

ALUMNA:
Doris Viñamagua
José Vacacela
DOCENTE
Ing. Wilman Chamba
MÓDULO:
Noveno “B”
ESQUEMA DE TRADUCCIÓN DIRIGIDA POR SINTAXIS
Utiliza Atributos Heredados y Sintetizados

ETR 1 3 2

ET {R.hereda= T.valor} R {E.valor=R.sintetizado}


REGLAS
1 Un ATRIBUTO HEREDA de un símbolo se puede calcular antes de visitar
dicho símbolo.
2 Un ATRIBUTO SINTETIZADO de un símbolo se usa después de visitar el
símbolo.
3 Un ATRIBUTO SINTETIZADO de la parte izquierda de una regla (Padre )se
calculará al final, después de calcular todos los atributos.

Restricciones de Diseño
A:= BCD {A.a:= f(B.a, C.a)} A:= BC {D.h:= (B.a, C.a)} D
EJERCICIO
Considere una gramática de expresión como se escribiría para un analizador
sintáctico predictivo con la recursividad por la izquierda eliminada:

GRAMÁTICA
exp  term exp’
exp1’  +term exp2’
exp  term exp’ exp1’ - term exp2’
exp’  +term exp’ | - term exp’ | λ exp1’  λ
term  factor term’ term  factor term’
term’  *factor term’ | λ term’  *factor term2’
factor  (exp) | numero term’  λ
factor  (exp)
factor  numero

Escriba una gramática con atributos para el valor de una expresión dada por
esta gramática
Desarrollo del Esquema de Traducción Dirigida por Sintaxis

 exp  term exp’


exp  term {exp’.h= term.v} exp’ {exp.v= exp’.v}
 exp1’  +term exp2’
exp1’  + term {exp2’.h= exp1’.h || term.v || +} exp2’{exp1’.v= exp2’.v}
 exp1’ - term exp2’
exp1’  - term {exp2’.h= exp1’.h || term.v || -} exp2’{exp1’.v= exp2’.v}
 exp1’  λ
exp1’= λ {exp1’.v= exp1’.h}
NOTA:
.hereda= .h
.valor= .v
 term  factor term’
term factor {term’.h= factor.v} term’ {term.v= term’.v}
 term’  *factor term2’
term’  * factor {term2’.h= term’.h || factor.v || *} term2’
{term’.v= term2’.v}
 term’  λ
term’= λ {term’.v= term’.h}
 factor  (exp)
factor= exp {factor.v= exp.v}
 factor  numero
factor= numero {factor.v= numero.val_tex}
GRAMÁTICA CON ATRIBUTOS
REGLAS GRAMATICALES ACCIONES SEMÁNTICAS
exp’.hereda= term.valor
exp  term exp’
exp.valor= exp’.valor
exp1’  +term exp2’ exp2’.hereda= exp1’.hereda + term.valor
exp1’.valor= exp2’.valor
exp2’.hereda= exp1’.hereda - term.valor
exp1’ - term exp2’
exp1’.valor= exp2’.valor
exp1’  λ exp1’.valor= exp1’.hereda
term’.hereda= factor.valor
term  factor term’
term.valor= term’.valor
term2’.hereda= term’.hereda * factor.valor
term’  *factor term2’
term’.valor= term2’.valor
term’  λ term’.valor= term’.hereda
factor  (exp) factor.valor= exp.valor
factor  numero factor.valor= numero.val_tex
RECORRIDO DEL ÁRBOL
SEMÁNTICO(VER DIAPOSITIVAS.ARBOL)
PILA Pila 1 exp Pila 2
18 term exp’
-20
Exp exp
19 (10*5)-20 16 -term exp2’
20
exp
term
term exp’ 14 factor term’
12 (10*5) 20
term factor
factor term’ 13 numero
10 (10*5) 20

factor term
(exp)
11 term’ Pila 3
9 λ
10*5
(exp)
(exp) 8 exp’ exp’
term exp’ λ 15 term exp2’
7 (10*5) term λ
term 6 term’
*5 term
factor term’
2 10 term’ 17 term’
4 *factor term2’ λ
factor 5 term’
numero 5
1 10
factor term2’
3 numero λ
5

Anda mungkin juga menyukai