Formale Methoden I - Universität Bielefeld
Formale Methoden I - Universität Bielefeld
Formale Methoden I - Universität Bielefeld
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
71<br />
Die Ableitung von/Hund/ (analog zu (157)) sieht jetzt so aus:<br />
(159) ,H,Hu,Hun,Hund<br />
Mittels der Zahlen zählen wir einfach, wie viele Symbole bereits ausgegeben wurden.<br />
Damit ist wiederum klar, wie wir eine reguläre (!) Grammatik schreiben, die<br />
ein festes Wort ausgibt und sonst nichts.<br />
Es ist kein Zufall, dass es immer nur ein einziges Nichtterminalsymbol in den<br />
Zeichenketten gibt und dieses am rechten Rand auftritt.<br />
Proposition 12.2 Es sei G eine reguläre Grammatik und⃗x∈(A∪N) ∗ ein Wort<br />
mit⊢ G ⃗x. Dann ist⃗x∈A ∗ ∪ A ∗·N. Das heißt,⃗x hat die Form a 0 a 1···a n−1 oder<br />
a 0 a 1···a n−1 B, wo die a i terminale Buchstaben sind und B ein Nichtterminalzeichen.<br />
Dies kann man sich leicht selbst überlegen; dazu bedienen wir uns der Induktion<br />
über die Länge der Ableitung. Ist diese 0, so haben wir nur das Anfangswort, und<br />
dieses besteht aus dem Startsymbol. Dies erfüllt offensichtlich die Behauptung.<br />
Nun habe die Ableitung die Länge n+1 und die Behauptung sei schon für alle<br />
Ableitungen der Länge≤ n gezeigt. Dann ist das Ende der Ableitung wie folgt:<br />
〈···,⃗xB, ?〉. Die letzte Zeichenkette wird durch Ersetzung von B erzeugt. Dabei<br />
gibt es zwei Fälle. (a) Wir nehmen eine Regel der Form B→a oder B→ε. Dann<br />
erhalten wir das Wort⃗xa bzw.⃗x. (b) Wir nehmen eine Regel der Form B→aC,<br />
dann erhalten wir ein Wort der Form⃗xaC. In beiden Fällen gilt die Behauptung.<br />
Ich weise darauf hin, dass in dem Beweis wesentlich verwendet wurde, dass⃗x<br />
aus S abgeleitet wurde. Nehmen wir zum Beispiel die obige Grammatik. Dann gilt<br />
TabS⊢ G TabaT, undTabaT hat nicht die versprochene Form (und kann deswegen<br />
nicht aus dem Startsymbol hergeleitet werden). Allerdings hat auch schonSabT<br />
nicht diese Form, und wenn man den Beweis genau anschaut, sieht man, dass<br />
immer wenn⃗x die gewünschte Form hat und⃗x⊢ G ⃗y, dann ist auch⃗y von dieser<br />
Form.<br />
Die Äquivalenz zwischen endlichen Automaten und regulären Grammatiken<br />
ist relativ direkt zu sehen. Dazu erst einmal eine wichtige Beobachtung.<br />
Proposition 12.3 Zu jeder regulären Grammatik G existiert eine reguläre Grammatik<br />
G ◦ mit L(G ◦ )=L(G), welche keine Regeln der Form A→abesitzt.<br />
Beweis. Sei G=〈A, N, S, R〉. Sei EN; wir ersetzen jede Regel der Form A→a<br />
durch zwei Regeln, nämlich A→aE und E→ε. Genauer ist<br />
(160)<br />
R ◦ := {A→aE : A→a∈R}<br />
∪ {A→aB : A→aB∈R}<br />
∪ {E→ε}