• Keine Ergebnisse gefunden

Worte, Formale Sprachen, Grammatiken und die Chomsky-Hierarchie

N/A
N/A
Protected

Academic year: 2021

Aktie "Worte, Formale Sprachen, Grammatiken und die Chomsky-Hierarchie"

Copied!
141
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Sprachen und Komplexit¨at

Sommersemester 2019

Worte, Formale Sprachen, Grammatiken und die Chomsky-Hierarchie

Prof. Dr. David Sabel

LFE Theoretische Informatik

(2)

Worte

Alphabet

EinAlphabetΣ ist eine endliche nicht-leere Menge vonZeichen (oderSymbolen).

Z.B.Σ ={a, b, c, d, e}

Wort

EinWort wuber¨ Σist eine endliche Folge von Zeichen ausΣ.

Beispiele:

bade ist ein Wort ¨uber {a, b, c, d, e}

badenist kein Wort ¨uber {a, b, c, d, e}

(3)

Weitere Notationen zu Worten

Das leere Wortwird alsεnotiert.

F¨urw=a1· · ·an ist|w|=ndieL¨ange des Wortes F¨ur1≤i≤ |w|ist w[i]das Zeichen an i. Position inw.

F¨ura∈Σund wein Wort ¨uber Σsei #a(w)∈Ndie Anzahl an Vorkommen des Zeichens aim Wortw Beispiele:

Es gilt |ε|= 0 und #a(ε) = 0 f¨ur alle a∈Σ.

F¨urΣ ={a, b, c} ist

|abbccc|= 6

|aabbbccc|= 8

#a(abbccc) = 1

#c(aabbbccc) = 3

F¨urw=abbbcd istw[1] =a,w[5] =c und w[7] undefiniert.

(4)

Konkatenation und Kleene-Stern

Konkatenation

Das Wortuv (alternativu◦v) entsteht, indem Wort v hinten an Wortu angeh¨angt wird.

Σ bezeichnen wir die Menge aller W¨orter ¨uber Σ.

Definition vonΣi+

SeiΣ ein Alphabet, dann definieren wir:

Σ0 := {ε}

Σi := {aw |a∈Σ, w∈Σi−1}f¨ur i >0 Σ := S

i∈NΣi Σ+ := S

i∈N>0Σi

Beachte:N={0,1,2, . . .}und N>0 ={1,2, . . .}

(5)

Beispiele

SeiΣ ={a, b}.

Dann ist Σ0 ={ε}

Σ1 = Σ ={a, b}

Σ2 ={aa, ab, ba, bb}

Σ3 ={aw|a∈ {a, b}, w∈Σ2}={aaa, aab, aba, abb, baa, bab, bba, bbb}

. . . und

Σ ={ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, aaaa, . . .}

(6)

Weitere Notationen und Begriffe

Seiw ein Wort ¨uberΣ

wm entsteht aus m-maligen Konkatenieren vonw, d.h.

w0=εund wm=wwm−1 f¨urm >0 w ist dasr¨uckw¨arts geleseneWort w, d.h.

ε=ε und f¨ur w=a1· · ·an istw=anan−1· · ·a1

w ist einPalindrom g.d.w. w=w Beispiele f¨ur Palindrome:

anna, reliefpfeiler, lagerregal, annasusanna

(7)

Sprechweisen: Pr¨ afix, Suffix, Teilwort

Seienu, v W¨orter ¨uber einem AlphabetΣ.

u ist einPr¨afix vonv, wenn es ein Wortw gibt mituw=v.

u ist einSuffix vonv, wenn es ein Wortw gibt mitwu=v.

u ist einTeilwort vonv, wenn es W¨orterw1,w2 gibt mitw1uw2 =v.

u w

| {z }

v

w u

| {z }

v

w1 u w2

| {z }

v Beispiel: Seiw=ababbaba

aba ist ein Pr¨afix, Suffix und Teilwort von w

ababb ist ein Pr¨afix (und Teilwort) vonw, aber kein Suffix vonw babist Teilwort von w, aber weder ein Pr¨afix noch ein Suffix

(8)

Formale Sprache

Formale Sprache

Eine(formale) Sprache L ¨uber dem AlphabetΣist eine Teilmenge vonΣ d.h.L⊆Σ

Beachte: (wir verwendenL f¨ur

”language“) Operationen auf formalen Sprachen SeienL,L1,L2 formale Sprachen ¨uber Σ

Vereinigung:L1∪L2 :={w|w∈L1 oder w∈L2} Schnitt:L1∩L2:={w|w∈L1 und w∈L2} Komplement zu L:L:= Σ\L

Produkt:L1L2 =L1◦L2 ={uv|u∈L1 undv∈L2}

(9)

Beispiele

SeiΣ ={a, b} undL1={ai |i∈N}L2 ={bi |i∈N}.

L1∪L2 = Sprache aller W¨orter, die nur aus a’s oder nur aus b’s bestehen

L1∩L2={ε}

L1 ist die Sprache der Worte, die mindestens ein benthalten L1L2={aibj |i, j∈N},

L2L1={biaj |i, j∈N} L1L1=L1.

F¨urL1 ={♠,♣,♦,♥}und L2 ={7,8,9,10, J, D, K, A} stellt L1L2 eine Repr¨asentation der Spielkarten eines Skatblatts dar.

(10)

Kleenescher Abschluss

SeiL eine Sprache. Dann ist:

L0 := {ε} L := S

i∈N

Li Li := L◦Li−1 f¨ur i >0 L+ := S

i∈N>0

Li Die SpracheL nennt man auch den Kleeneschen Abschluss vonL (benannt nach Stephen Cole Kleene).

Beispiel:L={ab, ac}

L0 ={ε}

L1 =L◦L0 =L={ab, ac}

L2 ={abab, abac, acab, acac}

L3={ababab, ababac, abacab, abacac, acabab, acabac, acacab, acacac}

L ={ε} ∪ {ax1ax2· · ·axi |i∈N>0, xj ∈ {b, c}, j= 1, . . . , i}.

(11)

Weitere Beispiele

(({ε,1} ◦ {0, . . . ,9})∪({2} ◦ {0,1,2,3}))

◦{:} ◦ {0,1,2,3,4,5} ◦ {0, . . . ,9}

Beschriebene Sprache =?

Sprache aller g¨ultigen Uhrzeiten

{0} ∪({1, . . . ,9} ◦ {0, . . . ,9}) Beschriebene Sprache =?

Sprache aller nat¨urlichen Zahlen

(12)

Weitere Beispiele

(({ε,1} ◦ {0, . . . ,9})∪({2} ◦ {0,1,2,3}))

◦{:} ◦ {0,1,2,3,4,5} ◦ {0, . . . ,9}

Beschriebene Sprache = Sprache aller g¨ultigen Uhrzeiten

{0} ∪({1, . . . ,9} ◦ {0, . . . ,9}) Beschriebene Sprache =?

Sprache aller nat¨urlichen Zahlen

(13)

Weitere Beispiele

(({ε,1} ◦ {0, . . . ,9})∪({2} ◦ {0,1,2,3}))

◦{:} ◦ {0,1,2,3,4,5} ◦ {0, . . . ,9}

Beschriebene Sprache = Sprache aller g¨ultigen Uhrzeiten

{0} ∪({1, . . . ,9} ◦ {0, . . . ,9})

Beschriebene Sprache = Sprache aller nat¨urlichen Zahlen

(14)

Formale Sprachen darstellen

Sei Σein Alphabet.

Eine Sprache ¨uber Σist eine Teilmenge vonΣ.

Z.B. f¨urΣ ={(,),+,−,∗, /, a}sei LArExdie Sprache aller korrekt geklammerten Ausdr¨ucke

Z.B. ((a+a)−a)∗a∈LArEx aber(a−) +a)6∈LArEx Unsere bisherigen Operationen auf Sprachen (Mengen) k¨onnen das nicht darstellen.

Ben¨otigt: Formalismus, um LArEx zu beschreiben

(15)

Formale Sprachen darstellen (2)

Anforderungen:

EndlicheBeschreibung

Sprache selbst muss aber auch unendlich viele Objekte erlauben

Zwei wesentliche solchen Formalismen sind Grammatiken

Automaten

(16)

Grammatiken

Grammatik f¨ur einen sehr kleinen Teil der deutschen Sprache:

<Satz> <Subjekt><Pr¨adikat><Objekt>

<Subjekt> <Artikel><Attribut><Nomen>

<Objekt> <Artikel><Attribut><Nomen>

<Artikel> ε

<Artikel> der

<Artikel> das

<Attribut> <Adjektiv>

<Attribut> <Adjektiv><Attribut>

<Adjektiv> kleine

<Adjektiv> große

<Adjektiv> nette

<Adjektiv> blaue

<Nomen> Mann

<Nomen> Auto

<Pr¨adikat>ahrt

<Pr¨adikat>liebt

(17)

Grammatiken

Endliche Menge von Regeln

”linke Seite→ rechte Seite”

Symbole in spitzen Klammern wie <Artikel>sindVariablen, d.h. sie sind Platzhalter, die weiter ersetzt werden m¨ussen.

Z.B. kann

”der kleine nette Mann f¨ahrt das große blaue Auto“

durch die obige Grammatik abgeleitet werden,

(18)

Syntaxbaum zum Beispiel

<Satz>

<Subjekt>

<Artikel>

der

<Attribut>

<Adjektiv>

kleine

<Attribut>

<Adjektiv>

nette

<Nomen>

Mann

<Pr¨adikat>

ahrt

<Objekt>

<Artikel>

das

<Attribut>

<Adjektiv>

große

<Attribut>

<Adjektiv>

blaue

<Nomen>

Auto

(19)

Definition einer Grammatik

Definition (Grammatik)

EineGrammatik ist ein 4-TupelG= (V,Σ, P, S) mit V ist eine endliche Menge von Variablen

(alternativNichtterminale,Nichtterminalsymbole) Σ (mitV ∩Σ =∅) ist ein Alphabetvon Zeichen (alternativTerminale,Terminalsymbole)

P ist eine endliche Menge von Produktionen von der Form `→r wobei `∈(V ∪Σ)+ und r∈(V ∪Σ) (alternativRegeln)

S ∈V ist dasStartsymbol (alternativStartvariable) Oft gen¨ugt es,P alleine zu notieren

(wenn klar ist, was Variablen, Zeichen und Startsymbol sind)

(20)

Beispiel f¨ ur eine Grammatik

G= (V,Σ, P, E) mit V ={E , M, Z}, Σ ={+,∗,1,2,(,)}

P ={E → M, E → E+M, M → Z, M → M∗Z, Z → 1, Z → 2, Z → (E)}

(21)

Ableitung

SeiG= (V,Σ, P, S) eine Grammatik.

Ableitungsschritt ⇒G

F¨urSatzformen u, v(d.h. Worte aus (V ∪Σ)) sagen wir:

ugeht unter Grammatik G unmittelbar inv ¨uber,u⇒Gv, wenn

u=w1`w2Gw1rw2=v mit(`→r)∈P

G sei die reflexiv-transitive H¨ulle von ⇒G Ableitung

Eine Folge(w0, w1, . . . , wn) mitw0=S,wn∈Σ und wi−1 ⇒wi

f¨uri= 1, . . . , nheißt Ableitung von wn.

(22)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M

⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(23)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z

⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(24)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z

⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(25)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)

⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(26)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(27)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)

⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(28)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)

⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(29)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(30)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)

⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(31)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(32)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)

⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(33)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(34)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)

⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(35)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2+ 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(36)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)

⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(37)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) }

Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2+Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

(38)

Beispiel

G= (V,Σ, P, E) mitV ={E, M, Z} und Σ ={+,∗,1,2,(,)} und P ={E → M, E → E+M, M → Z, M → M ∗Z,

Z → 1, Z → 2, Z → (E) } Eine Ableitung von (2+1) * (2+2):

E⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M +Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 +1)∗(2 + 2)

(39)

Beispiel: Ableitungen sind nicht eindeutig

Ableitung von letzter Folie (keine Linksableitung):

E ⇒M ⇒M∗Z ⇒Z∗Z ⇒Z∗(E)⇒Z∗(E+M)

⇒(E)∗(E+M)⇒(E)∗(E+Z)⇒(E+M)∗(E+Z)

⇒(M +M)∗(E+Z)⇒(M +M)∗(M+Z)

⇒(M +M)∗(Z+Z)⇒(M+M)∗(Z+ 2)

⇒(M +Z)∗(Z+ 2)⇒(M+Z)∗(2 + 2)

⇒(Z+Z)∗(2 + 2)⇒(2 +Z)∗(2 + 2)

⇒(2 + 1)∗(2 + 2)

Linksableitung: ersetzt immer das linkeste Nichtterminal E ⇒M ⇒M∗Z ⇒Z∗Z ⇒(E)∗Z

⇒(E+M)∗Z ⇒(M+M)∗Z ⇒(Z+M)∗Z

⇒(2 +M)∗Z ⇒(2 +Z)∗Z ⇒(2 + 1)∗Z ⇒(2 + 1)∗(E)

⇒(2 + 1)∗(E+M)⇒(2 + 1)∗(M +M)⇒(2 + 1)∗(Z+M)

⇒(2 + 1)∗(2 +M)⇒(2 + 1)∗(2 +Z)

⇒(2 + 1)∗(2 + 2)

(40)

Syntaxbaum (zu beiden Ableitungen)

E M M

Z

( E

E M Z 2

+ M

Z 1

)

∗ Z

( E

E M Z

2

+ M

Z 2

)

(41)

Nichtdeterminismus beim Ableiten

F¨ur eine Satzformu kann es verschiedene Satzformen vi geben mit u⇒Gvi.

Quellen des Nichtdeterminismus:

W¨ahle,welche Produktion `→r ausP angewendet wird W¨ahle diePosition des Teilworts` inu, das durchr ersetzt wird.

Aber: Es gibtnur endliche viele vi f¨ur jeden Schritt!

(42)

Erzeugte Sprache

Erzeugte Sprache einer Grammatik

Die von einer GrammatikG= (V,Σ, P, S) erzeugte Sprache L(G) ist

L(G) :={w∈Σ |S ⇒Gw}.

(43)

Beispiele

G1 = ({S},{a},{S→aS}, S) L(G1) =?

S ⇒aS⇒aaS ⇒. . .endet nie Andere Ableitungen gibt es nicht

Daher sind keine Worte aus {a} ableitbar

G2 = ({S0},{a, b},{S0 →aS0, S0 →b}, S0) L(G2) =?

{anb|n∈N}

S0 aS0 aaS0 aaaS0 aaaaS0 . . .

b ab aab aaab aaaab

F¨ur alle i∈Ngilt S⇒iaiS ⇒aib

(44)

Beispiele

G1 = ({S},{a},{S→aS}, S) L(G1) =?

S ⇒aS⇒aaS ⇒. . . endet nie Andere Ableitungen gibt es nicht

Daher sind keine Worte aus {a} ableitbar

G2 = ({S0},{a, b},{S0 →aS0, S0 →b}, S0) L(G2) =?

{anb|n∈N}

S0 aS0 aaS0 aaaS0 aaaaS0 . . .

b ab aab aaab aaaab

F¨ur alle i∈Ngilt S⇒iaiS ⇒aib

(45)

Beispiele

G1 = ({S},{a},{S→aS}, S) L(G1) =∅

S ⇒aS⇒aaS ⇒. . . endet nie Andere Ableitungen gibt es nicht

Daher sind keine Worte aus {a} ableitbar

G2 = ({S0},{a, b},{S0 →aS0, S0 →b}, S0) L(G2) =?

{anb|n∈N}

S0 aS0 aaS0 aaaS0 aaaaS0 . . .

b ab aab aaab aaaab

F¨ur alle i∈Ngilt S⇒iaiS ⇒aib

(46)

Beispiele

G1 = ({S},{a},{S→aS}, S) L(G1) =∅

S ⇒aS⇒aaS ⇒. . . endet nie Andere Ableitungen gibt es nicht

Daher sind keine Worte aus {a} ableitbar

G2 = ({S0},{a, b},{S0 →aS0, S0 →b}, S0) L(G2) =?

{anb|n∈N}

S0 aS0 aaS0 aaaS0 aaaaS0 . . .

b ab aab aaab aaaab

F¨ur allei∈ gilt S⇒iaiS⇒aib

(47)

Beispiele

G1 = ({S},{a},{S→aS}, S) L(G1) =∅

S ⇒aS⇒aaS ⇒. . . endet nie Andere Ableitungen gibt es nicht

Daher sind keine Worte aus {a} ableitbar

G2 = ({S0},{a, b},{S0 →aS0, S0 →b}, S0) L(G2) ={anb|n∈N}

S0 aS0 aaS0 aaaS0 aaaaS0 . . .

b ab aab aaab aaaab

F¨ur allei∈Ngilt S⇒iaiS⇒aib

(48)

Beispiel (kontextsensitive Grammatik)

G= ({S, B, C},{a, b, c}, P, S) mit

P ={S→aSBC, S →aBC, CB→BC, aB→ab, bB →bb, bC →bc, cC →cc}

Beispiel-Ableitung:

S⇒aSBC ⇒aaSBCBC ⇒aaaSBCBCBC ⇒aaaaBCBCBCBC

⇒aaaabCBCBCBC ⇒aaaabBCCBCBC⇒aaaabbCCBCBC

⇒aaaabbCBCCBC ⇒aaaabbBCCCBC ⇒aaaabbBCCBCC

⇒aaaabbBCBCCC ⇒aaaabbBBCCCC⇒aaaabbbBCCCC

⇒aaaabbbbCCCC ⇒aaaabbbbcCCC⇒aaaabbbbccCC

⇒aaaabbbbcccC⇒aaaabbbbcccc

Steckengebliebene Folge von Ableitungsschritten:

S⇒aSBC ⇒aaBCBC ⇒aabCBC ⇒aabcBC

(49)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmalS→aBC an: S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt. an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban. anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC →bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(50)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(51)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(52)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(53)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(54)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(55)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊇“: Zeigeanbncn∈L(G)f¨ur alle n∈N>0

Wende n−1 malS→aSBC und dann einmal S→aBC an:

S ⇒ an−1S(BC)n−1⇒an(BC)n

Wende CB →BC solange an, bis es kein Teilwort CB mehr gibt.

an(BC)nanBnCn

Wende aB →abund anschließendn−1 malbB →bban.

anBnCn⇒anbBn−1Cn anbnCn

Wende einmal bC→bc und anschließend n−1malcC →ccan anbnCn⇒anbncCn−1anbncn

Zusammensetzen aller Ableitungsschritte zeigtS ⇒ anbncn.

(56)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

(57)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

Da auf w01 ein bfolgt, muss w10 nur ausb’s bestehen

(58)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

(59)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

Da auf w01 ein bfolgt, muss w10 nur ausb’s bestehen

(60)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

(61)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (2)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

F¨urS ⇒Gu mitu Satzform zeigen die Regeln:

#a(u) = #b(u) + #B(u) = #c(u) + #C(u)

F¨urS ⇒Gw mitw∈ {a, b, c} gilt: a’s werden ganz links erzeugt, d.h. w=anw0 mitw0 ∈ {b, c} undn= #b(w0) = #c(w0)

Es gilt w0 =bw1, da jedes auf afolgende Symbol durch aB→ab erzeugt wird und die Regeln keine Terminalsymbole vertauschen.

Ebenso kann das linkestec nur durch die RegelbC →bcerzeugt sein, daher: S⇒anw10bCw2 ⇒anw10bcw2 anw0.

b’s werden nur durchaB →abund bB →bb erzeugt.

Da auf w01 ein bfolgt, muss w10 nur ausb’s bestehen

(62)

Grammatik, die {a

n

b

n

c

n

| n ∈ N

>0

} erzeugt (3)

Satz

L(G) ={anbncn|n∈N>0}f¨ur G= ({S, B, C},{a, b, c}, P, S) mit P ={S→aSBC, S→aBC, CB→BC, aB→ab, bB→bb, bC→bc, cC→cc}

”⊆“: Zeige, dass alle vonGerzeugten Worte von der Formanbncn sind.

. . .

S ⇒ an{b}cw2 anw0.

w2 kann keine Vorkommen vonB enthalten: Sonst k¨onnte man (aufgrund des c vorw2) kein Terminalwortw erzeugen:

Vorkommen von B k¨onnten nicht mehr ersetzt werden.

Daher gilt anbcw2 =an{b}c{C, c} und daher anw=anbncn (da nur noch cC→cc angewendet werden kann).

(63)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S

⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(64)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$

⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(65)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$

⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(66)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$

⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(67)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(68)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$

⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(69)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$

⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(70)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$

⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(71)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(72)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b

⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(73)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab

⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(74)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab

⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(75)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(76)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab

⇒aab$$aab⇒aabaab

(77)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab

⇒aabaab

(78)

Beispiel einer allgemeinen Grammatik

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Eine Ableitung:

S ⇒$T$⇒$aAT$⇒$aAaAT$⇒$aAaAbBT$

⇒$aAaAbB$⇒$aaAAbB$⇒$aaAbAB$⇒$aabAAB$

⇒$aabAA$b⇒$aabA$ab⇒$aab$aab⇒a$ab$aab

⇒aa$b$aab⇒aab$$aab⇒aabaab

(79)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA und bB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen. Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(80)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen. Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(81)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen. Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(82)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen. Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(83)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen.

Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(84)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen.

Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(85)

Beispiel einer allgemeinen Grammatik (2)

GrammatikG= ({S, T, A, B,$},{a, b}, P, S) mit

P ={S →$T$, T →aAT, T →bBT, T →ε, $a→a$,

$b→b$, Aa→aA, Ab→bA, Ba→aB, Bb→bB A$→$a, B$→$b, $$→ε}

Begr¨undung daf¨ur, dassL(G) ={ww|w∈ {a, b}} gilt:

Mit S→$T$ wird zun¨achst eine Umrahmung mit$$ erzeugt.

Mit T →aAT,T →bBT und T →εwird ein Wort aus 2er Bl¨ockenaA undbB erzeugt

Mit Aa→aA, Ab→bA, Ba→aB, Bb→bB werdenA’s und B’s bis vor $ geschoben

Mit A$→$aund B$→$bwerden die A’s undB’s ina’s und b’s verwandelt, indem sie ¨uber das rechte $h¨upfen.

Mit $a→a$,$b→b$und $$→ε. Wir das linke$zum rechten geschoben, bis beide $eliminiert werden.

Bei allen Schritten wird die relative Lage aller aund bsowie allerA und B nicht ge¨andert.

(86)

Die Chomsky-Hierarchie

Noam Chomsky teilte die Grammatiken in Typen 0 bis 3:

SeiG= (V,Σ, P, S) eine Grammatik.

Gist vom Typ 0

Gist automatisch vom Typ 0.

Gist vom Typ 1 (kontextsensitive Grammatik), wenn ... f¨ur alle (`→r)∈P:|`| ≤ |r|.

Gist vom Typ 2 (kontextfreie Grammatik), wenn ... Gist vom Typ 1 und f¨ur alle (`→r)∈P gilt: `=A∈V Gist vom Typ 3 (regul¨are Grammatik), wenn ...

Gist vom Typ 2 und f¨ur alle (A→r)∈P gilt: r=aoder r=aA0 f¨ur a∈Σ, A0∈V (die rechten Seiten sind Worte aus(Σ∪(ΣV)))

(87)

Die Chomsky-Hierarchie

Noam Chomsky teilte die Grammatiken in Typen 0 bis 3:

SeiG= (V,Σ, P, S) eine Grammatik.

Gist vom Typ 0

Gist automatisch vom Typ 0.

Gist vom Typ 1 (kontextsensitive Grammatik), wenn ...

f¨ur alle(`→r)∈P:|`| ≤ |r|.

Gist vom Typ 2 (kontextfreie Grammatik), wenn ...

Gist vom Typ 1 und f¨ur alle (`→r)∈P gilt: `=A∈V Gist vom Typ 3 (regul¨are Grammatik), wenn ...

Gist vom Typ 2 und f¨ur alle (A→r)∈P gilt: r=aoder r=aA0 f¨ur a∈Σ, A0∈V (die rechten Seiten sind Worte aus(Σ∪(ΣV)))

Referenzen

ÄHNLICHE DOKUMENTE

Ein ableitbares Wort kann verschiedene Ableitungen haben, die nicht durch einen Strukturbaum dargestellt werden k¨onnen.. Punkt 2 kann Schwierigkeiten bereiten, wenn einem

Eine kontextfreie Grammatik ist genau dann eindeutig, wenn jedes durch die Grammatik erzeugte Wort genau eine Linksableitung (bzw...

Zeigen Sie, dass die Menge der Primzahlen (als Teilmenge von N 0 ) entscheidbar ist.. (Es reicht, eventuell ben¨otigte Turing-Maschinen informal

Definition Eine nichtdeterministische Turingmaschine M heißt linear be- schr¨ ankter Automat (LBA), wenn bei jedem Lauf von M nur die Speicher- zellen der Eingabe benutzt

Definition Eine nichtdeterministische Turingmaschine M heißt linear be- schr¨ ankter Automat (LBA), wenn bei jedem Lauf von M nur die Speicher- zellen der Eingabe benutzt

Eine Sprache ist genau dann eine Typ-1-Sprache, wenn sie von einem linear beschr¨ ankten Automaten akzeptiert werden

Bei kontextfreien und regulären Grammatiken ist es oftmals wünschenswert und bequem, auch Regeln der Form A → ε zuzulassen, wobei A nicht unbedingt die Startvariable ist. Bei

Das spezielle Wort, das aus keinem Symbol besteht, wird das leere Wort genannt und meist mit ε bezeichnet.. Die L¨ ange