Vad är ett abstrakt syntaxträd?
Ett abstrakt syntaxträd (AST) är en syntaktisk struktur gjord för att representera de funktioner som förekommer i ett program. Det är baserat på programmeringens källkod. Vanligtvis hierarkiskt i designen börjar det abstrakta syntaxträdet från de grundläggande funktionerna och strömmar nedåt för att visa de mer involverade funktionerna och koden inom varje grundläggande funktion. Användningen av detta träd gör det lättare för programmerare att visualisera koden utan att titta igenom själva källkoden, som är mycket längre, och kan avslöja brister eller svagheter i koden. Trädet kallas abstrakt, inte för att det är svårt att förstå eller har en abstrakt form, utan för att det inte inkluderar kodningssyntaxen som parentesmärken och andra symboler som oundvikligen visas i koden.
När en programmerare bygger ett program måste han eller hon bygga funktionerna från sådant som "if-then" -uttalanden och "eller annat" -uttalanden. När man tittar på källkoden kan det vara svårt att se om varje uttalande och villkor har uppfyllts och om alla funktioner har skapats korrekt. Ett abstrakt syntaxträd ger programmeraren ett snabbt sätt att titta över programmeringen för att se varje villkor och hur det överensstämmer med programmet.
Trädet tillverkas på hierarkiskt sätt. Överst är ett av de viktigaste uttalandena, och från det uttalandet flyter grenar nedåt för att visa vad som uppfyller villkoren. Detta fortsätter och visar andra funktioner och villkor för hela programmet. Variabler i programmeringen visas också ofta. De flesta programmeringsspråk har förmågan att generera ett abstrakt syntaxträd.
Sammanfattning betyder vanligtvis dåligt, svårt att förstå eller amorft. Detta är inte fallet med ett abstrakt syntaxträd. Anledningen till att ordet "abstrakt" används beror på att trädet inte visar syntaxen och programmeringen som det är; snarare tar det bort implicita symboler som inte är viktiga för skärmen. Till exempel används parenteser ganska fritt i programmering, men de visas inte på trädet. Detta beror på att visa denna syntax tar mycket mer utrymme, gör det svårare att titta på trädet, och programmeraren skulle veta om dessa symboler i källkoden.
Om en programmerare vill se dessa tillhörande symboler, används ofta ett konkret syntaxträd. Dessa träd liknar den abstrakta sorten, bara de går mer i detalj med alla symboler. Detta träd är bättre för att titta på saknade bitar av symboler eller kod, medan det abstrakta trädet är bättre för att kontrollera programmets funktioner och variabler.