Ett abstrakt syntaxträd, eller AST, är en trädrepresentation av källkoden till ett datorprogram som förmedlar källkodens struktur. Varje nod i trädet representerar en konstruktion som förekommer i källkoden.
Under konverteringen till dess AST bevaras endast de strukturella och innehållsrelaterade detaljerna i källkoden, och alla ytterligare detaljer förkastas. Information som bevaras, och som är avgörande för ASTs syfte, är:
- Variabeltyper och platsen för varje variabeldeklaration
- Ordning och definition av exekverbara uttalanden
- Vänster- och högerkomponenter av binära operationer
- Identifierare och deras tilldelade värden
Vad används ASTs till?
ASTs används för att representera strukturen i ett programs källkod så att kompilatorn kan använda den. Ett AST är vanligtvis resultatet av syntaxanalysfasen i en kompilator. Det fungerar ofta som en mellanliggande representation av programmet genom flera steg som kompilatorn kräver, och har en stark inverkan på kompilatorns slutresultat.
ASTs används också för användningsfall som statisk kodanalys. Automatiserade verktyg kan genomkorsa ett programs AST för att hitta syntaxfel och dåliga mönster i koden utan att faktiskt exekvera den.