Abstrakter Syntaxbaum

- while b ≠ 0
- if a > b
- a := a − b
- else
- b := b − a
- if a > b
- return a
Der Begriff Abstrakter Syntaxbaum (englisch abstract syntax tree, AST) bezeichnet die Darstellung eines Computerprogramms in Form eines Baumes.
Nutzen
Da typische Informationen eines Computerprogramms wie Programmfluss und Variablendeklarationen durch eine definierte Syntax in Text oder einer grafischen Form abgespeichert sind, wird beim Erzeugen eines abstrakten Syntaxbaums die formale Repräsentation in hierarchische abstrakte Teilabschnitte - meist nicht mehr an die Syntax gekoppelt - umgewandelt. Durch das Umwandeln in einen abstrakten Syntaxbaum können Operationen und Programmabläufe generalisiert werden. Dies ermöglicht, bei Einhaltung einer standardisierten Menge an Operationen und Definitionen, unabhängig von der Quellsprache Analysen des Quellcodes zu generieren.
Anwendung
Compiler, Debugger, Minifier, Optimizer und Validatoren arbeiten oft intern mit einem abstrakten Syntaxbaum. In Compilern, Debuggern und Validatoren werden abstrakte Syntaxbäume zur semantischen Überprüfung des Programmes genutzt. Compiler, Minifier und Optimizer nutzen ASTs zur Erkennung und Transformation von bekannten Mustern von Programmabläufen. In manchen Anwendungen wird anstelle eines abstrakten Syntaxbaumes ein Syntaxbaum verwendet.