Hay 2 tipos de técnicas de análisis presentes en el análisis, el primero es el análisis de arriba hacia abajo y el segundo es el análisis de abajo hacia arriba . El análisis de arriba hacia abajo es una técnica de análisis que primero mira el nivel más alto del árbol de análisis y trabaja hacia abajo del árbol de análisis usando las reglas de la gramática, mientras que el análisis de abajo hacia arriba es una técnica de análisis que primero mira el nivel más bajo del análisis árbol y elabora el árbol de análisis sintáctico utilizando las reglas de la gramática.
Hay algunas diferencias presentes para diferenciar estas dos técnicas de análisis, que se detallan a continuación:
Análisis de arriba hacia abajo | Análisis ascendente |
---|---|
Es una estrategia de análisis que primero busca en el nivel más alto del árbol de análisis y trabaja hacia abajo del árbol de análisis utilizando las reglas de la gramática. | Es una estrategia de análisis que primero busca en el nivel más bajo del árbol de análisis y desarrolla el árbol de análisis utilizando las reglas de la gramática. |
El análisis de arriba hacia abajo intenta encontrar las derivaciones más a la izquierda para una string de entrada. | El análisis de abajo hacia arriba se puede definir como un intento de reducir la string de entrada al símbolo de inicio de una gramática. |
En esta técnica de análisis, comenzamos a analizar desde la parte superior (símbolo de inicio del árbol de análisis) hacia abajo (el Node hoja del árbol de análisis) de forma descendente. | En esta técnica de análisis, comenzamos a analizar desde abajo (Node hoja del árbol de análisis) hacia arriba (el símbolo de inicio del árbol de análisis) de forma ascendente. |
Esta técnica de análisis utiliza la derivación más a la izquierda. | Esta técnica de análisis utiliza la derivación más a la derecha. |
La decisión principal más a la izquierda es seleccionar qué regla de producción usar para construir la string. | La decisión principal es seleccionar cuándo usar una regla de producción para reducir la string para obtener el símbolo inicial. |
Ejemplo: analizador de descenso recursivo. | Ejemplo: Analizador de reducción ItsShift. |