Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Concepto,Tipos, Eliminacin
RECURSIVIDAD
27/08/2011
Recursividad
La recursividad se define en una produccin cuando el smbolo de la izquierda se encuentra tambin a la derecha de la produccin. y Existe recursividad por la izquierda y por la derecha, dependiendo de la ubicacin del smbolo, ya sea al principio o final de la produccin.
y
27/08/2011
Recursividad
y
Por la Derecha
ID ::= LETRA ID
Por la izquierda
Num ::= Num Dgito | Dgito
27/08/2011
Recursividad
y
Donde A es el smbolo No terminal con recursividad por la izquierda y Donde son la cadenas de smbolos que siguen despus del No terminal A y Y es es cualquier otra produccin
y
27/08/2011
Se substituye la forma
| A A |
A Por la definicin:A A A
27/08/2011
A A
27/08/2011
27/08/2011
G = (N,T,P,S) es sin producciones y sin ciclos G = (N,T,P,S) no recursiva, con L(G) = L(G)
27/08/2011
27/08/2011
11
AMBIGEDAD
27/08/2011
12
Gramticas Ambiguas
Una gramtica G(N,T,P,S) se considera ambigua, si existen por lo menos dos rboles de derivacin que la representen. y Una gramtica es ambigua si por lo menos posee una produccin ambigua. y La ambigedad es una propiedad indecidible
y
27/08/2011
13
Ambigedad
La ambigedad surge de la derivacin de una cadena a travs de una gramtica, obteniendo dos o mas derivaciones. Gexp = (N, {+, *, (, ), 1,, 9}, P, S) donde P = {E E + E | E * E |1 || 9} y Una expresin ambigua: E + E * E Obtiene dos derivaciones: y E E+E E+E*E y E E*E E+E*E
27/08/2011
14
Gramticas Ambiguas
Otro ejemplo de este tipo de gramticas, donde se reconoce la misma entrada aabb
27/08/2011
Eliminar la Ambigedad
Para eliminar la ambigedad se puede: y Establecer precedencia de operadores o asociatividad.
y
Transformar la gramtica
27/08/2011
Precedencia de Operadores
Se puede transformar la gramtica agrupando los operadores de igual precedencia en grupos y asociando a cada uno una regla, de forma que los que tengan menor precedencia aparezcan ms cercanos al smbolo de inicio, creando una precedencia en cascada.
27/08/2011
Precedencia de Operadores
Por ejemplo la gramtica: E num | E + E | E - E | E * E | E / E
exp exp + term | exp - term | term term term * factor | term / factor | factor factor ( exp ) | num
27/08/2011
Transformacin de Gramtica
Si no se puede utilizar la precedencia de operadores, puede transformarse la gramtica de manera de eliminar la ambigedad. y Reestructurando para que al momento del anlisis se tenga una gramtica mejor estructurada.
y
27/08/2011
FACTORIZACIN
27/08/2011
Factorizacin
Se debe de factorizar cuando dos o ms producciones poseen un conjunto de smbolos iguales, por lo general por la izquierda. Cuando se desea hacer el anlisis de una cadena, no se puede determinar cual es la produccin ms adecuada para el anlisis.
27/08/2011
Factorizacin
Se pueden reescribir, permitiendo retrasar la seleccin de una produccin hasta tener ms smbolos de entradas para la decisin correcta. Este proceso permite evaluar de manera adecuada una entrada, optimizando el anlisis.
27/08/2011
Factorizacin
Para factorizar se debe de substituir a travs del siguiente esquema:
A | |
B1 B2
A | A
A B1 | B2
Solo si despus de
hay un No Terminal y
27/08/2011
Factorizacin
Por ejemplo
P if <exp> then <prop> | if <exp> then <prop> else <prop>
27/08/2011
FIN DE LA PRESENTACIN GRACIAS POR SU ATENCIN!! INTEGRANTES: ISAAC BALDEON EDUARDO MORENO VERNICA GUTIRREZ MANUEL GARCIA ANLISIS DE COMPILADORES S7K
27/08/2011 25
LECCIN
y
Con sus propias palabras indique que es una gramtica ambigua Eliminar la recursin por la izquierda:
x E E +T IT x T T*FIF x F (E) I id
Factorizar lo siguiente:
x P iEtP I iEtPeP I a x E b
27/08/2011