WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven
1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5. Automaten
Allgemeines Sprachen in Informatik - Mengen Sprachen können sowohl endlich als auch unendlich sein bei unendlichen Sprachen sind endliche Beschreibungsmöglichkeiten glichkeiten nötig, um mit ihnen algorithmisch umgehen zu können
Sprachen, Grammatiken und Automate 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 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) Die Wörter werden nach bestimmten Regeln erzeugt Grammatiken
Definition: Formale Grammatik Eine Grammatik ist ein 4-Tupel G = (V,Σ,P,S) V eine endliche Menge der Variablen Σ eine endliche Menge der Terminalsymbole P eine endliche Menge der Produktionsregeln S die Startvariable, S V Die Mengen V und Σ sind disjunkt
Definition: Formale Grammatik Schreibkonventionen: V - Großbuchstaben oder Wörter in spitzen Klammern; Σ - Kleinbuchstaben
Definition: Formale Grammatik Die allg. Form der Produktionsregeln ist linke Seite rechte Seite 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 Beispiel für eine Grammatik G für die Sprache L(G) = { a n b n n 1 } mit folgenden Produktionsregeln: S ab ab B b AB A a
Chomsky-Hierarchie Von Noam Chomsky vorgeschlagene Klassifizierung der Sprachen (Grammatiken) in 4 Typen: Rekursiv aufzählbar (Typ-0 ) Kontextsensitiv (Typ-1 ) Kontextfrei (Typ-2) Regulär (Typ-3)
Typ-0 allgemeine Termersetzungssysteme bzw. 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, der sich nach rechts oder links bewegen kann
Definition: Turingmaschine Eine Turingmaschine ist ein 4-Tupel (Z, Σ, s, δ) mit 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 TM stoppt die Berechnung, wenn es keine definierte Funktion δ für eine gegebene Konfiguration aus Z Σ gibt (partielle Funktion) Wörter gelten als akzeptiert, wenn die Berechnung der TM terminiert
Typ-1 Kontextsensitive Grammatiken: für alle Regeln w 1 w 2 gilt w 1 w 2 Typ-1 Sprachen werden von linear beschränkten Automaten erkannt LBA: eine Sonderform der Turingmaschine, ihr Schreib- und Lesekopf verlässt niemals den Teil des Bandes, auf dem die Eingabe steht
Typ-2 Kontextfreie Grammatiken: für alle Regeln w 1 w 2 gilt w 1 V Typ-2 Sprachen werden von nichtdeterministischen Kellerautomaten erkannt Beispiel für eine kontextfreie Sprache: L = { a n b n n 1 }
Definition: nichtdeterministische Kellerautomaten Ein (nichtdeterministischen) Kellerautomat ist ein 6-Tupel: M = (Z, Σ, Γ, δ, z 0, E) Z endliche Menge der Zustände Σ endliches Eingabealphabet Γ das Kelleralphabet z 0 Z Startzustand E Z die Menge der Endzustände δ Menge der Zustandsüberführungen; δ [ ( Z Σ Γ ) ( Z Γ* ) ]
Typ-3 Reguläre Grammatiken: für alle Regeln w 1 w 2 gilt w 2 Σ ΣV Typ-3 Sprachen werden von (deterministischen) endlichen Automaten erkannt Beispiel für eine reguläre Sprache: L = { ab n n 1 }
Definition: Deterministische endliche Automaten Ein deterministischer endlicher Automat M ist ein 5-Tupel: M = (Z, Σ, δ, z 0, E) Z endliche Menge aller Automatenzustände Σ endliches Eingabealphabet z 0 Startzustand, z 0 Z E Z die Menge der Endzustände δ : Z Σ Z die Überführungsfunktion
Beziehungen der Sprachen zu einander 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 Programmiersprachen Compilerbau Typ-3 Sprachen Syntax von JAVA, C, etc. Typ-2 Palindrome Morsezeichen
Literatur Schöning, Uwe: Theoretische Informatik kurzgefasst. Spektrum Akademischer Verlag, 2001.