Вы находитесь на странице: 1из 5

Un rbol de anlisis sintctico o rbol de derivacin es un rbol cuyos nodos representan terminales y no terminales de la gramtica donde el nodo raz

es el smbolo de inicio y los hijos de cada nodo no terminal son los smbolos que reemplazan a ese no terminal en la derivacin (ningn smbolo terminal puede ser nodo interior del rbol, ni ningn smbolo no terminal puede ser una hoja). A continuacin se presenta un rbol de anlisis sintctico para la cadena zazababa usando la siguiente gramtica y cual quiera de las derivaciones. Ejemplo 1 S M M N N S zMNz aMa z bNb z zMNz aMaNz zazaNz zazabNbz zazabzbz

Una secuencia de derivaciones puede representarse mediante un rbol. Formalmente. Denicin (rbol de derivacin) Dada una gramtica independiente del contexto G = (V, T, P, S), se dene un rbol de derivacin para G como uno que verica las siguientes condiciones: - cada nodo interior est etiquetado con una variable de V , - cada hoja est etiquetada con una variable, un carcter terminal o , - si un nodo est etiquetado con una variable A y sus hijos estn etiquetados con X1, . . . ,Xn (respetando el orden de aparicin), entonces A X1 Xn es una produccin de P.

Ejemplo La derivacin P G 1P1 G 10P01 G 10101. puede representarse mediante el siguiente rbol de derivacin:

Ntese que la cadena obtenida concatenando, de izquierda a derecha, las hojas del rbol es, precisamente, 10101. Obviamente, los rboles que centrarn nuestra atencin son aquellos cuya raz est etiquetada con la variable inicial y cuyas hojas estn etiquetadas con carcteres terminales, i.e. representan cadenas del lenguaje. Veamos a continuacin que los rboles de derivacin y las secuencias de derivaciones son, esencialemnte los mismos objetos, i.e. son equivalentes.
Teorema 1 Dada una gramtica independiente del contexto, digamos G = (V, T, P, S), una variable A V y una cadena w T* tal que A * w.

Entonces, existe un rbol de derivacin cuya raz est etiquetada con A y cuyo resultado es w.
Demostracin La demostracin se lleva a cabo por induccin en el nmero de derivaciones.

Supongamos que w se puede inferir en un nico paso de derivacin a partir de A, i.e. que A w es una produccin. Si w = w1 wm, donde w1, . . . ,wm (V T), construimos el siguiente rbol de derivacin.

En el caso de que w = , el rbol que se construye es el siguiente:

Por induccin, supongamos que para toda cadena derivable de A en a lo ms n pasos, tiene asociada un rbol de derivacin. Sea w una cadena que derivable a partir de A en n + 1 pasos. Supongamos adems que la primera derivacin es de la forma A X1 Xm, donde X1, . . . ,Xm (V T)* {}. Para cada i N, con 1 i m, distinguimos los siguientes casos: - Si Xi = , asociamos a Xi el rbol Ti denido como

- Si Xi = w, con w T, construimos el rbol de derivacin

- Finalmente, si Xi V , considerando las derivaciones que afectan a Xi, obtenemos una cadena subcadena de w, digamos wi (V T)*, y una secuencia de a lo ms n derivaciones Xi wi. Por hiptesis inductiva, existe un rbol de derivacin, digamos Ti, cuya raz est etiquetada con Xi y cuyo resultado es, precisamente, wi. En resumen, para cada Xi, con i N y 1 i m, tenemos un rbol de derivacin asociado Ti. Denimos entonces el rbol

La demostracin concluye observando que el resultado de dicho rbol es la concatenacin de los smbolos w1, . . . ,wm (sean del alfabeto terminal o va riables), i.e. w = w1 wm.

Teorema 2. Dado un rbol de derivacin de una gramtica G = (V, T, P, S) cuya raz est etiquetada mediante A V y cuyo resultado es w (V T)* , existe una secuencia de derivaciones tales que A * w. Demostracin . La demostracin se llevar a cabo por induccin en la profundidad del rbol. Supongamos que el rbol tiene profundidad nula. Por lo tanto, el rbol es de la forma:

donde X1, . . . ,Xm (V T)* . Gracias a la denicin de rbol de derivacin se sigue que A X1 Xm es una produccin, por lo que A X1 Xm es una derivacin admisible. Supongamos que el resultado es cierto para cualquier rbol de derivacin de profundidad n y demostremoslo para los rboles de profundidad n + 1. Sea A la raz de un rbol de profundidad n+1, y sean X1, . . . ,Xk (V T) las etiquetas de sus hijos. Si Xi es, para algn i N con 1 i k, un carcter terminal, denimos wi := Xi. En caso contrario, se sigue que Xi es una variable raz de un rbol de profundidad a lo ms n. Por hiptesis, existe una derivacin que tiene como resultado el resultado del rbol cuya raz es Xi, i.e. Xi * wi. En cualquier caso, el resultado del rbol con raz A es exactamente w = w1 wk, por lo que A X1 Xk * w1 wk.

Nota Una atenta lectura de la demostracin anterior revela que el tipo de derivaciones que aparecen son precisamente las derivaciones ms a la izquierda. Esto es, dado un rbol de derivacin podemos construir una derivacin ms a la izquierda con igual resultado.

http://sistemas.itlp.edu.mx/tutoriales/teoriadelacomputacion/t32.htm de este link lo tome se me hace mas fcil este explicacion

Вам также может понравиться