Grundbegriffe der Informatik
Tutorium 1 - 11. Sitzung
Dennis Felsing
dennis.felsing@student.kit.edu
http://www.stud.uni-karlsruhe.de/~ubcqr/2010w/tut gbi/
2011-01-17
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Uberblick ¨
1 Endliche Automaten Wiederholung Endliche Akzeptoren
2 Regul¨are Ausdr¨ucke
3 Rechtslineare Grammatiken
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert?
Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge
X Eingabealphabet Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z)
g Ausgabefunktion (g :Z ×X →Y∗) z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Wie ist ein Mealy-Automat definiert? Als Tupel (Z,X,Y,f,g,z0) mit:
Z Endliche Zustandsmenge X Eingabealphabet
Y Ausgabealphabet
f Zustands¨ubergangsfunktion (f :Z ×X →Z) g Ausgabefunktion (g :Z ×X →Y∗)
z0 Startzustand (z0 ∈Z)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =
z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3 f∗∗(z0,aabb) =
z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =
b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b
g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =
abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
f∗(z0,aabb) =z3
f∗∗(z0,aabb) =z0z1z0z2z3
g∗(z0,aabb) =b g∗∗(z0,aabb) =abb
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
z0
z1
z2
z3
a|a b|b a|ε
b|b
b|b
a|a
b|ε a|a
Erstelle einen Moore-Automat der sich so verh¨alt wie der gegebene Mealy-Automat.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Wiederholung
Erstelle einen Moore-Automat der sich so verh¨alt wie der gegebene Mealy-Automat.
z0|ε
z1|a
z2|b z3|b
a b a
b
b
a
b a
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Endliche Akzeptoren
Definition
Ein endlicher Akzeptor ist ein Moore-Automat, der als Augabe nur 0 (schlecht) und 1 (gut) hat. Statth:Z →Y∗ gibt man mit F ⊆Z die akzeptierenden (guten) Zust¨ande an.
Beispiel
z0 a z1 b z2
b a
Welche Sprache akzeptiert der Automat?{a,b}∗ab{a,b}∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Endliche Akzeptoren
Definition
Ein endlicher Akzeptor ist ein Moore-Automat, der als Augabe nur 0 (schlecht) und 1 (gut) hat. Statth:Z →Y∗ gibt man mit F ⊆Z die akzeptierenden (guten) Zust¨ande an.
Beispiel
z0 a z1 b z2
b a
Welche Sprache akzeptiert der Automat?
{a,b}∗ab{a,b}∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Endliche Akzeptoren
Definition
Ein endlicher Akzeptor ist ein Moore-Automat, der als Augabe nur 0 (schlecht) und 1 (gut) hat. Statth:Z →Y∗ gibt man mit F ⊆Z die akzeptierenden (guten) Zust¨ande an.
Beispiel
z0 a z1 b z2
b a
Welche Sprache akzeptiert der Automat?{a,b}∗ab{a,b}∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Entwurf
Aufgabe
Entwerfe einen Akzeptor mitX ={a,b}, der alle W¨orter akzeptiert, deren Anzahl ana durch 5 teilbar ist.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Entwurf
Aufgabe
Entwerfe einen Akzeptor mitX ={a,b}, der alle W¨orter akzeptiert, in denen nirgends hintereinander zweib vorkommen.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Uberblick ¨
1 Endliche Automaten
2 Regul¨are Ausdr¨ucke Definition
Klammereinsparungen Beschriebene Sprache
3 Rechtslineare Grammatiken
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Definition
Regul¨are Ausdr¨ucke
Z ={|,(,),∅,∗} und ein Alphabet A mit A∩U ={}. Es gilt:
∅ ist ein regul¨arer Ausdruck
∀x ∈A:x ist ein regul¨arer Ausdruck
R1 und R2 sind RA ⇒ (R1R2) und (R1 |R2) sind RA R ist ein reg. Audruck⇒ (R∗) ist ein regul¨arer Ausdruck Nichts anderes sind regul¨are Ausdr¨ucke
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b
= (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗Falsch bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗Falsch bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X (a|b)∗ ∗
= (((a|b)∗)∗) X
∗(ab|b)∗Falsch bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗Falsch bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗
Falsch bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗ Falsch
bab∗= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗ Falsch bab∗
= ((ba)(b∗))X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗ Falsch bab∗= ((ba)(b∗)) X
a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗ Falsch bab∗= ((ba)(b∗)) X a|(b∗caab)
Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Klammereinsparungen
Zur Lesbarkeit kann man unn¨otige Klammern bei der Darstellung weglassen. Was sind regul¨are Ausdr¨ucke ¨uber A={a,b}?
∅|b = (∅|b) X
(a|b)∗ ∗ = (((a|b)∗)∗) X
∗(ab|b)∗ Falsch bab∗= ((ba)(b∗)) X a|(b∗caab) Falsch
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beschriebene Sprache
Von RA R beschriebene Sprache hRi h∅i={}
F¨urx ∈A:hxi={x}
F¨ur RAR1 und R2 gilt: hR1 |R2i=hR1i ∪ hR2i F¨ur RAR1 und R2 gilt: hR1R2i=hR1i · hR2i hR∗i=hRi∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,
hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗
R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,
hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗ R = (a|b)∗aab(a|b)∗,
hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,
hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗
hRi →R SeiA={a,b}.
Sprache der W¨orter mit mindestends dreib: a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗ Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗
Sprache{ε}
∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgendsab vorkommt: b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgends ab vorkommt:
b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
R→ hRi
R = (a|b)∗,hRi={a,b}∗ R = (a∗b∗)∗,hRi={a,b}∗
R = (a|b)∗aab(a|b)∗,hRi= Sprache der W¨orter mit Teilwort aab
R =a∗ ∗,hRi={a}∗ hRi →R
SeiA={a,b}.
Sprache der W¨orter mit mindestends drei b:
a∗ba∗ba∗b(a|b)∗
Sprache{ε} ∅∗
Sprache der W¨orter in denen nirgends ab vorkommt:b∗a∗
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
Wenn f¨ur einen regul¨aren Ausdruck R gilt: L = hRi, welcher regul¨are Ausdruck erzeugt dann:
L∗?
R∗ L+?R(R∗)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
Wenn f¨ur einen regul¨aren Ausdruck R gilt: L = hRi, welcher regul¨are Ausdruck erzeugt dann:
L∗?R∗
L+?R(R∗)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
Wenn f¨ur einen regul¨aren Ausdruck R gilt: L = hRi, welcher regul¨are Ausdruck erzeugt dann:
L∗?R∗
L+?
R(R∗)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiele
Wenn f¨ur einen regul¨aren Ausdruck R gilt: L = hRi, welcher regul¨are Ausdruck erzeugt dann:
L∗?R∗
L+?R(R∗)
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Uberblick ¨
1 Endliche Automaten
2 Regul¨are Ausdr¨ucke
3 Rechtslineare Grammatiken Definition
Umformungen
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Definition
Rechtslineare Grammatik
Eine Rechtslineare GrammatikG ={N,T,S,P} ist eine kontextfreie Grammatik mit der Einschr¨ankung:
Alle Produktionen sind entweder von der FormX →w oder X →wY mitw ∈T∗ und X,Y ∈N
Was bedeutet das? In jeder Produktion kommt maximal ein Nichtterminalsymbol auf der rechten Seite vor. Wenn, dann steht dieses ganz rechts.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Definition
Rechtslineare Grammatik
Eine Rechtslineare GrammatikG ={N,T,S,P} ist eine kontextfreie Grammatik mit der Einschr¨ankung:
Alle Produktionen sind entweder von der FormX →w oder X →wY mitw ∈T∗ und X,Y ∈N
Was bedeutet das?
In jeder Produktion kommt maximal ein Nichtterminalsymbol auf der rechten Seite vor. Wenn, dann steht dieses ganz rechts.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Definition
Rechtslineare Grammatik
Eine Rechtslineare GrammatikG ={N,T,S,P} ist eine kontextfreie Grammatik mit der Einschr¨ankung:
Alle Produktionen sind entweder von der FormX →w oder X →wY mitw ∈T∗ und X,Y ∈N
Was bedeutet das? In jeder Produktion kommt maximal ein Nichtterminalsymbol auf der rechten Seite vor. Wenn, dann steht dieses ganz rechts.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Toller Satz
F¨ur jede formale SpracheLsind die folgenden drei Aussagen
¨aquivalent:
1 L kann von einem endlichen Akzeptor erkannt werden.
2 L kann durch einen regul¨aren Ausdruck beschrieben werden.
3 L kann von einer rechtslinearen Grammatik erzeugt werden.
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)?
{a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik. G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik. G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik. G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b
Vereinfache die Grammatik. G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik.
G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik.
G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen? G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik.
G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen?
G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Beispiel
Betrachte folgende GrammatikG = ({X,Y,Z},{a,b},X,P) mit P ={X →aX |bY |ε, Y →aX |bZ |ε, Z →aZ |bZ}
Was istL(G)? {a,b}∗\({a,b}∗· {bb} · {a,b}∗)
Konstruiere einen endlichen Akzeptor, derL(G) akzeptiert.
0 1 2
a b
b a
a,b Vereinfache die Grammatik.
G = ({X,Y},{a,b},X,P) mit
P ={X →aX |bY |ε, Y →aX |ε}
Kann man die Grammatik noch weiter vereinfachen?
G = ({X},{a,b},X,P) mitP ={X →aX |baX |b|ε}
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken
Uberblick ¨
1 Endliche Automaten Wiederholung Endliche Akzeptoren
2 Regul¨are Ausdr¨ucke Definition
Klammereinsparungen Beschriebene Sprache
3 Rechtslineare Grammatiken Definition
Umformungen
Endliche Automaten Regul¨are Ausdr¨ucke Rechtslineare Grammatiken