Un árbol de sintaxis abstracta (AST) es una forma de representar la sintaxis de un lenguaje de programación como una estructura similar a un árbol jerárquico.
Esta estructura se utiliza para generar tablas de símbolos para compiladores y la generación de código posterior. El árbol representa todas las construcciones en el lenguaje y sus reglas posteriores.
Un árbol sintáctico abstracto representa todos los elementos sintácticos de un lenguaje de programación, similar a los árboles sintácticos que usan los lingüistas para los lenguajes humanos.
El árbol se centra en las reglas en lugar de elementos como llaves o punto y coma que terminan las declaraciones en algunos idiomas. El árbol es jerárquico, con los elementos de las sentencias de programación desglosados en sus partes.
Por ejemplo, un árbol para una declaración condicional tiene las reglas para las variables colgando del operador requerido.
Los AST se usan ampliamente en los compiladores para verificar la precisión del código. Si el árbol generado contiene errores, el compilador imprime un mensaje de error.
Los AST se utilizan porque algunas construcciones no se pueden representar en una gramática independiente del contexto, como la tipificación implícita.
Los AST son muy específicos de los lenguajes de programación, pero se están realizando investigaciones sobre árboles de sintaxis universales.