Mis on abstraktne süntaksipuu?

Abstraktne süntaksipuu (AST) on süntaktiline struktuur, mis on loodud esindama programmis esinevaid funktsioone. See põhineb programmeerimise lähtekoodil. Tavaliselt hierarhilise kujundusega abstraktne süntaksipuu algab põhifunktsioonidest ja liigub allapoole, et näidata iga põhifunktsiooni rohkem kaasatud funktsioone ja koodi. Selle puu kasutamine hõlbustab programmeerijatel koodi visualiseerimist ilma palju pikemat lähtekoodi läbi vaatamata ja võib paljastada koodi vigu või nõrkusi. Seda puud nimetatakse abstraktseks mitte sellepärast, et seda oleks raske mõista või sellel oleks abstraktne kuju, vaid sellepärast, et see ei sisalda kodeerimise süntaksit, nagu sulud ja muud sümbolid, mis koodis paratamatult esinevad.

Kui programmeerija koostab programmi, peab ta üles ehitama funktsioonid sellistest asjadest nagu “kui-siis” ja “või muidu” laused. Lähtekoodi vaadates võib olla raske näha, kas iga väide ja tingimus on täielikult täidetud ning kas kõik funktsioonid on õigesti loodud. Abstraktne süntaksipuu annab programmeerijale kiire võimaluse programmeerimine üle vaadata, et näha iga tingimust ja seda, kuidas see programmile üldiselt kehtib.

Puu on valmistatud hierarhiliselt. Ülaosas on üks peamisi väiteid ja sellest väitest voolavad oksad allapoole, et näidata, mis tingimustele vastab. See jätkub, näidates kogu programmi muid funktsioone ja tingimusi. Sageli kuvatakse ka programmeerimises olevaid muutujaid. Enamikul programmeerimiskeeltel on võimalus genereerida abstraktset süntaksipuud.

Abstraktne tähendab tavaliselt halvasti vormitud, raskesti mõistetavat või amorfset. Abstraktse süntaksipuu puhul see nii ei ole. Sõna “abstraktne” kasutamise põhjus on see, et puu ei kuva süntaksit ja programmeerimist sellisena, nagu see on; pigem eemaldab see kaudsed sümbolid, mis kuva jaoks pole olulised. Näiteks sulgusid kasutatakse programmeerimises sageli üsna ohtralt, kuid neid ei näidata puul. Selle põhjuseks on asjaolu, et selle süntaksi näitamine võtab palju rohkem ruumi, muudab puu vaatamise raskemaks ja programmeerija teab neid sümboleid lähtekoodis.

Kui programmeerija soovib neid abisümboleid näha, kasutatakse sageli konkreetset süntaksipuud. Need puud on sarnased abstraktse sordiga, ainult et nad lähevad üksikasjalikumalt kõigi sümbolitega. See puu sobib paremini puuduvate sümboli- või kooditükkide vaatamiseks, samas kui abstraktne puu on parem programmi funktsioonide ja muutujate kontrollimiseks.