Compiler

Welche Kombination dessen, was Knoten und Pfeile im Kontrollflussgraphen darstellen, ist richtig?

  1. AKnoten sind Variablen, Pfeile die Reihenfolge der Wertzuweisungen an Variablen
  2. BKnoten sind Basisblöcke, Pfeile Verzweigungen bzw. Übergänge zwischen den Blöcken
  3. CKnoten sind Funktionen, Pfeile die Einbindungsbeziehung zwischen Dateien
Antwort und Erläuterung anzeigen

Antwort: B. Knoten sind Basisblöcke, Pfeile Verzweigungen bzw. Übergänge zwischen den Blöcken

Ein Kontrollflussgraph ist ein Graph, dessen Knoten Basisblöcke sind und dessen Pfeile die Übergänge zu den Blöcken darstellen, die nach Ausführung eines Blocks folgen können (beide Ziele einer bedingten Verzweigung sowie das direkte Weiterlaufen zum nächsten Block). Rückwärtspfeile dienen dem Erkennen von Schleifen, und er wird verwendet, um zu analysieren, woher und wohin Variablenwerte gelangen. Die Aufrufbeziehungen zwischen Funktionen werden in einem eigenen Aufrufgraphen dargestellt und haben nichts mit der Einbindung von Dateien zu tun.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Eigenschaft der Zwischendarstellung in SSA-Form ist richtig?
  2. 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?
  3. Welches ist ein richtiges Beispiel für Constant Folding im Compiler?
  4. Welcher Code ergibt sich schließlich, wenn auf den obigen Code wiederholt Konstantenpropagierung und Constant Folding angewendet werden?
  5. Welche Aussage ist richtig, wenn auf den obigen Code die Eliminierung gemeinsamer Teilausdrücke angewendet wird?

Vergleiche zu diesem Thema