5.5. ÁRBOLES DE DERIVACIÓN 85S ✤✜1✣✢✏✛✘❳ ❳ ❳a❳❳❳✏✏❳ ❳❳❳❳ ❳❳2✛✘✚✙ ✛✘ AS43✚✙✚✙ S ✛✘ ✏✏✏ ✏✏✏✛✘ A✛✘ a57✚✙ b✛✘✚✙✂ ❇ 86✂ ❇❇❇❇❇❇ ✚✙✚✙ ✂✂a ✤✜b ✂✛✘✂✛✘ a9✣✢ 1011✚✙ ✚✙Figure 5.3: Árbol correspondiente a la gramática GSe verá que un árbol <strong>de</strong> <strong>de</strong>rivación es una <strong>de</strong>scripción natural <strong>de</strong> la <strong>de</strong>rivación <strong>de</strong> una forma sentencial <strong>de</strong>la gramática G. Si se leen las etiquetas <strong>de</strong> las hojas <strong>de</strong> izquierda a <strong>de</strong>recha, se obtiene una forma sentencial.Este string es llamado el rédito (yield) <strong>de</strong>l árbol <strong>de</strong> <strong>de</strong>rivación.Se necesita también el concepto <strong>de</strong> subárbol. Un subárbol <strong>de</strong> un árbol <strong>de</strong> <strong>de</strong>rivación es un cierto vértice,todos sus <strong>de</strong>scendientes, los arcos que los conectan y sus etiquetas. Se ve igual que un árbol <strong>de</strong> <strong>de</strong>rivaciónexcepto que la etiqueta <strong>de</strong> su raíz pue<strong>de</strong> no ser el símbolo inicial <strong>de</strong> la gramática. Si la variable A es laetiqueta <strong>de</strong> la raíz, se dice que ese subárbol es un árbol-A. Por lo tanto, árbol-S es un sinónimo para árbol<strong>de</strong> <strong>de</strong>rivación si S es el símbolo inicial.Ejemplo 72 Consi<strong>de</strong>re la gramática y el árbol <strong>de</strong> <strong>de</strong>rivación <strong>de</strong>l ejemplo anterior que se reproduce a continuación:✟✟✟✟ a✑✑✑✑SS❳ ❳ ❳ ❳❳❳❳SA◗ ◗◗◗bA ❅ ❅❅a b aFigure 5.4: Árbol correspondiente a la gramática Ga
86 CHAPTER 5.ACEPTACIÓN Y GENERACIÓN DE LENGUAJES LIBRES DE CONTEXTOEl rédito <strong>de</strong> ese árbol es: aabbaa. Nótese que en este caso todas las hojas tienen etiquetas que sonterminales; pero esto no es necesario, podría haber hojas con etiqueta ε o con una variable.Nótese que S⇒ ∗ G aabbaa por la <strong>de</strong>rivación siguiente:S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaaLa Figura 5.5 es un subárbol <strong>de</strong>l árbol <strong>de</strong> <strong>de</strong>rivación anterior; correspon<strong>de</strong> al vértice 3 el árbol original ysus <strong>de</strong>scendientes.✚✚✚SA❩ ❩❩❩b Aab❅❅❅aFigure 5.5: Vértice 3 <strong>de</strong>l subárbol originalEl rédito <strong>de</strong> este subárbol es abba. La etiqueta <strong>de</strong> su raíz es a y A ∗ ⇒ G abba a través <strong>de</strong> la siguiente<strong>de</strong>rivación:A ⇒ SbA ⇒ abA ⇒ abbaTeorema 17 Sea G = (V, T, P, S) una gramática libre <strong>de</strong> contexto. Entonces S ∗ ⇒ G α si y sólo si hay unárbol <strong>de</strong> <strong>de</strong>rivación para G cuyo rédito sea α.Demostración : Se probará algo un poco más general, que para cualquier A ∈ V , A⇒α ∗ si y sólo si existeun árbol-A cuyo rédito sea α.Suponga primero que α es el rédito <strong>de</strong> un árbol-A. Se prueba, por inducción en el número <strong>de</strong> vérticesinteriores en el árbol, que A⇒α. ∗ Si hay un solo nodo interior, el árbol <strong>de</strong>be lucir como el <strong>de</strong> la Figura 5.6.A✟ ❍✟✟✟ ✂ ❍❍❍❍✂✂X 1 X 2 ... X NFigure 5.6: Árbol <strong>de</strong> <strong>de</strong>rivación con un solo nodo interiorEn ese caso, X 1 , X 2 , . . . , X n <strong>de</strong>be ser α y A → α <strong>de</strong>be ser una producción <strong>de</strong> P , por la <strong>de</strong>finición <strong>de</strong> unárbol <strong>de</strong> <strong>de</strong>rivación. Luego, A ⇒ α.Supóngase ahora que el resultado es válido para árboles con hasta k − 1 nodos interiores. Sea α el rédito<strong>de</strong> un árbol-A con k nodos interiores, para algún k > 1. Consi<strong>de</strong>re los hijos <strong>de</strong> la raíz; no pue<strong>de</strong>n sertodos hojas ya que k > 1. Sean las etiquetas <strong>de</strong> los hijos X 1 , X 2 , . . . , X n , <strong>de</strong>s<strong>de</strong> la izquierda. EntoncesA → X 1 X 2 . . . X n es una producción en P . Note que en la discusión siguiente n ≥ 1.Si el i-ésimo hijo no es una hoja, es la raíz <strong>de</strong> un subárbol y X i ∈ V . El subárbol <strong>de</strong>be ser un árbol-X iy tendrá algún rédito α i . Si el vértice i es una hoja, sea α i = X i . Es fácil ver que si j < i, el vértice j y sus✷