Compiler
Welche Gestalt des abstrakten Syntaxbaums für den Ausdruck 2 + 3 * 4 ist richtig?
- ADie Wurzel ist ein +-Knoten, dessen rechtes Kind ein *-Knoten für 3 * 4 ist
- BDie Wurzel ist ein *-Knoten, dessen linkes Kind ein +-Knoten für 2 + 3 ist
- CDie fünf Knoten 2, 3, 4, + und * stehen alle als direkte Kinder der Wurzel nebeneinander
Antwort und Erläuterung anzeigen
Antwort: A. Die Wurzel ist ein +-Knoten, dessen rechtes Kind ein *-Knoten für 3 * 4 ist
Die Multiplikation hat höhere Priorität als die Addition, daher wird der Ausdruck als 2 + (3 * 4) interpretiert. Im abstrakten Syntaxbaum liegen zuerst zu berechnende Operationen weiter unten, die Wurzel ist also +, dessen linkes Kind 2 und dessen rechtes Kind ein *-Knoten mit den Kindern 3 und 4 ist. Wird der Baum von unten ausgewertet, wird zuerst 3 * 4 = 12 berechnet und dann 2 + 12 = 14 erhalten. Die Wurzel wäre * bei der Schreibweise (2 + 3) * 4, und bei Nebeneinanderstellen aller Elemente unter der Wurzel ließe sich die Berechnungsreihenfolge nicht ausdrücken.