El análisis se clasifica en dos categorías, es decir, análisis de arriba hacia abajo y análisis de abajo hacia arriba. El análisis de arriba hacia abajo se basa en la derivación más a la izquierda, mientras que el análisis de abajo hacia arriba depende de la derivación más a la derecha inversa.
El proceso de construcción del árbol de análisis que comienza desde la raíz y desciende hasta la hoja es análisis de arriba hacia abajo.
- Los analizadores de arriba hacia abajo se construyen a partir de la gramática, que está libre de ambigüedad y recursividad por la izquierda.
- Los analizadores de arriba hacia abajo utilizan la derivación más a la izquierda para construir un árbol de análisis.
- No permite gramática con prefijos comunes.
Clasificación del análisis de arriba hacia abajo:
1. Con retroceso: técnica de fuerza bruta
2. Sin retroceso:
- Análisis de descenso recursivo
- Análisis predictivo o Análisis no recursivo o Análisis LL(1) o Análisis de controlador de tabla
Análisis de descenso recursivo –
- Siempre que un No-terminal gaste la primera vez, vaya con la primera alternativa y compárela con la String I/P dada
- Si no se produce la coincidencia, vaya con la segunda alternativa y compare con la string I/P dada.
- Si no se vuelve a encontrar la coincidencia, vaya con la alternativa y así sucesivamente.
- Además, si se produce una coincidencia para al menos una alternativa, la string I/P se analiza correctamente.
LL(1) o controlador de tabla o analizador predictivo –
- En LL1, la primera L significa De izquierda a derecha y la segunda L significa Derivación más a la izquierda. 1 representa una cantidad de tokens Look Ahead utilizados por el analizador al analizar una oración.
- El análisis sintáctico LL(1) se construye a partir de la gramática que está libre de recursividad por la izquierda, prefijo común y ambigüedad.
- El analizador LL(1) depende de 1 símbolo anticipado para predecir la producción para expandir el árbol de análisis.
- Este analizador no es recursivo.
Publicación traducida automáticamente
Artículo escrito por sanjaymonu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA