Sintaxa abstractă este o modalitate prin care programatorii de computere pot mapa structura programului pe care doresc să-l creeze fără a-și face griji cu privire la codul real necesar pentru a-l implementa. Acesta permite programatorului să se concentreze pe ceea ce trebuie să facă programul înainte de a se concentra asupra modului de a face computerul să îndeplinească efectiv funcțiile dorite. Sintaxa abstractă subliniază sarcinile specifice ale programului, cum ar fi adăugarea a două numere împreună, și arată ce tipuri de date pot fi utilizate în acel program. Odată ce maparea abstractă este completă, este desenat un arbore de sintaxă abstractă, care potrivește conceptele abstracte cu sintaxa concretă – simbolurile reale pe care un programator trebuie să le introducă pentru a rula programul pe care îl creează.
Ideea pentru sintaxa abstractă este să se concentreze asupra tipurilor de date și a relațiilor lor, fără a fi prins în detaliile modului de codificare. Codul computerului este mult diferit de limbajul uman și este dificil să încerci să gândești în acești termeni. În schimb, programatorii fac o listă cu pașii pe care programul trebuie să îi parcurgă și apoi folosesc sintaxa concretă pentru a potrivi termenii abstracti cu termenii codului computerului care efectuează acești pași. Adesea, programatorul va include tipuri de date în marcajul ei abstract pentru a arăta cu ce tipuri de date – fie că este vorba de numere, litere sau zecimale – poate lucra programul. Cu toate acestea, tipurile de date specifice nu sunt necesare în această etapă a programării, iar programatorul poate alege să folosească tipuri de date abstracte, care sunt pur teoretice și vor fi înlocuite cu tipuri de date specifice atunci când programul este scris.
Acest tip de idee abstractă de programare este adesea folosită în teoria compilatorului. Calculatoarele pot înțelege doar două valori: 1s și 0s. Acesta este cunoscut sub numele de cod binar. Pentru ca computerul să înțeleagă un program scris într-un limbaj de programare, trebuie să compileze sau să traducă cuvintele și literele într-un flux de 1 și 0. Compilatorii sunt complexe de a crea și de a mapa o idee vagă sau abstractă a ceea ce trebuie să facă îl ajută pe programator să planifice un cod fără erori.
Când programatorul dorește să mapeze sintaxa abstractă la sintaxa concretă și să înceapă să codifice programul sau compilatorul, ea creează un arbore de sintaxă abstractă. Aceasta este pur și simplu o listă cu toate instrucțiunile abstracte pe care le-a scris, cum ar fi „adăugați 2 variabile”, cu o linie trasă de la fiecare termen abstract la linia specifică de cod necesară pentru a executa acea instrucțiune. Programatorul poate folosi orice termeni abstracti dorește, dar este mai obișnuit să folosească termeni de cod bine cunoscuți precum „var” pentru variabilă și „int” pentru întreg.