Technische Universität München Sprachen/Grammatiken – eine Wiederholung • Was sind reguläre Sprachen? • Eigenschaften regulärer Sprachen Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen Begriffe • Symbol: unzerlegbare Grundzeichen • Alphabet: endliche Menge von Symbolen • Zeichenreihe: endliche Folge von Symbolen eines best. Alphabets • Sprache: eine Menge von Zeichenreihen über einem Alphabet Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen Sprache: jede beliebige Menge von Zeichenreihen aus Es gilt: Ø: die leere Sprache ist eine Sprache {}: die Sprache bestehend aus der leeren Zeichenreihe ist eine Sprache • : die Sprache, die aus der Menge aller Zeichenreichen über einem Alphabet besteht, ist eine Sprache • • • • Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Reguläre Sprachen • Definition: Reguläre Sprache Eine Sprache, d.h. eine Menge von Zeichenreihen, ist regulär, wenn sie die leere Menge, das leere Zeichen, ein Elementarzeichen, oder aus diesen Elementen durch Vereinigung, Verkettung oder der Hüllenbildung gebildete Mengen enthält. • Kleene, 1956: 35: Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Reguläre Sprachen • Operationen auf regulären Sprachen Vereinigung (Summe) L1 L2 { p | p L1 p L2} Konkatenation (Produkt, Verkettung) L1 L2 { pq | p L1 q L2} Beispiel X = {ein, zwei}, Y = {mal, fach} , XY = {einmal, einfach, zweimal, zweifach} Potenz L0 { }, Ln1 L Ln für n 0 Hülle (Iteration, Stern) L* Ln , L Ln , L* L { } n 0 Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 n1 Technische Universität München Reguläre Sprachen • Reguläre Sprachen können auch durch reguläre Ausdrücke repräsentiert werden • Ausdrücke, die aus Zeichen (-klassen) mithilfe von | (Alternative), * (Iteration), (Konkatenation) ? (Option) ... aufgebaut sind, heißen reguläre Ausdrücke exp ::= float ::= (e|E)(+|-)? digit digit* digit digit* exp | digit* (digit . | . digit) digit* exp? • Regulärer Ausdruck für alle Gleitkommazahlen Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken Noam Chomsky *1928 ―From now on I will consider a language to be a set (finite or infinite) of sentences, each finite in length and constructed out of a finite set of elements. All natural languages in their spoken or written form are languages in this sense, since each natural language has a finite number of phonemes (or letters in its alphabet) and each sentence is representable as a finite sequence of these phonemes (or letters), though there are infinitely many sentences. Similarly, the set of ‘sentences‘ of some formalized system of mathematics can be considered a language. (...) The grammar of L will thus be a device that generates all of the grammatical sequences of L .― Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken • Um eine (unendliche) Sprache angeben zu können, benötigt man eine endliche Beschreibung dieser Sprache. Diese existiert nur dann, wenn alle Wörter der Sprache einem bestimmten Bildungsgesetz folgen. • In der Theorie der formalen Sprachen werden Grammatiken zur Beschreibung von Sprachen verwendet: • Eine Grammatik ist ein 4-Tupel G = (V, T, P, S) Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken • Eine Grammatik ist ein 4-Tupel G = (V, T, P, S) – V ist das Alphabet der Variablen oder Nicht-Terminale — Begriffe, die durch Regeln erklärt werden. – T ist das Alphabet der Terminal oder Tokens — Symbole und Namen, die so in den Wörtern der Sprache übernommen werden. Hierbei gilt: V ∩ T = ∅, A = V ∪ T ist das Gesamtalphabet – P ⊆ (A* \ T *) × A* eine endliche Relation; die Elemente von P heißen Produktionen oder Ersetzungsregeln – S ist eine spezielle Variable, das Startsymbol. Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken • Nach Chomsky (50er Jahre) werden 4 Sprachklassen unterschieden, je nach der Struktur der Grammatiken, durch die sich die zugehörigen Sprachen ableiten lassen (Chomsky-Hierarchie) • Reguläre Sprachen • Kontextfreie Sprachen • Kontextsensitive Sprachen • Allgemeine Sprachen Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken • Für eine kontextfreie Grammatik gilt: P ⊆ V × A* – In jeder Regel muss auf der linken Seite genau ein nicht-terminales Symbol stehen und auf der rechten Seite kann eine beliebige (auch leere) Folge von terminalen und nichtterminalen Symbolen stehen. • Für eine reguläre Grammatik gilt: P ⊆ V × (T TV {}) – auf der rechten Regel-Seite darf höchstens ein Terminalsymbol auftreten und – wenn dies der Fall ist – noch höchstens ein Nichtterminalsymbol. Das Nichtterminalsymbol muss (bei Auftreten) immer vor oder immer hinter dem Terminalsymbol stehen, je nachdem spricht man von linksregulären oder rechtsregulären Grammatiken. • . Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken • Sei G = (V, T, P, S) eine (kontextfreie) Grammatik, so ist ∗ L(G) = { w T* | S w} die von G erzeugte Sprache. • L(G) umfasst also genau die Wörter über dem terminalen Alphabet T, für die eine Ableitung (endlicher Länge) besteht, die beim Startsymbol S beginnt. • Beispiel G1 = ({S}, {a, b}, P , S) mit P = { S aSb, S ab } Einige Ableitungen: S ab S aSb aabb S aSb aaSbb aaabbb Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen – Grammatiken Charakteristische Eigenschaften regulärer Grammatiken: • Mit einer Regel der Form S aS hat man keine Kontrolle darüber, wie oft sie zur Ableitung angewandt wird, daher kann man alle Wörter an, n ≥ 0, erzeugen • an bm kann durch eine reguläre Grammatik erzeugt werden • Die Restriktion n = m kann aber nicht erzwungen werden für beliebig lange Wörter • ∀k (≥0) kann man eine reguläre Grammatik formulieren, die alle anbn mit n ≤ k erzeugt, indem man die endlich vielen Produktionen für alle Fälle von 0 bis k direkt in die Grammatik schreibt! Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Ableitungsbäume • Sei A w eine Regel, mit |w| = k, wobei w = w1w2…wk die Darstellung durch Symbole des Alphabets ist. • Dann existiert ein zu A w1w2…wk korrespondierender Baum des Verzweigungsgrades k mit Tiefe 2, der Wurzel A und den Blättern w1, w2,…, wk. A w1 w2 Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 wk Technische Universität München Ableitungsbäume • Sei S u1 u2 u3 … w die Ableitung eines Wortes w L(G), so kann ein Ableitungsbaum zu dieser Ableitung gebildet werden, indem die zu den verwendeten Regeln korrespondierenden Bäume „konkateniert― werden. S • Beispiel: G1 = ({S}, {a, b}, P , S) mit P = { S aSb, S ab } S aSb S S b S S aaSbb a a b a a S b b aaabbb a Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 b Technische Universität München Automaten • • • • sind abstrakte Computermodelle haben Wörter als Eingabe können eine Eingabe entweder akzeptieren oder nicht lösen ein Wortproblem, wenn sie genau die Wörter der zugehörigen Sprache akzeptieren • Die Menge der von einem Automaten akzeptierten Wörter heißt die Sprache des Automaten Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen - Automaten • Zu jeder Sprachklasse der Chomsky-Hierarchie gibt es ein passendes Automatenmodell • Reguläre Sprachen Endliche Automaten • Kontextfreie Sprachen Kellerautomaten • Kontextsensitive Sprachen Linear beschränkte TM • Typ-0-Sprachen Turingmaschinen (TM) Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Sprachen - Repräsentationsformen • Verschiedene Sprachklassen in bestimmten Repräsentationsformen finden Anwendung in heutigen Softwareentwicklungen • Reguläre Sprachen/Endliche Automaten (Web)Suchmaschinen • Reguläre Sprachen/Reguläre Ausdrücke Pattern-Darstellung • Kontextfreie Sprachen/Grammatik Definition von Parsern Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Automaten • Ein (Deterministischer) Endlicher Automat (DEA) ist ein FŸ ünf-Tupel < Q, , , q0, F > – – – – – Endliche, nicht leere Menge von Zuständen Q Eingabealphabet Übergangsfunktion 𝛿 ∈ (Q× ) → Q † Startzustand 𝑞0 Menge von EndzustŠ änden F Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Automaten • Zustandsübergangsgraphen: eine graphische Notation für Automaten – Ein Wort wird akzeptiert, falls es beginnend am Anfangszustand den Automaten in einen Endzustand überführen kann • Ein Wort beschreibt einen Weg durch den Automaten – Die Sprache eines Automaten ist die Menge aller Wörter die er akzeptiert h >> 1 a ! 3 2 h Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 4 Technische Universität München Automaten • Lemma: Für jeden DFA A existiert eine reguläre Grammatik G mit L(A) = L(G) • Lemma: Für jede reguläre Grammatik G existiert ein DFA A mit L(G) = L(A) • Theorem: Reguläre Grammatiken und deterministische endliche Automaten sind bezüglich ihrer Sprachen gleich mächtig • Endliche Automaten liefern die operativen Werkzeuge zum Lösen des Entscheidungsproblems für reguläre Grammatiken. Dieselbe Funktion erfüllen nichtdeterministische Kellerautomaten (kontextfreie Grammatiken), linear beschränkte Automaten (kontextsensitive Grammatiken), und Turingmaschine (Typ-0 Grammatiken). Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Automaten • Das Gedächtnis von Automaten – Angenommen, der Automat A will ein Wort w erkennen – Nachdem Anfangsteil u eingelesen wurde, befindet sich A in einem Zustand q – Ob er denn Rest v und damit w = uv akzeptiert hängt nur vom aktuellen Zustand q ab – q ist die einzige Information, die sich der Automat merken kann, nicht aber wie er nach q gekommen ist Fakultät für Informatik, Einführung in die Informatik, WS 2010/11 Technische Universität München Automaten • DFA‘s haben ein endliches Gedächtnis! • Beispiel: A soll die Sprache L = {an bn | n ≥ 0} erkennen • Intuitiv: Geht nicht, denn nachdem k viele a‘s gelesen sind, müsste sich der Automat k „gemerkt― haben, um nach der richtigen Anzahl von b‘s in einen Endzustand zu gehen. • A kann sich aber nur endlich viele verschiedene Informationen merken; er kann nicht für jedes k N (natürlich Zahlen) in einem anderen Zustand sein Fakultät für Informatik, Einführung in die Informatik, WS 2010/11