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.





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!
Efectivamente … He cometido un error.gracias por la observacion