Compiler

Welche Grammatikart dient zur Beschreibung der Grammatik vieler Programmiersprachen und bildet die Grundlage der Syntaxanalyse?

  1. ANur reguläre Grammatiken
  2. BGrammatik natürlicher Sprachen
  3. CKontextfreie Grammatik
Antwort und Erläuterung anzeigen

Antwort: C. Kontextfreie Grammatik

Verschachtelte Klammern oder Strukturen wie eine if-Anweisung innerhalb einer if-Anweisung lassen sich mit regulären Ausdrücken nicht ausdrücken. Die Grammatik der meisten Programmiersprachen wird durch kontextfreie Grammatiken beschrieben, also Mengen von Ersetzungsregeln wie „Ausdruck → Ausdruck + Term“, und die Syntaxanalyse beruht auf ihnen. Es gibt Analyseverfahren wie LL, bei dem Regeln von oben angewendet werden, und LR, bei dem von unten aufgebaut wird, sowie Werkzeuge, die Parser automatisch aus der Grammatik erzeugen. Reguläre Grammatiken eignen sich für die lexikalische Analyse und können verschachtelte Strukturen nicht behandeln.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Gestalt des abstrakten Syntaxbaums für den Ausdruck 2 + 3 * 4 ist richtig?
  2. Welche Eigenschaft des Dreiadresscodes (Three-Address Code), einer Form der Zwischendarstellung, ist richtig?
  3. Was wird bei der Lebendigkeitsanalyse (Liveness Analysis), die als Vorbereitung der Registerzuteilung durchgeführt wird, ermittelt?
  4. In einer Funktion ist die Zahl gleichzeitig lebendiger Werte an der ungünstigsten Stelle 5. Wie viele Register werden mindestens benötigt, um alle Werte ohne Spill in Registern zu halten, wenn der Interferenzgraph in einem einfachen Fall keine weiteren Einschränkungen außer diesen 5 erzeugt?
  5. Wie oft werden Zählerprüfung und Verzweigung ausgeführt, wenn eine Schleife mit 100 Iterationen durch Loop Unrolling mit viermal aneinandergereihtem Rumpf umgeschrieben wird? (100 sei durch 4 teilbar.)

Vergleiche zu diesem Thema