La sintaxis abstracta es una forma para que los programadores de computadoras tracen la estructura del programa que desean crear sin preocuparse por el código real necesario para implementarlo. Le permite al programador concentrarse en lo que el programa necesita hacer antes de enfocarse en cómo hacer que la computadora realmente realice las funciones deseadas. La sintaxis abstracta describe las tareas específicas del programa, como sumar dos números, y muestra qué tipos de datos se pueden usar dentro de ese programa. Una vez que se completa el mapeo abstracto, se dibuja un árbol de sintaxis abstracta, que hace coincidir los conceptos abstractos con la sintaxis concreta: los símbolos reales que un programador necesita escribir para ejecutar el programa que está creando.
La idea de la sintaxis abstracta es centrarse en los tipos de datos y sus relaciones sin quedar atrapado en los detalles de cómo codificarlos. El código de computadora es muy diferente al lenguaje humano, y tratar de pensar en estos términos es difícil. En cambio, los programadores hacen una lista de los pasos que el programa necesita completar y luego usan una sintaxis concreta para hacer coincidir los términos abstractos con los términos del código de computadora que realizan esos pasos. A menudo, el programador incluirá tipos de datos en su marcado abstracto para mostrar con qué tipos de datos, ya sean números, letras o decimales, el programa puede trabajar. Sin embargo, no se requieren tipos de datos específicos en esta etapa de la programación, y el programador puede optar por utilizar tipos de datos abstractos, que son puramente teóricos y serán reemplazados por tipos de datos específicos cuando se escriba el programa.
Este tipo de idea abstracta de programación se utiliza a menudo en la teoría de compiladores. Las computadoras solo pueden comprender dos valores: 1 y 0. Esto se conoce como código binario. Para que la computadora comprenda un programa escrito en un lenguaje de programación, debe compilar o traducir las palabras y letras en una secuencia de 1 y 0. Los compiladores son complejos de crear y trazar una idea vaga o abstracta de lo que necesitan hacer ayuda al programador a planificar un código libre de errores.
Cuando el programador quiere mapear la sintaxis abstracta a la sintaxis concreta y comenzar a codificar el programa o compilador, crea un árbol de sintaxis abstracta. Esta es simplemente una lista de todas las instrucciones abstractas que ha escrito, como «agregar 2 variables», con una línea trazada desde cada término abstracto hasta la línea específica de código necesaria para ejecutar esa instrucción. El programador puede usar cualquier término abstracto que desee, pero es más común usar términos de código bien conocidos como «var» para variable e «int» para entero.