Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen
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
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
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:
Reguläre Sprachen Operationen auf regulären Sprachen Vereinigung (Summe) Konkatenation (Produkt, Verkettung) L L 1 L2 { p p L1 p L2 1 L2 { pq p L1 q L2 } } Beispiel X = {ein, zwei}, Y = {mal, fach}, XY = {einmal, einfach, zweimal, zweifach} Potenz 0 Hülle (Iteration, Stern) L L 0 * { }, L n 0 L n, n 1 L L L n 1 n L n, für n L * L { }
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
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.
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)
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.
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
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.
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 G 1 = ({S}, {a, b}, P, S) mit P = { S asb, S ab } Einige Ableitungen: S ab S asb aabb S asb aasbb aaabbb
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 a n, n 0, erzeugen a n b m 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 a n b n mit n k erzeugt, indem man die endlich vielen Produktionen für alle Fälle von 0 bis k direkt in die Grammatik schreibt!
Ableitungsbäume Sei A w eine Regel, mit w = k, wobei w = w 1 w 2 w k die Darstellung durch Symbole des Alphabets ist. Dann existiert ein zu A w 1 w 2 w k korrespondierender Baum des Verzweigungsgrades k mit Tiefe 2, der Wurzel A und den Blättern w 1, w 2,, w k. A w 1 w 2 w k
Ableitungsbäume Sei S u 1 u 2 u 3 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. Beispiel: G 1 = ({S}, {a, b}, P, S) mit P = { S asb, S ab } S asb a S S b S S aasbb a S b a S b a b aaabbb a b
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
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)
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
Automaten Ein (Deterministischer) Endlicher Automat (DEA) ist ein FŸünf-Tupel < Q,,, q 0, F > Endliche, nicht leere Menge von Zuständen Q Eingabealphabet Übergangsfunktion δ (Q ) Q Startzustand q 0 Menge von EndzustŠänden F
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 a! >> 1 2 3 4 h
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).
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
Automaten DFA s haben ein endliches Gedächtnis! Beispiel: A soll die Sprache L = {a n b n 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