Inicio > Compiladores > Análisis Sintáctico Descendente LL(1)

Análisis Sintáctico Descendente LL(1)

Voy a continuar con los temas y en esta ocasión trabajaremos el análisis LL(1) 

Es del tipo LL1 porque empezamos a derivando por la izquierda, y los carácteres son leidos de izquierda a derecha, el 1 por que se lee 1 solo elemento de entrada.

También se puede considerar como un intento de construir un árbol de análisis sintáctico para la entrada comenzando desde la raíz y creando los nodos del árbol en orden previa.

Bueno primeramente para trabajar el análisis sintáctico descendente se debe realizar primeramente algunas operaciones para que la gramática sea LL1 las cuales son:

- Eliminar Ambiguedad

- Eliminar Recursividad por la Izquierda

- Factorizar

- Primeros y siguientes

  • Ambigüedad

Una gramática es ambigua cuando genera más de un árbol de derivación.

Para eliminar la ambigüedad se debe reescribir la gramática.

Ejemplo:

  • Recursividad por la Izquierda

Una gramática es recursiva por la izquierda si tiene un no Terminal A tal que existe una derivación A->Aα para alguna cadena . Es decir por simple observación podemos identificar.

Para eliminar la recursividad por la izquierda se utiliza la siguiente formula.

Ejemplo:

Gramática Recursiva

En el siguiente aporte veremos la factorización.

Categorías:Compiladores
  1. Chaman
    Mayo 9, 2008 a las 1:32 am | #1

    Que tal fausto, solo con una consulta, de casualidad en la producion

    Prop-> if exp then proa
    | if exp then proa else
    | otra

    Deveria de ser:

    Prop-> if exp then Prop
    | if exp then Prop else
    | otra

    Saludos!

  2. faustol
    Mayo 10, 2008 a las 1:00 am | #2

    Efectivamente … He cometido un error.gracias por la observacion

  1. Aún no hay trackbacks
Tienes que iniciar sesión para escribir un comentario.