Resumen
En este tema se han visto los siguientes conceptos:
- El analizador sintáctico construye un árbol porque:
- Es la forma más eficaz para que las demás fases accedan a las distintas partes de la entrada.
- Permite realizar varias pasadas sobre la entrada, eliminando así las restricciones que impondrían al lenguaje el usar una sola pasada.
- El tipo de árbol que se crea es un AST porque:
- Tiene sólo lo esencial, simplificando así los recorridos posteriores.
- Permite refactorizar el sintáctico sin afectar al resto de las fases.
- El AST no se obtiene a partir de la gramática ni a partir del árbol concreto.
- Se diseña a partir de las necesidades de las siguientes fases del traductor.
- La especificación de un AST, es decir, la descripción de los nodos que pueden aparecer en un AST, se realiza mediante una gramática abstracta.
- Esta, además, guía en la implementación de los nodos.
- La creación del árbol se realiza a medida que el sintáctico va encontrando las estructuras en la entrada.
- Si se usa una herramienta, ésta ofrecerá alguna forma particular de insertar el código de creación y enlazado de los nodos.