07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar „Intelligente Systeme“ Dozent: Prof. Dr. J. Rolshoven 1. 2. 3. 4. 5. Allgemein...
Author: Regina Günther
5 downloads 1 Views 149KB Size
WS06/07 Referentin: Katharina Blinova

Formale Sprachen Hauptseminar „Intelligente Systeme“ Dozent: Prof. Dr. J. Rolshoven

1. 2. 3. 4. 5.

Allgemeines Formale Sprachen Formale Grammatiken Chomsky-Hierarchie Automaten

Allgemeines z z z

Sprachen in Informatik - Mengen Sprachen können sowohl endlich als auch unendlich sein bei unendlichen Sprachen sind endliche Beschreibungsmöglichkeiten nötig, um mit ihnen algorithmisch umgehen zu können

Sprachen, Grammatiken und Automate z

z

z

Formale Sprachen können durch formale Grammatiken und Automaten beschrieben werden Grammatiken legen fest, welche Zeichen in welcher Reihenfolge die Wörter einer Sprache bilden Automaten prüfen Wörter auf Zugehörigkeit zu einer Sprache

Definition: Formale Sprache z

z

z

Eine formale Sprache L ist eine Teilmenge von Wörtern (Zeichenfolgen) über ein Alphabet Σ. Ein Wort besteht aus (endlich vielen) Zeichen eines Alphabets Σ, die aneinander gereiht geschrieben wurden (Konkatenation) Konkatenation Die Wörter werden nach bestimmten Regeln erzeugt ´ Grammatiken

Definition: Formale Grammatik z

Eine Grammatik ist ein 4-Tupel G = (V,Σ,P,S) z z z z

z

V – eine endliche Menge der Variablen Σ – eine endliche Menge der Terminalsymbole P – eine endliche Menge der Produktionsregeln S – die Startvariable, Startvariable S ∈ V

Die Mengen V und Σ sind disjunkt

Definition: Formale Grammatik z

Schreibkonventionen: z z

V - Großbuchstaben oder Wörter in spitzen Klammern; Σ - Kleinbuchstaben

Definition: Formale Grammatik z

Die allg. Form der Produktionsregeln ist linke Seite ´ rechte Seite

z z

Ableitung: Anwenden einer Produktionsregel auf einen Teil einer Zeichenkette Die durch G definierte Sprache ist L(G) = { w ∈ Σ*⏐S ⇒*G w}

Formale Grammatik: ein Beispiel z

Beispiel für eine Grammatik G für die Sprache L(G) = { anbn⏐n ≥ 1 } mit folgenden Produktionsregeln: S → aB⏐ab B → b ⏐ AB A→a

Chomsky-Hierarchie z

Von Noam Chomsky vorgeschlagene Klassifizierung der Sprachen (Grammatiken) in 4 Typen: z z z z

Rekursiv aufzählbar (Typ-0 ) Kontextsensitiv (Typ-1 ) Kontextfrei (Typ-2) Regulär (Typ-3)

Typ-0 z

z

allgemeine Termersetzungssysteme bzw. Phrasenstrukturgrammatiken: Phrasenstrukturgrammatiken die Regeln unterliegen keinerlei Einschränkungen Typ-0 Sprachen werden von allgemeinen Turingmaschinen erkannt ´ Turingmaschine: ein von Alan Turing entwickeltes mathematisches Modell, bestehend aus einem unendlich langem Band aus Speicherzellen und einem Schreibund Lesekopf, Lesekopf der sich nach rechts oder links bewegen kann

Definition: Turingmaschine z

Eine Turingmaschine ist ein 4-Tupel (Z, Σ, s, δ) mit z z z z

Z – endliche Menge der Zustände Σ – endliches Eingabealphabet S ∈ Z – Startzustand δ – Zustandsüberführungsfunktion (die nicht für alle möglichen Zustände definiert sein kann) δ:Z×Σ´Z×

( Σ ∪ { L,R } )

Definition: Turingmaschine z

z

TM stoppt die Berechnung, wenn es keine definierte Funktion δ für eine gegebene Konfiguration aus Z × Σ gibt (partielle Funktion) Funktion Wörter gelten als akzeptiert, wenn die Berechnung der TM terminiert

Typ-1 z z

Kontextsensitive Grammatiken: für alle Regeln w1 → w2 gilt ⏐w1⏐ ≤ ⏐w2⏐ Typ-1 Sprachen werden von linear beschränkten Automaten erkannt z

´ LBA: eine Sonderform der Turingmaschine, ihr Schreib- und Lesekopf verlässt niemals den Teil des Bandes, auf dem die Eingabe steht

Typ-2 z z

z

Kontextfreie Grammatiken: für alle Regeln w1 → w2 gilt w1 ∈ V Typ-2 Sprachen werden von nichtdeterministischen Kellerautomaten erkannt Beispiel für eine kontextfreie Sprache: L = { anbn ⏐n ≥ 1 }

Definition: nichtdeterministische Kellerautomaten z

Ein (nichtdeterministischen) Kellerautomat ist ein 6-Tupel: M = (Z, Σ, Γ, δ, z0, E) z z z z z z

Z – endliche Menge der Zustände Σ – endliches Eingabealphabet Γ – das Kelleralphabet z0 ∈ Z – Startzustand E ⊂ Z – die Menge der Endzustände δ – Menge der Zustandsüberführungen; δ⊂[(Z×Σ×Γ)×

( Z × Γ* ) ]

Typ-3 z z

z

Reguläre Grammatiken: für alle Regeln w1 → w2 gilt w2 ∈ Σ ∪ ΣV Typ-3 Sprachen werden von (deterministischen) deterministischen endlichen Automaten erkannt Beispiel für eine reguläre Sprache: L = { abn ⏐n ≥ 1 }

Definition: Deterministische endliche Automaten z

Ein deterministischer endlicher Automat M ist ein 5-Tupel: M = (Z, Σ, δ, z0, E)

z

Z – endliche Menge aller Automatenzustände Σ – endliches Eingabealphabet z0 – Startzustand, z0 ∈ Z E ⊆ Z – die Menge der Endzustände

z

δ : Z × Σ ´ Z die Überführungsfunktion

z z z

Beziehungen der Sprachen zu einander z

Typ-3 ⊂ Typ-2 ⊂ Typ-1 ⊂ Typ-0 d.h.: die Einschränkungen der Typ-1 Sprache gelten auch für Typ-2 und Typ-3 Sprachen

Beispiele für formale Sprachen z

Programmiersprachen z z

z z

Compilerbau – Typ-3 Sprachen Syntax von JAVA, C, etc. – Typ-2

Palindrome Morsezeichen

Literatur Schöning, Uwe: Theoretische Informatik – kurzgefasst. Spektrum Akademischer Verlag, 2001.