Arboles de Derivación

August 15, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Arboles de Derivación...

Description

 

Arboles de derivación Equipo:  _Rosas Miralrio Adrián  _Namitle Chimalhua Jorge

 _López Serna Juan Juan Armando  _Guzmán Espinoza Miguel Ángel  _García Noriega Francisco Daniel

 

Arboles de derivación 

Existe una representación de árbol para las derivaciones que ha demostrado ser extremadamente útil. Este árbol muestra claramente cómo se agrupan los símbolos de una cadena terminal en subcadenas, que pertenecen al lenguaje de una de las variables de la gramática. Pero lo más importante es que el árbol, conocido como “árbol de derivación”, cuando derivación”,  cuando se emplea en un compilador, es la estructura de datos que representa el programa fuente.



En un compilador, la estructura del árbol del programa fuente facilita la traducción del programa fuente a código ejecutable permitiendo que el proceso de traducción sea realizado por funciones naturales recursivas.

 



Un árbol de derivación para una derivación dada se construye creando un nodo raíz que se etiquetó con el símbolo inicial.que El nodo raíz tiene hijosdepara cada símbolo aparezca en elunos ladonodos derecho la producción usada para reemplazar el símbolo inicial. Todo nodo etiquetado con un no terminal también tiene unos nodos hijos etiquetados con los símbolos lado derecho de la producción usada para sustituir ese del no terminal. Los nodos que no tienen hijos deben ser etiquetados con símbolos terminales.

 

Terminolo erminología gía de los arboles arboles 

Los árboles son colecciones de nodos, que mantienen una relación padrehijo. Un nodo tiene como máximo un padre, que se dibuja por encima del mismo, y cero o más hijos, que se dibujan por debajo. Las líneas conectan los padres con sus hijos.



Existe un nodo, el nodo raíz, que no tiene padre; este nodo aparece en la parte superior del árbol. Los nodos sin hijos se denominan hojas. Los nodos que no tienen hojas son nodos interiores.



El hijo de un hijo ... de un nodo es un descendiente de dicho nodo. Un padre de un padre de un ... es un ancestro. Evidentemente, cualquier nodo es ancestro y descendiente de sí mismo. m ismo.



Los hijos de un nodo se ordenan de “izquierda “izquierda   a derecha” derecha”   y se dibujan así. Si el nodo N está a la izquierda del nodo M, entonces todos los descendientes de N son los que están a la izquierda de todos los descendientes de M.

 

Resultado de un árbol de derivación 

Si nos fijamos en las hojas de cualquier árbol de derivación y las concatenamos empezando por la izquierda, obtenemos una cadena denominada resultado del árbol, que siempre es una cadena que se deriva de la variable raíz. E



E

+

E

 

Consideremos la gramática independiente del contexto 

S

 A   A

B

 

  A  a A | a  B    b B | b

La cadena aabbb puede ser derivada mediante  

S => A B => AbB=> AbbB => Abbb=> aAbbb => aabbb Derecha - izquierda 

 

S

A

a

B

A

b

B

b

B

a S => A B => AbB=> AbbB => Abbb=> aAbbb aAbbb => aabbb 

b

 

Grafo derivacional de acuerdo a gramáticas A toda derivación de una gramática de tipo 1, 2 ó 3 le corresponde un árbol de derivación. Este árbol se construye así:  



La raíz del árbol corresponde corresponde al axioma de la gramática Una derivación directa se representa por un conjunto de ramas que salen de un nodo determinado. Al aplicar una regla, uno de los símbolos de la parte izquierda de la producción queda sustituido por la palabra de la parte derecha. Por cada uno de los símbolos de x se dibuja una rama, que parte del nodo correspondiente al símbolo sustituido. En cada rama, el nodo de partida se denomina padre. El final se denomina hijo del primero. Dos nodos hijos del mismo padre se denominan hermanos. Un nodo es ascendiente de otro si es su padre o ascendiente de su padre. Un nodo es descendiente de otro si es su hijo o es descendiente de su hijo.

 





A lo largo del proceso de construcción del árbol, los nodos finales de cada paso, leídos de izquierda a derecha, forman la forma sentencial obtenida por la derivación representada por el árbol. Será rama terminal aquella dirigida hacia un símbolo terminal. Este nodo se llama hoja. El conjunto de hojas, leído de izquierda a derecha, forma la sentencia generada por la derivación.

 

Subárbol Dado un árbol correspondiente a una derivación, se denomina subárbol al árbol cuya raíz es un nodo cualquiera y cuyos nodos son los descendientes de éste. 

Teorema: Los nodos terminales de un subárbol, leídos de izquierda a derecha, forman una frase respecto de la raíz del subárbol.



Demostración:



Sea U la raíz del subárbol, y sea u la palabra formada por los nodos terminales del subárbol. Así, Así, se verifica que U ->+ u 



Sea x la palabra formada, leyendo de izquierda a derecha, los nodos terminales del árbol situados a la izquierda de los del subárbol. Sea y la palabra formada, leyendo de izquierda a derecha, los nodos terminales situados a la derecha de los del subárbol. De esta forma se verifica que x u y es la sentencia definida por el árbol completo.



Como S ->* x   x Uy y además U ->+u, se sigue que u es una frase respecto de U y de la forma sentencial x u y .



Si todos los nodos terminales del subárbol son hijos de la raíz, entonces u es una frase simple.

 

Teorema 

Esto es, cada arco del diagrama indica que demostramos un teorema que establece que si w cumple la condición en la cola del arco, entonces también la cumple en el origen del mismo. mis mo.

 

Ejercicio 

1. Der-Izq 



2. S => ScS => SbScS => abScS => abacS => abaca (izq-der) 

 

Resultados 

1. S=> SbS=> SbScS => SbSca => Sbaca => abaca



2. S => ScS => SbScS => abScS => abacS => abaca 

 

Gracias ...

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF