Zum Inhalt springen

Abstrakter Syntaxbaum

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. Oktober 2017 um 09:11 Uhr durch SpotHot (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Ein abstrakter Syntaxbaum für den euklidischen Algorithmus:
while b ≠ 0
if a > b
a := a − b
else
b := b − a
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.