Abstract Syntax Tree eli AST on tietokoneohjelman lähdekoodin puumainen esitys, joka välittää lähdekoodin rakenteen. Jokainen puun solmu edustaa lähdekoodissa esiintyvää konstruktiota.
Muunnettaessa se AST:ksi säilyvät vain lähdekoodin rakenteelliset ja sisältöön liittyvät yksityiskohdat, ja kaikki muut yksityiskohdat hylätään. Tietoja, jotka säilyvät ja jotka ovat AST:n tarkoituksen kannalta elintärkeitä, ovat:
- Muuttujatyypit ja kunkin muuttujan julistuksen sijainti
- suoritettavien lausekkeiden järjestys ja määritelmä
- binary-operaatioiden vasen ja oikea komponentti
- Tunnisteet ja niille annetut arvot
Mihin AST:ia käytetään?
ASTeja käytetään ohjelman lähdekoodin rakenteen esittämiseen kääntäjän käytettäväksi. AST on yleensä kääntäjän syntaksianalyysivaiheen tulos. Se toimii usein ohjelman väliesityksenä useiden kääntäjän tarvitsemien vaiheiden läpi, ja sillä on suuri vaikutus kääntäjän lopulliseen tulosteeseen.
AST:ia käytetään myös käyttötapauksissa, kuten staattisessa koodianalyysissä. Automatisoidut työkalut voivat läpikäydä ohjelman AST:n löytääkseen koodista syntaksivirheitä ja huonoja malleja ilman, että sitä varsinaisesti suoritetaan.