Ein Abstract Syntax Tree, oder AST, ist eine Baumdarstellung des Quellcodes eines Computerprogramms, die die Struktur des Quellcodes vermittelt. Jeder Knoten im Baum repräsentiert ein Konstrukt, das im Quellcode vorkommt.
Bei der Konvertierung in den AST werden nur die strukturellen und inhaltlichen Details des Quellcodes beibehalten, alle weiteren Details werden verworfen. Informationen, die erhalten bleiben und für den Zweck des ASTs wichtig sind, sind:
- Variablentypen und die Position jeder Variablendeklaration
- Reihenfolge und Definition der ausführbaren Anweisungen
- Linke und rechte Komponenten von Binäroperationen
- Bezeichner und ihre zugewiesenen Werte
Wofür werden ASTs verwendet?
ASTs werden verwendet, um die Struktur des Quellcodes eines Programms für den Compiler darzustellen. Ein AST ist normalerweise das Ergebnis der Syntaxanalysephase eines Compilers. Sie dient oft als Zwischendarstellung des Programms über mehrere Stufen, die der Compiler benötigt, und hat einen starken Einfluss auf die endgültige Ausgabe des Compilers.
ASTs werden auch für Anwendungsfälle wie die statische Codeanalyse verwendet. Automatisierte Werkzeuge können den AST eines Programms durchlaufen, um Syntaxfehler und schlechte Muster im Code zu finden, ohne ihn tatsächlich auszuführen.