Hvad er et abstrakt syntaks træ?
Et abstrakt syntaks træ (AST) er en syntaktisk struktur lavet til at repræsentere de funktioner, der forekommer i et program. Det er baseret på kildekoden for programmeringen. Typisk hierarkisk i design starter det abstrakte syntakstræ fra de grundlæggende funktioner og strømmer nedad for at vise de mere involverede funktioner og kode inden for hver grundlæggende funktion. Brug af dette træ gør det lettere for programmerere at visualisere koden uden at kigge gennem selve kildekoden, som er meget længere, og kan afsløre fejl eller svagheder i koden. Træet kaldes abstrakt, ikke fordi det er vanskeligt at forstå eller har en abstrakt form, men fordi det ikke inkluderer kodningssyntaxen som parentesmærker og andre symboler, der uundgåeligt vises i koden.
Når en programmør bygger et program, er han eller hun nødt til at opbygge funktionerne fra sådanne ting som "if-then" udsagn og "eller andet" udsagn. Når man ser på kildekoden, kan det være vanskeligt at se, om enhver erklæring og betingelse er fuldt ud opfyldt, og om alle funktionerne er oprettet korrekt. Et abstrakt syntaks-træ giver programmereren en hurtig måde at se over programmeringen for at se hver betingelse, og hvordan det generelt gælder for programmet.
Træet er lavet på hierarkisk måde. Øverst er et af de vigtigste udsagn, og fra dette udsagn flyder grene nedad for at vise, hvad der opfylder betingelserne. Dette fortsætter med at vise andre funktioner og betingelser for hele programmet. Der vises ofte også variabler i programmeringen. De fleste programmeringssprog har evnen til at generere et abstrakt syntaks træ.
Abstract betyder normalt dårligt dannet, vanskeligt at forstå eller amorft. Dette er ikke tilfældet med et abstrakt syntaks-træ. Årsagen til, at ordet "abstrakt" bruges, er fordi træet ikke viser syntaks og programmering, som det er; snarere fjerner det implicit symboler, der ikke er vigtige for displayet. For eksempel bruges parenteser ofte ret liberalt til programmering, men de vises ikke på træet. Dette skyldes, at det at vise denne syntaks kræver meget mere plads, gør det sværere at se på træet, og programmereren ville vide om disse symboler i kildekoden.
Hvis en programmør ønsker at se disse hjælpesymboler, anvendes der ofte et konkret syntaks-træ. Disse træer ligner den abstrakte sort, kun de går mere detaljeret med alle symbolerne. Dette træ er bedre til at se på manglende dele af symboler eller kode, mens det abstrakte træ er bedre til at kontrollere programmets funktioner og variabler.