Een Abstract Syntax Tree, of AST, is een boomweergave van de broncode van een computerprogramma die de structuur van de broncode weergeeft. Elk knooppunt in de boom vertegenwoordigt een constructie die in de broncode voorkomt.
Tijdens de conversie naar de AST worden alleen de structurele en inhoudelijke details van de broncode bewaard, en alle aanvullende details worden verwijderd. Informatie die bewaard blijft, en van vitaal belang is voor het doel van de AST, zijn:
- Variabele typen, en plaats van elke variabele-declaratie
- Orde en definitie van uitvoerbare verklaringen
- Linkse en rechtse componenten van binaire operaties
- Identifiers en hun toegewezen waarden
Waarvoor worden AST’s gebruikt?
ASTs worden gebruikt om de structuur van de broncode van een programma weer te geven voor gebruik door de compiler. Een AST is gewoonlijk het resultaat van de syntax-analyse-fase van een compiler. Het dient vaak als een tussenliggende representatie van het programma door verschillende stadia die de compiler nodig heeft, en heeft een sterke invloed op de uiteindelijke output van de compiler.
ASTs worden ook gebruikt voor gebruiksgevallen zoals statische code analyse. Geautomatiseerde hulpmiddelen kunnen de AST van een programma doorkruisen om syntaxfouten en slechte patronen in de code te vinden zonder deze daadwerkelijk uit te voeren.