Ist S-Grammatik leistungsstark genug, um alle möglichen DCFL zu generieren?
-
29-09-2020 - |
Frage
in S-Grammatik Alle Produktionen sind in Form von generationspflichtigem Tagencode
"... und jedes Paar (A, A) tritt höchstens einmal in P." auf [p. Linz, 6. ed. , p. 144]
s-grrammar ist eindeutig und ich denke (nicht sicher) Wir können alle eindeutigen CFL von S-Grammar beschreiben. Ich möchte wissen, kann S-Grammatik alle möglichen DCFL oder nicht? Nach diesem Satz, denke ich, dass wir es nicht tun können, aber ich bin mir nicht sicher:
Leider können nicht alle Merkmale einer typischen Programmiersprache von einer S-Grammatik ausgedrückt werden. [p. Linz, 6. ed. , p. 152]
aber alle Sprachen, die von einer S-Grammatik beschrieben werden, ist deterministisch .
Ich sage das, weil wir 2-staatliche DPDA für jede einfache Grammatik mit dieser Definition erstellen können:
generasacodicetagpre.Wenn es DCFL gibt, dass wir keine S-Grammar dafür bereitstellen können, zeigen Sie mir das, bitte und korrigiere mich, wenn ich falsch liege.
danke.
Lösung
eigentlich kann das Beispiel einer nicht akzeptierten Sprache aufgrund der Technik ziemlich einfach sein. Die Sprache $ A ^ * $ wird nicht von einer S-Grammatik erzeugt.
In der Tat kann eine S-Grammatik nicht erzeugt $ \ VAREPSILON $ . Um $ S $ aus dem Stapel zu entfernen, müssen wir mindestens eine Produktion anwenden, und jede Produktion erzeugt ein terminales Symbol.
Aber auch wenn wir dies als Technik sehen, können wir nicht zwei Saiten erstellen, von denen eines das Präfix eines anderen ist. Wenn wir eine Zeichenfolge
Dies ist der Fall, da die PDA, die Sie produzieren, eigentlich ein PDA mit leerer Stack-Akzeptanz: Wenn der Stapel leer ist (oder tatsächlich nur
Die Echtzeiteigenschaft (Lesen eines Symbols jeden Schritt) ist ein größeres Problem.
Betrachten Sie die Sprache $ \ {a ^ ib ^ jc ^ i \ mid i, j \ ge 1 \ ^ \ cup \ {a ^ ib ^ jd ^ j \ mid i, j \ Ge 1 \} $ . Es kann von einem DPDA akzeptiert werden. Push $ A $ , Push $ B $ 's. Wenn Sie dann einen
Natürlich hat der PDA nur einen einzigen Zustand. Ich muss überprüfen: Es scheint, dass auch die Einschränkung der einzelnen Zustand die akzeptierten Sprachen verringert.