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 .
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.
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: