Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte - - PowerPoint PPT Presentation

theorie der informatik
SMART_READER_LITE
LIVE PREVIEW

Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte - - PowerPoint PPT Presentation

Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele R oger Universit at Basel 17. M arz 2014 Einf uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung Einf


slide-1
SLIDE 1

Theorie der Informatik

  • 6. Formale Sprachen und Grammatiken

Malte Helmert Gabriele R¨

  • ger

Universit¨ at Basel

  • 17. M¨

arz 2014

slide-2
SLIDE 2

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Einf¨ uhrung

slide-3
SLIDE 3

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Beispiel: Aussagenlogische Formeln

Aus dem Logikteil: Definition (Syntax der Aussagenlogik) Sei A eine Menge von atomaren Aussagen. Die Menge der aussagenlogischen Formeln (¨ uber A) ist induktiv wie folgt definiert: Jedes Atom a ∈ A ist eine aussagenlogische Formel ¨ uber A. Ist φ eine aussagenlogische Formel ¨ uber A, dann auch die Negation ¬φ. Sind φ und ψ aussagenlogische Formeln ¨ uber A, dann ist es auch die Konjunktion (φ ∧ ψ). Sind φ und ψ aussagenlogische Formeln ¨ uber A, dann ist es auch die Disjunktion (φ ∨ ψ).

slide-4
SLIDE 4

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Beispiel: Aussagenlogische Formeln

Sei SA die Menge aller aussagenlogischen Formeln ¨ uber A. Solche Mengen von Zeichenketten (oder W¨

  • rtern) nennt man

Sprachen. Gesucht: Allgemeine Konzepte, um solche (oftmals unendliche) Sprachen mit endlichen Beschreibungen zu definieren heute: Grammatiken n¨ achste Kapitel zus¨ atzlich: Automaten

slide-5
SLIDE 5

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Beispiel: Aussagenlogische Formeln

Beispiel (Grammatik f¨ ur S{a,b,c}) Grammatikvariablen {F, A, N, K, D} mit Startvariable F, Terminalsymbole {a, b, c, ¬, ∧, ∨, (, )} und Regeln F → A A → a N → ¬F F → N A → b K → (F ∧ F) F → K A → c D → (F ∨ F) F → D Beginne mit F und ersetze schrittweise eine linke Regelseite durch eine rechte Regelseite bis keine Variablen mehr enthalten sind: F ⇒ N ⇒ ¬F ⇒ ¬D ⇒ ¬(F ∨ F) ⇒ ¬(A ∨ F) ⇒ ¬(b ∨ F) F ⇒ ¬(b ∨ A) ⇒ ¬(b ∨ c)

slide-6
SLIDE 6

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Alphabete und formale Sprachen

slide-7
SLIDE 7

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Alphabete und formale Sprachen

Definition (Alphabete, W¨

  • rter und formale Sprache)

Ein Alphabet Σ ist eine endliche, nicht-leere Menge von Zeichen (oder Symbolen). Beispiel Σ = {a, b}

slide-8
SLIDE 8

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Alphabete und formale Sprachen

Definition (Alphabete, W¨

  • rter und formale Sprache)

Ein Alphabet Σ ist eine endliche, nicht-leere Menge von Zeichen (oder Symbolen). Die Menge Σ∗ aller W¨

  • rter ¨

uber Σ enth¨ alt alle endlichen Folgen von Elementen aus Σ. Das leere Wort (die leere Elementfolge) wird dabei mit ε bezeichnet. Beispiel Σ = {a, b} Σ∗ = {ε, a, b, aa, ab, ba, bb, . . . }

slide-9
SLIDE 9

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Alphabete und formale Sprachen

Definition (Alphabete, W¨

  • rter und formale Sprache)

Ein Alphabet Σ ist eine endliche, nicht-leere Menge von Zeichen (oder Symbolen). Die Menge Σ∗ aller W¨

  • rter ¨

uber Σ enth¨ alt alle endlichen Folgen von Elementen aus Σ. Das leere Wort (die leere Elementfolge) wird dabei mit ε bezeichnet. F¨ ur ein Wort w bezeichnet |w| seine L¨ ange. Beispiel Σ = {a, b} Σ∗ = {ε, a, b, aa, ab, ba, bb, . . . } |aba| = 3, |b| = 1, |ε| = 0

slide-10
SLIDE 10

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Alphabete und formale Sprachen

Definition (Alphabete, W¨

  • rter und formale Sprache)

Ein Alphabet Σ ist eine endliche, nicht-leere Menge von Zeichen (oder Symbolen). Die Menge Σ∗ aller W¨

  • rter ¨

uber Σ enth¨ alt alle endlichen Folgen von Elementen aus Σ. Das leere Wort (die leere Elementfolge) wird dabei mit ε bezeichnet. F¨ ur ein Wort w bezeichnet |w| seine L¨ ange. Eine formale Sprache ist eine Teilmenge von Σ∗. Beispiel Σ = {a, b} Σ∗ = {ε, a, b, aa, ab, ba, bb, . . . } |aba| = 3, |b| = 1, |ε| = 0

slide-11
SLIDE 11

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-12
SLIDE 12

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-13
SLIDE 13

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-14
SLIDE 14

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-15
SLIDE 15

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-16
SLIDE 16

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-17
SLIDE 17

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Sprachen: Beispiele

Beispiel (Sprachen ¨ uber Σ = {a, b}) S1 = {a, aa, aaa, aaaa, . . . } S2 = Σ∗ S3 = {anbn | n ≥ 0} = {ε, ab, aabb, aaabbb, . . . } S4 = {ε} S5 = ∅ S6 = {w ∈ Σ∗ | w enh¨ alt doppelt soviele a wie b} S6 = {ε, aab, aba, baa, . . . } S7 = {w ∈ Σ∗ | |w| = 3} S6 = {aaa, aab, aba, baa, bba, bab, abb, bbb}

slide-18
SLIDE 18

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Fragen Fragen?

slide-19
SLIDE 19

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Grammatiken

slide-20
SLIDE 20

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Grammatiken

Definition (Grammatik) Eine Grammatik ist ein 4-Tupel (Σ, V , P, S) mit

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V ∩ Σ = ∅), 3 P ⊆ (V ∪ Σ)+ × (V ∪ Σ)∗ endliche Menge von Regeln, und 4 S ∈ V Startvariable.

slide-21
SLIDE 21

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Regelmengen

Was genau bedeutet P ⊆ (V ∪ Σ)+ × (V ∪ Σ)∗? (V ∪ Σ)∗: Alle W¨

  • rter ¨

uber (V ∪ Σ) (V ∪ Σ)+: Alle nicht-leeren W¨

  • rter ¨

uber (V ∪ Σ) Allgemein f¨ ur Menge X: X + = X ∗ \ {ε} ×: kartesisches Produkt (V ∪ Σ)+ × (V ∪ Σ)∗: Menge aller Paare (x, y), wobei x nicht-leeres Wort ¨ uber (V ∪ Σ) und y Wort ¨ uber (V ∪ Σ) Statt (x, y) schreiben wir Regeln meist in der Form x → y.

slide-22
SLIDE 22

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Regeln: Beispiele

Beispiel Sei Σ = {a, b, c} und V = {X, Y , Z}. Folgende Regeln sind in (V ∪ Σ)+ × (V ∪ Σ)∗: X → XaY Yb → a XY → ε XYZ → abc abc → XYZ

slide-23
SLIDE 23

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Ableitung

Definition (Ableitung) Sei (Σ, V , P, S) eine Grammatik. Ein Wort v ∈ (V ∪ Σ)∗ kann von Wort u ∈ (V ∪ Σ)+ abgeleitet werden (u ⇒ v), falls

1 u = xyz, v = xy′z mit x, z ∈ (V ∪ Σ)∗ und 2 es existiert eine Regel y → y′ ∈ P.

Wir schreiben: u ⇒∗ v falls v in endlich vielen Schritten (d.h. durch die Anwendung von n Regeln f¨ ur n ∈ N) von u abgeleitet werden kann.

slide-24
SLIDE 24

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Ableitung: Mehrdeutigkeit

Beispiel G = ({a, b, c}, {S, A, B}, P, S), wobei P folgende Regeln enth¨ alt: S → aB A → ab S → Ac B → bc Wort abc kann von S abgeleitet werden: S ⇒ aB ⇒ abc Alternative Ableitung: S ⇒ Ac ⇒ abc Es kann verschiedene Ableitungen f¨ ur ein Wort geben. Dies gilt selbst, wenn man immer nur die erste vorkommende Variable ersetzt (sogenannte Linksableitung).

slide-25
SLIDE 25

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Ableitung: Mehrdeutigkeit

Beispiel G = ({a, b, c}, {S, A, B}, P, S), wobei P folgende Regeln enth¨ alt: S → aB A → ab S → Ac B → bc Wort abc kann von S abgeleitet werden: S ⇒ aB ⇒ abc Alternative Ableitung: S ⇒ Ac ⇒ abc Es kann verschiedene Ableitungen f¨ ur ein Wort geben. Dies gilt selbst, wenn man immer nur die erste vorkommende Variable ersetzt (sogenannte Linksableitung).

slide-26
SLIDE 26

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Ableitung: Mehrdeutigkeit

Beispiel G = ({a, b, c}, {S, A, B}, P, S), wobei P folgende Regeln enth¨ alt: S → aB A → ab S → Ac B → bc Wort abc kann von S abgeleitet werden: S ⇒ aB ⇒ abc Alternative Ableitung: S ⇒ Ac ⇒ abc Es kann verschiedene Ableitungen f¨ ur ein Wort geben. Dies gilt selbst, wenn man immer nur die erste vorkommende Variable ersetzt (sogenannte Linksableitung).

slide-27
SLIDE 27

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Erzeugte Sprache einer Grammatik

Definition (Sprache) Die von einer Grammatik G = (Σ, V , P, S) erzeugte Sprache L(G) = {w ∈ Σ∗ | S ⇒∗ w} ist die Menge aller W¨

  • rter aus Σ∗, die von S

mit endlich vielen Regelanwendungen abgeleitet werden k¨

  • nnen.
slide-28
SLIDE 28

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Grammatiken

Beispiele: Tafel

slide-29
SLIDE 29

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Quiz

slide-30
SLIDE 30

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Fragen Fragen?

slide-31
SLIDE 31

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

slide-32
SLIDE 32

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

Grammatiken werden in die Chomsky-Hierarchie eingegliedert. Definition (Chomsky-Hierarchie) Jede Grammatik ist vom Typ 0 (beliebige Regeln erlaubt). Grammatik ist vom Typ 1 (kontextsensitiv), falls f¨ ur alle Regeln w1 → w2 gilt: |w1| ≤ |w2|. Grammatik ist vom Typ 2 (kontextfrei), falls f¨ ur alle Regeln w1 → w2 gilt: w1 ∈ V (einzelne Variable). Grammatik ist vom Typ 3 (regul¨ ar), falls zus¨ atzlich w2 ∈ Σ ∪ ΣV . Spezialfall: Regel S → ε ist immer erlaubt, wenn S Startsymbol ist und auf keiner rechten Seite irgendeiner Regel auftritt.

slide-33
SLIDE 33

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

Beispiele: Tafel

slide-34
SLIDE 34

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

Definition (Typ-0–3 Sprachen) Eine Sprache L ⊆ Σ∗ heisst vom Typ 0 (Typ 1, Typ 2, Typ 3), falls es eine Typ-0- (Typ-1-, Typ-2-, Typ-3-) Grammatik G gibt mit L(G) = L.

slide-35
SLIDE 35

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

regul¨ are Sprachen (Typ 3) kontextfreie Sprachen (Typ 2) kontextsensitive Sprachen (Typ 1) Typ-0-Sprachen Alle Sprachen

Nicht alle Sprachen sind durch Grammatiken beschreibbar.

slide-36
SLIDE 36

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Chomsky-Hierarchie

regul¨ are Sprachen (Typ 3) kontextfreie Sprachen (Typ 2) kontextsensitive Sprachen (Typ 1) Typ-0-Sprachen Alle Sprachen

Nicht alle Sprachen sind durch Grammatiken beschreibbar.

slide-37
SLIDE 37

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Quiz

slide-38
SLIDE 38

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Fragen Fragen?

slide-39
SLIDE 39

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Zusammenfassung

slide-40
SLIDE 40

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Zusammenfassung

Sprachen sind Mengen von Zeichenketten. Grammatiken sind eine M¨

  • glichkeit Sprachen zu beschreiben.

Erzeugte Sprache einer Grammatik ist die Menge der ableitbaren variablenfreien W¨

  • rter.

Chomsky-Hierarchie teilt Grammatiken in Stufen unterschiedlicher Erzeugungsm¨ achtigkeit ein. N¨ achstes Kapitel Mehr zu regul¨ aren Sprachen Automaten als alternative Darstellungsform von Sprachen

slide-41
SLIDE 41

Einf¨ uhrung Alphabete und formale Sprachen Grammatiken Chomsky-Hierarchie Zusammenfassung

Zusammenfassung

Sprachen sind Mengen von Zeichenketten. Grammatiken sind eine M¨

  • glichkeit Sprachen zu beschreiben.

Erzeugte Sprache einer Grammatik ist die Menge der ableitbaren variablenfreien W¨

  • rter.

Chomsky-Hierarchie teilt Grammatiken in Stufen unterschiedlicher Erzeugungsm¨ achtigkeit ein. N¨ achstes Kapitel Mehr zu regul¨ aren Sprachen Automaten als alternative Darstellungsform von Sprachen