Está en la página 1de 10

ANÁLISIS SINTÁCTICO

DESCENDENTE
Compiladores y Teoría de Lenguajes
Ing. Enrique Waldo Condori Siles
Introducción

Un algoritmo de análisis sintáctico DESCENDENTE analiza una


cadena de tokens de entrada mediante la búsqueda de los
pasos en una derivación por la izquierda.

Un algoritmo así se denomina descendente debido a que el


recorrido implicado del árbol de análisis gramatical es un
recorrido de preorden y, de este modo, se presenta desde la
raíz hacia las hojas.
Introducción

Los analizadores sintácticos descendentes existen en


dos formas:

• Analizadores sintácticos inversos o en reversa.


• Analizadores sintácticos predictivos.
Introducción

Las dos clases de analizadores sintácticos descendentes


que estudiaremos serán:

• Análisis sintáctico descendente recursivo.


• Análisis sintáctico LL(1).
Método básico descendente recursivo

Observamos la regla gramatical para un no terminal A


como una definición para un procedimiento que
reconocerá A. El lado derecho de la regla gramatical
para A especifica la estructura del código para este
procedimiento.
Método básico descendente recursivo

Consideremos la regla gramatical para un factor. Un


procedimiento descendente recursivo que reconoce un
factor (al cual llamaremos por el mismo nombre) se
puede escribir un pseudocódigo de la manera
siguiente:
Método básico descendente recursivo
Método básico descendente recursivo

En un analizador sintáctico descendente recursivo para


la gramática de expresión el procedimiento exp llamará
a term, el procedimiento term llamará a factor y el
procedimiento factor llamará a exp, de manera que
todos estos procedimientos deben ser capaces de
llamarse entre si.
Método básico descendente recursivo
Repetición y Selección: el uso de EBNF

Considere como un segundo ejemplo la regla


gramatical (simplificada) para una sentencia if:

Sent-if → if (exp) sentencia


| if (exp) sentencia else sentencia

Se puede traducir en lo siguiente:


Método básico descendente recursivo
Repetición y Selección: el uso de EBNF

También podría gustarte