Skip to main content

¿Qué es un árbol de sintaxis abstracta?

Un árbol de sintaxis abstracta (AST) es una estructura sintáctica hecha para representar las funciones que ocurren dentro de un programa. Se basa en el código fuente de la programación. Típicamente de diseño jerárquico, el árbol de sintaxis abstracta comienza desde las funciones básicas y fluye hacia abajo para mostrar las funciones y el código más involucrados dentro de cada función básica. El uso de este árbol facilita a los programadores visualizar el código sin mirar a través del código fuente, que es mucho más largo y puede revelar fallas o debilidades en el código. El árbol se llama abstracto, no porque sea difícil de entender o tenga una forma abstracta, sino porque no incluye la sintaxis de codificación, como las marcas de paréntesis y otros símbolos que inevitablemente aparecen en el código.

Cuando un programador construye un programa, él o ella tiene que construir las funciones a partir de cosas como las declaraciones "si-entonces" y "o de lo contrario". Al mirar el código fuente, puede ser difícil ver si todas las declaraciones y condiciones se han cumplido por completo y si todas las funciones se han creado correctamente. Un árbol de sintaxis abstracta le brinda al programador una forma rápida de revisar la programación para ver cada condición y cómo se aplica al programa en general.

El árbol está hecho de manera jerárquica. En la parte superior se encuentra una de las declaraciones principales y, a partir de esa declaración, las ramas fluyen hacia abajo para mostrar qué satisface las condiciones. Esto continúa, mostrando otras funciones y condiciones para todo el programa. Las variables en la programación a menudo también se muestran. La mayoría de los lenguajes de programación tienen la capacidad de generar un árbol de sintaxis abstracta.

Resumen generalmente significa mal formado, difícil de entender o amorfo. Este no es el caso con un árbol de sintaxis abstracta. La razón por la que se usa la palabra "resumen" es porque el árbol no muestra la sintaxis y la programación tal como es; más bien, elimina símbolos implícitos que no son importantes para la pantalla. Por ejemplo, los paréntesis a menudo se usan con bastante libertad en la programación, pero no se muestran en el árbol. Esto se debe a que mostrar esta sintaxis ocupa mucho más espacio, hace que sea más difícil mirar el árbol y el programador sabría acerca de estos símbolos en el código fuente.

Si un programador quiere ver estos símbolos auxiliares, a menudo se emplea un árbol de sintaxis concreta. Estos árboles son similares a la variedad abstracta, solo que entran en más detalles con todos los símbolos. Este árbol es mejor para ver fragmentos faltantes de símbolos o código, mientras que el árbol abstracto es mejor para verificar las funciones y variables del programa.