Abstrakti syntaksipuu (AST) on syntaktinen rakenne, joka on suunniteltu edustamaan ohjelman sisällä esiintyviä toimintoja. Se perustuu ohjelmoinnin lähdekoodiin. Tyypillisesti hierarkkinen muotoilu, abstrakti syntaksipuu alkaa perustoiminnoista ja virtaa alaspäin näyttääkseen enemmän toimintoja ja koodia kussakin perustoiminnossa. Tämän puun käyttö helpottaa ohjelmoijien visualisoimista koodia katsomatta itse lähdekoodia, joka on paljon pidempi ja voi paljastaa koodin puutteita tai heikkouksia. Puuta kutsutaan abstraktiksi, ei siksi, että sitä on vaikea ymmärtää tai sillä on abstrakti muoto, vaan koska se ei sisällä koodaussyntaksia, kuten sulkemerkkejä ja muita symboleja, jotka väistämättä esiintyvät koodissa.
Kun ohjelmoija rakentaa ohjelman, hänen on rakennettava toiminnot esimerkiksi “jos-sitten” -lausunnoista ja “tai muuten” -lausunnoista. Lähdekoodia tarkasteltaessa voi olla vaikeaa nähdä, täyttyvätkö kaikki lausunnot ja ehdot ja onko kaikki toiminnot luotu oikein. Abstrakti syntaksipuu antaa ohjelmoijalle nopean tavan tarkastella ohjelmointia nähdäkseen kunkin ehdon ja sen, miten se koskee ohjelmaa kokonaisuudessaan.
Puu on tehty hierarkkisesti. Yläosassa on yksi tärkeimmistä lausunnoista, ja tästä väitteestä oksat virtaavat alaspäin osoittamaan, mikä täyttää ehdot. Tämä jatkuu ja näyttää muita toimintoja ja ehtoja koko ohjelmalle. Myös ohjelmoinnin muuttujat näytetään usein. Useimmat ohjelmointikielet pystyvät luomaan abstraktin syntaksipuun.
Tiivistelmä tarkoittaa yleensä huonosti muotoiltua, vaikeasti ymmärrettävää tai amorfista. Näin ei ole abstraktin syntaksipuun tapauksessa. Sanaa “abstrakti” käytetään siksi, että puu ei näytä syntaksia ja ohjelmointia sellaisenaan; pikemminkin se poistaa epäsuorat symbolit, jotka eivät ole tärkeitä näytölle. Esimerkiksi sulkeita käytetään usein melko vapaasti ohjelmoinnissa, mutta niitä ei näytetä puussa. Tämä johtuu siitä, että tämän syntaksin näyttäminen vie paljon enemmän tilaa, vaikeuttaa puun tarkastelua ja ohjelmoija tietäisi näistä symboleista lähdekoodissa.
Jos ohjelmoija haluaa nähdä nämä lisäsymbolit, käytetään usein konkreettista syntaksipuuta. Nämä puut ovat samanlaisia kuin abstrakti lajike, vain ne menevät yksityiskohtaisemmin kaikkiin symboleihin. Tämä puu on parempi tarkastella puuttuvia symboleita tai koodia, kun taas abstrakti puu on parempi tarkistaa ohjelman toiminnot ja muuttujat.