Está en la página 1de 11

RECAPITULEMOS

AMBIGÜEDAD
• Demostrar que es ambigua
• Escribir una gramática no ambigua que genere
el mismo lenguaje

E -> id
E -> EE
E -> (E)
Id id id
E -> id E
E

E -> EE
E E
E -> (E) E

id E E E E E

id id id
id id id id id
ELIMINAR AMBIGÜEDAD
Átomo: puede ser un solo identificador
E
E -> id E-> A | EA
E -> EE A-> Id | (E)
E A

E -> (E)
id
E A

id id id A id

id
E -> E + E num + num + num
E -> num E
E

E +
E + E

num E + E E + E E

num num num num num


E -> E + E E -> E + A
E -> num A -> num
FACTORIZACION
• Agrupar las producciones del mismo no
terminal

• Reemplazar las producciones a un conjunto


equivalente
E -> E + E E -> E + E | E * E | E = E | num
E -> E * E =E 1 = + S  = num
E -> E = E 2 = * S
E -> num 3 = = S

E -> E E’ | num
E’ -> + S | * S | = S
S -> si E entonces S si_no S fin_si
S -> si E entonces S fin_si
E -> ( validación )
S -> si E entonces S si_no S fin_si | si E entonces S fin_si
E -> ( validación )

 = si E entonces S 1 = si_no S fin_si


2 = fin_si
S -> si E entonces S S’
S’ -> si_no S fin_si | fin_si
E -> ( validación )
ELIMINAR RECURSIVIDAD

C -> dC’
C -> Ca | d
C’ -> aC’ | 
EJEMPLO
E -> E+T E -> TE’
E -> T E’ -> +TE’ | 
T -> T*F E -> E+T | T
T -> FT’
T -> F T -> T*F | F
T’ -> *FT’ | 
F -> (E) F -> (E)
F -> (E)
F -> i
F -> i F -> i

También podría gustarte