29.01.2014 Aufrufe

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Beispielsweise hat die Grammatik G Idf für “Identifier” in Abbildung 4 auf Seite 8 folgende<br />

Herleitung des Worts b46.<br />

Daher gilt Idf ⇒ ∗ b46.<br />

Idf ⇒ BA ⇒ BZA ⇒ BZZA<br />

⇒<br />

BZZ ⇒ bZZ ⇒ b4Z ⇒ b46<br />

Definition <strong>1.</strong>5 (Erzeugte Sprache L(G)). Sei G =(V,Σ,P,S) eine Grammatik. Die durch G<br />

erzeugte Sprache<br />

L(G) = { def<br />

w ∈ Σ ∗ : S ⇒ ∗ w }<br />

besteht aus allen Wörtern w ∈ Σ ∗ , die sich aus dem Startsymbol S ableiten lassen. L(G) wird<br />

häufig auch die von G definierte oder generierte Sprache genannt.<br />

Wir betrachten die Grammatik G Idf in Abbildung 4 auf Seite 8. Die erzeugte Sprache L(G Idf )<br />

ist – wie erwartet – die Sprache bestehend aus allen Zeichenketten, die mit einem Buchstaben<br />

beginnen <strong>und</strong> dann mit einem beliebig langen (eventuell leeren) Wort – gebildet aus Buchstaben<br />

<strong>und</strong> Ziffern – enden. Aufgr<strong>und</strong> der einfachen Struktur der Grammatik G Idf kann diese Aussage<br />

zwar als <strong>of</strong>fensichtlich angesehen werden. Dennoch wollen wir exemplarisch am Beispiel einer<br />

vereinfachten Version G von G Idf erläutern, wie der Nachweis, dass die erzeugte Sprache einer<br />

Grammatik mit einer gegebenen Sprache L übereinstimmt, erbracht werden kann. Grammatik<br />

G verwendet nur zwei Termimale b (anstelle aller Buchstaben) <strong>und</strong> C (anstelle aller Ziffern)<br />

<strong>und</strong> die Nichtterminalen S (statt Idf ), A <strong>und</strong> B (wie in G Idf ) <strong>und</strong> C (statt Z). Die Regeln von G<br />

sind wie folgt:<br />

S → BA<br />

A → ε ∣ B → b<br />

∣ BA CA C → c<br />

Die Behauptung ist nun, dass L(G) = { bx : x ∈ {b,c} ∗ } . Es ist <strong>of</strong>fensichtlich, dass ε in keiner<br />

der beiden <strong>Sprachen</strong> liegt.<br />

“⊇” Zu zeigen ist, dass jedes nicht-leere Wort w über dem Terminalalphabet Σ, dessen erstes<br />

Zeichen ein Symbol b ist, eine Herleitung in G besitzt. Hierzu genügt es eine Herleitung<br />

von w in G anzugeben. Sei w = bx, wobei x = d 1 ...d k mit d i ∈ {b,c}. Für i ∈ {1,...,k}<br />

sei<br />

{<br />

B : falls di = b<br />

D i =<br />

C : falls d i = c<br />

Durch Anwenden der Regeln S → BA <strong>und</strong> A → D i für i = 1,2,...,k <strong>und</strong> schliesslich<br />

A → ε sowie die Regeln B → b <strong>und</strong> D i → d i für i = 1,2,...,k erhalten wir folgende<br />

Herleitung von w in G:<br />

S ⇒ BA ⇒ BD 1 A ⇒ BD 1 D 2 A ⇒ ... ⇒ BD 1 D 2 ...D k A<br />

⇒ BD 1 D 2 ...D k ⇒ bD 1 D 2 ...D k ⇒ ... ⇒ bd 1 D 2 D 3 ...D k<br />

⇒ bd 1 d 2 D 3 ...D k ⇒ ... ⇒ bd 1 d 2 ...d k = w<br />

“⊆” Zu zeigen ist, dass alle aus G herleitbaren Wörter über dem Terminalalphabet {b,c} nichtleer<br />

sind <strong>und</strong> mit dem Symbol b beginnen. Der Beweis hierfür kann erbracht werden,<br />

indem man folgende Eigenschaft für alle in G herleitbaren Wörter über {A,B,C} ∪ {b,c}<br />

nachweist.<br />

11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!