Dies ist eine Frage aus dem Dragon-Buch (ich entschuldige mich für Übersetzungsfehler, ich habe die englische Version nicht zur Hand):
Welche Sprache wird durch diese Grammatik erzeugt?
Ich weiß nicht, was ich hier machen soll. Die Definition im Buch über Sprachen sagt dies aus (und das ist so ziemlich alles im Kapitel):
Eine Sprache ist die Menge aller Wörter, die von jedem Analysebaum erzeugt werden können.
Wenn ich also aus dieser Grammatik "irgendeinen" Analysebaum machen möchte, kann ich ihn rekursiv weiter erstellen, indem ich nur die ersten beiden Regeln verwende. Ich habe ein bisschen gesucht und den Eindruck gewonnen, dass jede Regel einmal verwendet werden muss, bin mir aber nicht sicher. Es wäre sehr hilfreich, wenn jemand einige Tipps zur Lösung dieser Art von Problemen geben könnte.
Antworten:
Hier gibt es kein Einheitsrezept. Es ist im Allgemeinen unentscheidbar, ob zwei CFGs dieselbe Sprache produzieren oder zwei CFLs dieselbe Sprache sind. Eine nützliche Methode ist es, die Eigenschaften zu bemerken, die während der Produktionen unveränderlich bleiben.
quelle
Tipp: Konstruieren Sie einige Wörter, die von dieser Grammatik generiert werden. Sehen Sie ein Muster? Können Sie einige Eigenschaften aller von der Grammatik erzeugten Wörter beschreiben, indem Sie sich nur die Regeln ansehen? Sobald Sie eine (richtige) Vermutung über die von der Grammatik erzeugte Sprache haben, wird es nicht allzu schwierig sein, dies zu beweisen.
quelle