Professional Documents
Culture Documents
Recursividad izquierda de una gramtica Eliminacin de la recursividad izquierda Indeterminismo en las producciones Factorizacin de una gramtica
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Contenido
Una gramtica recursiva por izquierda da lugar a algunos problemas computacionales a la hora de construir de manera descendente un rbol de derivacin de una cadena, pudiendo afectar a algoritmos descendentes que caen en un bucle infinito de recursin. S S Sa
S S
a
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Una gramtica es recursiva por la izquierda si tiene un no-terminal A tal que existe una produccin: A A.
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Ejemplo: Eliminar la recursividad a izquierdas de: E E+T | T T T*F | F F (E) | id La gramtica con la recursividad izquierda eliminada es: E TE E +TE E T FT T *FT T F (E)| id
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Problemas de indeterminismo cuando varias alternativas en una misma produccin comparten el mismo prefijo. Un algoritmo computacional no sabramos cul elegir de manera inmediata. Tendr que probar una produccin y si se produce un error haramos backtracking
"Existen transformaciones de gramticas para la eliminacin del indeterminismo. Estas transformaciones no modifican el lenguaje que se est reconociendo, pero si que cambian el aspecto de la gramtica, que es en general menos intuitiva".
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Cuando dos alternativas para un no-terminal empiezan igual, no se sabe qu alternativa expandir. P.g.:
Si en la entrada tenemos el if no se sabe cual de las dos alternativas elegir para expandir . La idea es reescribir la produccin para retrasar la decisin hasta haber visto de la entrada lo suficiente para poder elegir la opcin correcta.
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
10
11
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
12
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
13
Teora computacional 12 Gramticas recursivas y no factorizadas Prof. Edgardo Adrin Franco Martnez
14