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.