Compiler
Welche Eigenschaft des Dreiadresscodes (Three-Address Code), einer Form der Zwischendarstellung, ist richtig?
- AEin Befehl kann beliebig viele Operationen und Klammern enthalten
- BEin Befehl besteht aus höchstens drei Adressen und einer Operation
- CAls Adressen werden stets physische Speicheradressen geschrieben
Antwort und Erläuterung anzeigen
Antwort: B. Ein Befehl besteht aus höchstens drei Adressen und einer Operation
Beim Dreiadresscode werden komplexe Ausdrücke in eine Folge einfacher Befehle mit jeweils nur einer Operation zerlegt. x = (a + b) * c wird z. B. zu den zwei Befehlen t1 = a + b und x = t1 * c, wobei in einem Befehl höchstens drei Adressen auftreten: das Ergebnis und zwei Operanden. Zwischenwerte erhalten temporäre Namen (t1 usw.). Dadurch wird die Berechnungsreihenfolge klar, und Optimierung sowie Umsetzung in CPU-Befehle fallen leichter. Adressen sind Variablen oder temporäre Namen, keine physischen Adressen.