Compiler

Was ist der Hauptvorteil einer Zwischendarstellung (IR), die im Compiler intern weder von der Quellsprache noch von der CPU abhängt?

  1. AMit einer Zwischendarstellung kann ohne Lesen des Quellcodes kompiliert werden
  2. BDie Zwischendarstellung kann von der CPU direkt ausgeführt werden, sodass keine Maschinencode-Erzeugung nötig ist
  3. CDas sprachspezifische Frontend und das CPU-spezifische Backend lassen sich trennen, und auch die Optimierungen können gemeinsam genutzt werden
Antwort und Erläuterung anzeigen

Antwort: C. Das sprachspezifische Frontend und das CPU-spezifische Backend lassen sich trennen, und auch die Optimierungen können gemeinsam genutzt werden

Sollen M Sprachen und N CPUs unterstützt werden, wären ohne gemeinsame Zwischendarstellung M×N Compiler nötig; mit ihr genügen M Frontends (Sprache zur Zwischendarstellung) und N Backends (Zwischendarstellung zur CPU). Auch ein Großteil der Optimierungen muss nur einmal auf der Zwischendarstellung implementiert werden und gilt für alle Sprachen und CPUs. Die Zwischendarstellung ist nicht direkt von der CPU ausführbar und muss am Ende in Maschinencode umgesetzt werden.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Aussage zum Basisblock ist richtig?
  2. Welche Kombination dessen, was Knoten und Pfeile im Kontrollflussgraphen darstellen, ist richtig?
  3. Welche Eigenschaft der Zwischendarstellung in SSA-Form ist richtig?
  4. Wandelt man den obigen Code in SSA-Form um, so erscheint nach der if-Anweisung ein Ausdruck wie „x3 = φ(x1, x2)“. Welche Funktion der φ-Funktion ist richtig?
  5. Welches ist ein richtiges Beispiel für Constant Folding im Compiler?

Vergleiche zu diesem Thema