16.09.2017 Aufrufe

Vorkurs Informatik

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

18.2 Formale Sprachen und Grammatiken 287<br />

Grammatik G =(N,T,P,E):<br />

Alphabet: T = {a,+,∗,(,)}<br />

Hilfszeichenmenge: N = {E,T,F}<br />

Startsymbol: E<br />

Produktionsregeln: P = { E → T, E → E + T, T → F, T → T ∗ F, F → a, F → (E) }<br />

Beispiel: Ableitung von a ∗ (a + a)+a:<br />

E ⇒ E + T ⇒ T + T ⇒ T ∗ F + T ⇒ F ∗ F + T ⇒ a ∗ F + T ⇒ a ∗ (E)+T<br />

⇒ a ∗ (E + T)+T ⇒ a ∗ (T + T)+T ⇒ a ∗ (F + T)+T ⇒ a ∗ (a + T)+T<br />

⇒ a ∗ (a + F)+T ⇒ a ∗ (a + a)+T ⇒ a ∗ (a + a)+F<br />

⇒ a ∗ (a + a)+a<br />

Abbildung 18.2: Beispiel für eine Sprache aus geklammerten arithmetischen Ausdrücken<br />

Eine Grammatik G ist durch vier Bestandteile gegeben. Der erste Bestandteil ist die Menge N der<br />

Hilfszeichen. Gebräuchlich sind hierfür auch die Begriffe „Nichtterminale“, „Nichtendzeichen“<br />

und „Variablenzeichen“. Im letzten Beispiel war dies die Menge N aus den Zeichen E,T,F.<br />

Des Weiteren gibt es die endliche Menge T der Endzeichen, auch „Terminale“ genannt. Das<br />

sind die Zeichen, die tatsächlich in den Worten der Sprache auftreten, im letzten Beispiel also<br />

die Zeichen a,+,∗,(,).<br />

Der dritte Bestandteil ist die Menge P der Produktionsregeln. Dies sind die Grammatikregeln<br />

der Sprache. Eine Produktionsregel setzt sich aus zwei Zeichenfolgen, y und y ′ , zusammen,<br />

zwischen denen ein → steht. In unserem bisherigen Beispiel bestand das Wort y stets aus einem<br />

Zeichen, während y ′ auch mehrere Zeichen enthalten konnte. Ein Beispiel ist die Produktionsregel<br />

E → E + T, indery = E und y ′ = E + T ist. Diese Einschränkung ist nicht unbedingt<br />

notwendig. Hinzu kommt, dass es auch erlaubt ist, dass y ′ aus gar keinem Zeichen besteht, d.h.<br />

das sogenannte leere Wort ist, wofür häufig das Symbol λ (Lambda) geschrieben wird. Eine<br />

typische Regel könnte S → λ lauten. Dies würde bedeuten, dass S bei der Ableitung von Worten<br />

aus dem gegebenen Wort eliminiert wird, indem es durch das leere Wort ersetzt wird.<br />

Auf Grundlage einer Grammatik kann der Begriff der Ableitung von Worten definiert werden.<br />

Die unmittelbare Ableitung eines Wortes v aus einem Wort u ergibt sich durch Anwendung<br />

einer Grammatikregel auf das Wort u. Ist y → y ′ die entsprechende Produktionsregel, und hat u<br />

die Form xyz, dann kann y durch y ′ ersetzt werden, woraus das Wort v gleich xy ′ z resultiert. Man<br />

sagt, dass u unmittelbar in v übergeht. Die Schreibweise ist u ⇒ v. Durch mehrfaches Anwenden<br />

unmittelbarer Ableitungen ergibt sich die Ableitung eines Wortes v aus u, d.h. u ⇒ ∗ v, das für<br />

„u geht in v über“ oder „v wird aus u abgeleitet“ steht. Formaler ausgedrückt bedeutet dies,<br />

dass es eine Folge w 1 ,...,w n von Worten mit u = w 1 und v = w n gibt, sodass w i ⇒ w i+1 für<br />

i = 1,...,n − 1 ist.<br />

Die von einer Grammatik G erzeugte oder definierte Sprache L(G) ist die Menge aller Worte<br />

w aus Zeichen aus T, die aus dem durch die Grammatik gegebenen Startsymbol der Sprache<br />

ableitbar sind oder formal dargestellt: L(G) ={w | S ⇒ ∗ w, w enthält nur Endzeichen oder ist das<br />

leere Wort}.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!