Compilers
Welke vorm van de abstracte syntaxisboom van de expressie 2 + 3 * 4 is juist?
- ADe wortel is een +-knoop, waarvan het rechterkind een *-knoop is die 3 * 4 voorstelt
- BDe wortel is een *-knoop, waarvan het linkerkind een +-knoop is die 2 + 3 voorstelt
- CDe vijf knopen 2, 3, 4, + en * staan allemaal als directe kinderen naast elkaar onder de wortel
Antwoord en toelichting tonen
Antwoord: A. De wortel is een +-knoop, waarvan het rechterkind een *-knoop is die 3 * 4 voorstelt
Vermenigvuldigen heeft een hogere prioriteit dan optellen, zodat de expressie wordt geïnterpreteerd als 2 + (3 * 4). In een abstracte syntaxisboom staat de bewerking die eerst wordt berekend lager, dus de wortel is + met als linkerkind 2 en als rechterkind een *-knoop met 3 en 4 als kinderen. Als de boom van onder af wordt geëvalueerd, wordt eerst 3 * 4 = 12 berekend en daarna 2 + 12 = 14. De wortel is * als het (2 + 3) * 4 zou zijn, en als alles naast elkaar onder de wortel staat, kan de volgorde van berekening niet worden weergegeven.