Subido por MARGARITA PEREZ ZARAGOZA

ÁRBOL DE DERIVACIÓN

Anuncio
ÁRBOL DE DERIVACIÓN
Un árbol es un conjunto de puntos, llamados nodos, unidos por líneas llamadas
aristas o arcos. Una arista conecta dos nodos distintos. Este árbol muestra
claramente como 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 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. El árbol
de derivación permite mostrar gráficamente como se puede derivar cualquier
cadena de un lenguaje a partir del símbolo distinguido de una gramática que
genera ese lenguaje. Ciertas gramáticas permiten que una cadena terminal
tenga más de un árbol de análisis. Esta situación hace que esa gramática sea
inadecuada para un lenguaje de programación, ya que el compilador no puede
decidir la estructura sintáctica de determinados programas fuentes y, por tanto,
no podría deducir con seguridad cuál será el código ejecutable apropiado
correspondiente al programa.
CONSTRUCCION DE LOS ARBOLES DE DERIVACION
Sea G: = (V, Σ, Q0, P) una gramática libre de contexto, sea A ∈ V una variable.
Diremos que un ´árbol TA: = (V, E) etiquetado es un ´árbol de derivación
asociado a G si verifica las propiedades siguientes:
• La raíz del árbol es un símbolo no terminal (i.e. una variable).
• Las etiquetas de los nodos del ´árbol son símbolos en V ∪ Σ ∪ {λ}.74 CHAPTER
4. LIBRES DE CONTEXTO
• Cada nodo interior esta etiquetado con un símbolo en V (i.e. un símbolo no
terminal).
• Cada hoja esta etiquetada con una variable, un símbolo terminal o λ
• Si un nodo esta etiquetado con una variable X y sus descendientes (leídos de
izquierda a derecha) en el ´árbol son X1, . . ., Xk entonces, hay una producción
X 7→ X1 · · · Xk en G.
Ejemplo
Sea G=(N,T,S,P) una GLC con P: S→ ab|aSb
La derivación de la cadena aaabbb será:
derivación:
http://teodelacomp.blogspot.com/2011/03/arboles-de-derivacion.html
y el árbol de
Descargar