Hva er et abstrakt syntaks-tre?
Et abstrakt syntaks-tre (AST) er en syntaktisk struktur laget for å representere funksjonene som oppstår i et program. Det er basert på kildekoden til programmeringen. Typisk hierarkisk i design, starter det abstrakte syntaks-treet fra de grunnleggende funksjonene og strømmer nedover for å vise de mer involverte funksjonene og koden i hver grunnleggende funksjon. Bruken av dette treet gjør det enklere for programmerere å visualisere koden uten å se gjennom selve kildekoden, som er mye lengre, og kan avdekke feil eller svakheter i koden. Treet kalles abstrakt, ikke fordi det er vanskelig å forstå eller har en abstrakt form, men fordi det ikke inkluderer kodingssyntaks som parentesmerker og andre symboler som uunngåelig vises i koden.
Når en programmerer bygger et program, må han eller hun bygge funksjonene fra slike ting som "if-then" utsagn og "eller annet" utsagn. Når du ser på kildekoden, kan det være vanskelig å se om alle setninger og betingelser er oppfylt fullt ut og om alle funksjonene er opprettet riktig. Et abstrakt syntaks-tre gir programmereren en rask måte å se over programmeringen for å se hver tilstand og hvordan det gjelder programmet generelt.
Treet er laget på hierarkisk vis. Øverst er et av hoveduttalelsene, og fra det utsagnet strømmer grener nedover for å vise hva som tilfredsstiller forholdene. Dette fortsetter, og viser andre funksjoner og betingelser for hele programmet. Variabler i programmeringen vises ofte også. De fleste programmeringsspråk har muligheten til å generere et abstrakt syntaks-tre.
Sammendrag betyr vanligvis dårlig dannet, vanskelig å forstå eller amorf. Dette er ikke tilfelle med et abstrakt syntaks-tre. Årsaken til at ordet "abstrakt" brukes er fordi treet ikke viser syntaks og programmering som det er; snarere fjerner det implisitte symboler som ikke er viktige for skjermen. For eksempel brukes parenteser ofte ganske liberalt i programmering, men de vises ikke på treet. Dette skyldes at det å vise denne syntaksen tar mye mer rom, gjør det vanskeligere å se på treet, og programmereren ville vite om disse symbolene i kildekoden.
Hvis en programmerer ønsker å se disse tilleggssymbolene, blir det ofte brukt et konkret syntaks-tre. Disse trærne ligner på den abstrakte sorten, bare de går nærmere inn på alle symbolene. Dette treet er bedre for å se på manglende biter av symboler eller kode, mens det abstrakte treet er bedre for å sjekke opp programmets funksjoner og variabler.