Finden der Sprache, die durch eine kontextfreie Grammatik erzeugt wird


11

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?

S.einS.bS.bS.einS.ϵ

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.


1
Hinweis: Verwenden Sie reguläre Ausdrücke
Bartosz Przybylski

Tipps finden Sie in den Antworten unten. Antwort auf Ihre Frage: Nein, es ist nicht erforderlich, jede Regel mindestens einmal zu verwenden. Beginnen Sie mit dem Startsymbol (oder Axiom) und wenden Sie die Umschreiberegeln an, bis Sie nur noch Terminalsymbole (hier Kleinbuchstaben) haben.
Hendrik

Angenommen, der leere String ist kein Terminalsymbol. Nach meinem Verständnis ist es nicht möglich, dass nur noch Terminalsymbole übrig sind, oder verstehe ich etwas falsch?
Dan


S.einS.bS.eineinS.bbS.eineinbbS.eineinbbbS.eineineinbbbein

Antworten:


6

einb

Es wäre sehr hilfreich, wenn jemand einige Tipps zur Lösung dieser Art von Problemen geben könnte.

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.


5

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.