Compiler

Welche Beschreibung der Befehlsauswahl (Instruction Selection), einer Phase der Codeerzeugung, ist richtig?

  1. ASie legt fest, mit welchen Befehlen der Ziel-CPU die Operationen der Zwischendarstellung realisiert werden
  2. BSie legt fest, in welcher Reihenfolge das Betriebssystem die auszuführenden Prozesse auswählt
  3. CSie wählt aus dem Quellcode die als Kommentar geschriebenen Befehle aus
Antwort und Erläuterung anzeigen

Antwort: A. Sie legt fest, mit welchen Befehlen der Ziel-CPU die Operationen der Zwischendarstellung realisiert werden

Die Befehlsauswahl ist die Verarbeitung, die die Operationsfolge der Zwischendarstellung konkreten Befehlen der Ziel-CPU zuordnet. Auch für dieselbe Berechnung stehen je nach CPU unterschiedliche Befehle zur Verfügung; a * b + c wird z. B. mit einem Multiply-Accumulate-Befehl (FMA) in einem Befehl realisiert, sonst mit zwei Befehlen aus Multiplikation und Addition. Je besser die CPU-Befehle genutzt werden, etwa durch Zusammenfassen von Adressberechnungen in Adressierungsarten, desto schneller wird der Code. Mit Scheduling des Betriebssystems oder Kommentaren hat sie nichts zu tun.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Beschreibung eines Cross-Compilers ist richtig?
  2. Beim Untersuchen eines mit Optimierung kompilierten Programms im Debugger werden manche Variablenwerte als „nicht darstellbar“ angezeigt. Was ist der Hauptgrund?
  3. Welcher Rückgabewert und welcher verbleibende Code der obigen Funktion ist richtig, wenn Konstantenpropagierung, Constant Folding und Entfernung von totem Code gründlich angewendet werden?
  4. Welche Aufgabe hat die lexikalische Analyse eines Compilers?
  5. Was leistet die Syntaxanalyse (Parsing) eines Compilers?

Vergleiche zu diesem Thema