1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...
1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...
1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...
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