Análisis hacia abajo

El análisis de arriba hacia abajo es uno de los métodos para determinar si una cadena de entrada pertenece a algún lenguaje formal descrito por  la gramática libre de contexto LL(k) . Esta es una clase de algoritmos de análisis gramatical , donde las reglas de una gramática formal se expanden a partir del carácter de inicio hasta que se obtiene la secuencia requerida de tokens .

Idea de método

Para cada símbolo no terminal K , se construye una función que, para cualquier palabra de entrada x , hace 2 cosas:

Tal función debe cumplir con los siguientes criterios:

Si no se puede calcular dicho comienzo (y se prueba la corrección de la función para el no terminal K ), entonces los datos de entrada no corresponden al idioma y se debe detener el análisis.

El análisis consiste en llamar a las funciones descritas anteriormente. Si hay una regla compuesta para el no terminal de lectura, cuando se analice, se llamará a otras funciones para analizar los terminales incluidos en él. Un árbol de llamadas que comienza desde la función "superior" es equivalente a un árbol de análisis.

La forma más sencilla y “humana” de crear un analizador sintáctico utilizando el método de descenso recursivo es la programación directa para cada regla de inferencia para no terminales gramaticales.

Condiciones de uso

Sea N un conjunto  finito de símbolos no terminales en una gramática formal dada; Σ  es un conjunto finito de símbolos terminales, entonces el método de descenso recursivo es aplicable solo si cada regla de esta gramática tiene la siguiente forma:

Algoritmos de análisis de arriba hacia abajo

Literatura