Un arbore de sintaxă abstractă (AST) este o structură sintactică realizată pentru a reprezenta funcțiile care apar în cadrul unui program. Se bazează pe codul sursă al programării. De obicei ierarhic în design, arborele de sintaxă abstractă începe de la funcțiile de bază și se îndreaptă în jos pentru a afișa funcțiile și codul mai implicate din fiecare funcție de bază. Utilizarea acestui arbore face mai ușor pentru programatori să vizualizeze codul fără a căuta prin codul sursă în sine, care este mult mai lung și poate dezvălui defecte sau slăbiciuni ale codului. Arborele se numește abstract, nu pentru că este greu de înțeles sau are o formă abstractă, ci pentru că nu include sintaxa de codare precum semnele de paranteză și alte simboluri care apar inevitabil în cod.
Când un programator construiește un program, el sau ea trebuie să construiască funcțiile din lucruri precum instrucțiuni „dacă-atunci” și instrucțiuni „sau else”. Când vă uitați la codul sursă, poate fi dificil să vedeți dacă fiecare declarație și condiție a fost îndeplinită pe deplin și dacă toate funcțiile au fost create corect. Un arbore de sintaxă abstractă oferă programatorului o modalitate rapidă de a examina programarea pentru a vedea fiecare condiție și cum se aplică programului în general.
Arborele este realizat în mod ierarhic. În partea de sus se află una dintre afirmațiile principale și, din acea afirmație, ramurile curg în jos pentru a arăta ce îndeplinește condițiile. Aceasta continuă, arătând alte funcții și condiții pentru întregul program. Variabilele din programare sunt adesea afișate, de asemenea. Majoritatea limbajelor de programare au capacitatea de a genera un arbore de sintaxă abstractă.
Abstract înseamnă de obicei prost format, greu de înțeles sau amorf. Acesta nu este cazul unui arbore de sintaxă abstractă. Motivul pentru care este folosit cuvântul „abstract” este că arborele nu afișează sintaxa și programarea așa cum sunt; mai degrabă, elimină simbolurile implicite care nu sunt importante pentru afișare. De exemplu, parantezele sunt adesea folosite destul de liberal în programare, dar nu sunt afișate în arbore. Acest lucru se datorează faptului că afișarea acestei sintaxe necesită mult mai mult spațiu, îngreunează privirea la arbore, iar programatorul ar ști despre aceste simboluri în codul sursă.
Dacă un programator dorește să vadă aceste simboluri auxiliare, este adesea folosit un arbore de sintaxă concret. Acești copaci sunt similari cu varietatea abstractă, doar că intră în mai multe detalii cu toate simbolurile. Acest arbore este mai bun pentru a vedea bucățile lipsă de simboluri sau cod, în timp ce arborele abstract este mai bun pentru a verifica funcțiile și variabilele programului.