18b85fadbd527b8d7eebcc6cda586fc7.ppt
- Количество слайдов: 79
Theorie formaler Sprachen Klaus Becker 2004
2 Formale Sprachen und Automaten KB Endliche Automaten Kontextfreie Sprachen Kellerautomaten Kontextsensitive Sprachen Linear beschränkte TM Allgemeine Sprachen Theorie formaler Sprachen Reguläre Sprachen Turingmaschinen
Theorie formaler Sprachen 3 KB Teil 1 Reguläre Sprachen
Theorie formaler Sprachen 4 Festlegung formaler Sprachen B z. N N 0 N 1 N 0 N N 1 N Grammatik Automat Zielsetzung Ziel ist es, verschiedene Möglichkeiten zur Festlegung formaler Sprachen zu vergleichen. KB
Die Sprache der Zustandsbezeichner 5 (Vereinfachte) Zustandsbezeichner Theorie formaler Sprachen z 0 KB z 10 z 01101 z 000000 Regeln zur Bildung vereinfachter Zustandsbezeichner /1/ Der Bezeichner beginnt mit einem z. /2/ Danach kommt beliebig oft, aber mindestens einmal eine der Ziffern 0 oder 1.
Grammatik 6 (Vereinfachte) Zustandsbezeichner Theorie formaler Sprachen z 0 KB z 10 z 01101 z 000000 Grammatikregeln S A A z. A 0 1 0 A 1 A
Theorie formaler Sprachen 7 KB Übersetzung: Grammatik Automat S A A z. A 0 1 0 A 1 A
Theorie formaler Sprachen 8 KB Übersetzung: Automat Grammatik B A A S A A 0 B 1 B z. A 1 A 0 A
9 Exkurs: Nichtdeterministische Automaten Theorie formaler Sprachen Wahlmöglichkeit Bei einem nichtdeterministischen Automaten besteht Wahlfreiheit: Der Automat kann bei einer gegebenen Eingabe von einem Zustand in verschiedene Folgezustände überführt werden. Bei einem deterministischen Automaten ist genau festgelegt, in welchen Folgezustand der Automat bei einer gegebenen Eingabe von einem Zustand aus überführt wird. KB
Theorie formaler Sprachen 10 KB Exkurs: Nichtdeterministische Automaten Unter der Sprache eines nichtdeterministischen Automaten versteht man die Menge aller Wörter (über dem Alphabet der Eingabezeichen), die den Automaten vom Anfangszustand (allg. von einem Anfangszustand) in einen Endzustand überführen können.
Exkurs: Nichtdeterministische Automaten Theorie formaler Sprachen 11 KB Das Teilwort z 00 kann den Automaten in die Zustände q 1 und q 2 überführen. Wird das nächste Zeichen 1 verarbeitet, so erweist sich die bisherige Überführung in q 2 als Sackgasse (rot). Die Verarbeitung von q 1 aus führt in q 1 (grau) oder q 2 (grün).
Überführung: NFA DFA Theorie formaler Sprachen 12 KB nichtdeterministischer Automat (NFA) deterministischer Automat (DFA)
Äquivalenzsatz 13 Theorie formaler Sprachen Satz (Rabin, Scott) KB Zu jedem nichtdeterministischen Automaten gibt es einen deterministischen Automaten, der dieselbe Sprache erkennt. Bemerkungen: Da jeder deterministische Automat auch ein nichtdeterministischer Automat ist, gilt trivialerweise auch die Umkehrung: Zu jedem deterministischen Automaten gibt es einen nichtdeterministischen Automaten, der dieselbe Sprache erkennt. Deterministische und nichtdeterministische Automaten erkennen somit dieselben Sprachen.
Beweisidee Theorie formaler Sprachen 14 KB Jede Menge von Zuständen des NFA ergibt einen neuen Zustand des DFA. Nicht benötigte Zustände werden weggelassen.
Zusammenhang: Grammatik – Automat 15 Theorie formaler Sprachen Grammatik NFA KB S A A z. A 0 1 0 A 1 A NFA Grammatik B A A S A A 0 B 1 B z. A 1 A 0 A Die Übersetzung Grammatik NFA bzw. NFA Grammatik funktioniert nur, wenn die Grammatikregeln eine sehr einfache Gestalt haben: - Auf der linken Seite steht ein Nichtterminalsymbol. - Auf der rechten Seite steht genau ein Terminalsymbol oder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol.
Reguläre Grammatiken Theorie formaler Sprachen 16 Eine Grammatik heißt regulär genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol. - Auf der rechten Seite steht genau ein Terminalsymbol oder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol. Eine Sprache heißt regulär genau dann, wenn sie mit Hilfe einer regulären Grammatik beschrieben werden kann. Beispiele für reguläre Grammatikregeln: A c A a. B A c. A Beispiele für nicht-reguläre Grammatikregeln: KB A a. Ba AB c
Äquivalenzsatz 17 Theorie formaler Sprachen Grammatik NFA S A A z. A 0 1 0 A 1 A NFA Grammatik B A A S A A 0 B 1 B z. A 1 A 0 A Satz Jede durch einen endlichen Automaten erkennbare Sprache ist regulär. Jede reguläre Sprache kann durch einen endlichen Automaten erkannt werden. KB
Theorie formaler Sprachen 18 KB Überführung: NFA RE (z((1+0)*))(0+1)
Überführung: RE NFA Theorie formaler Sprachen 19 (z((1+0)*))(0+1) KB
Äquivalenzsatz 20 Theorie formaler Sprachen Satz (Kleene) KB Jede durch einen endlichen Automaten erkennbare Sprache kann durch einen regulären Ausdruck beschrieben werden. Jede durch einen regulären Ausdruck beschreibbare Sprache kann durch einen endlichen Automaten erkannt werden.
21 Beschreibung regulärer Sprachen Folgende Sprachbeschreibungskonzepte sind äquivalent: Theorie formaler Sprachen - deterministische endliche Automaten KB - nichtdeterministische endliche Automaten - reguläre Grammatiken - reguläre Ausdrücke (z((1+0)*))(0+1) S A A z. A 0 1 0 A 1 A
Theorie formaler Sprachen 22 KB Übungen Aufgabe 1 Wir betrachten die Sprache der Wörter über dem Alphabet {a, b}, die mit a beginnen und mit b enden. Zeigen Sie, dass diese Sprache regulär ist. Entwerfen Sie zu dieser Sprache eine reguläre Grammatik, einen endlichen Automaten und einen regulären Ausdruck. Aufgabe 2 Wir betrachten die Sprache der Wörter über dem Alphabet {a, b, c}, die nach jedem a genau ein b enthalten. Zeigen Sie, dass diese Sprache regulär ist. Entwerfen Sie zu dieser Sprache eine reguläre Grammatik, einen endlichen Automaten und einen regulären Ausdruck. Aufgabe 3 Wir betrachten die Sprache der korrekt gebildeten ganzen Zahlen. Hierzu gehören z. B. 0, 3, +3, -3. Zeigen Sie, dass diese Sprache regulär ist.
Theorie formaler Sprachen 23 KB Teil 2 Kontextfreie Sprachen
Klammersprachen 24 Theorie formaler Sprachen Vereinfachte Zustandsmengen KB ATag <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az>. . . </a> ETag Elementliste Element Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag.
Klammersprachen 25 Theorie formaler Sprachen Vereinfachte Zustandsmengen KB <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az>. . . </a> Grammatik Terminalsymbole: '<', '>', '/', 'a', 'b', 'c', 'd', . . . Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' | 'd' |. . . <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <ATag> : : = '<' <Bezeichner> '>' <ETag> : : = '<' '/' <Bezeichner> '>' <Element> : : = <ATag> <Bezeichner> <ETag> <Element> : : = <ATag> <Element. Liste> <ETag> <Element. Liste> : : = <Element> | <Element> <Element. Liste> [*] Anfangs- und Endtag müssen zusammenpassen [*]
Klammersprachen 26 XML mit vereinfachten Tags ATag Theorie formaler Sprachen < KB < <off> <low> <high> Elementliste > < <off> Element >. . . > ETag <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az>. . . </a> Terminalsymbole: '<', '>', 'a', 'b', 'c', 'd', . . . Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' | 'd' |. . . <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <Element> : : = '<' <Bezeichner> '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste>
Klammersprachen 27 XML mit vereinfachten Tags ohne Inhalte Theorie formaler Sprachen < KB < <> <> <> <off> <low> <high> > < <> <off> >. . . > Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> : : = '<' '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste>
Klammersprachen 28 Klammer auf, Klammer zu L = {anbn | n 1} Theorie formaler Sprachen < KB < <> aaabbb > > Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> : : = '<' '>' | '<' <Element> '>' Terminalsymbole: a, b Startsymbol: S Produktionen: S : : = ab | a. Sb
29 Erkennen von Klammersprachen Theorie formaler Sprachen Problem: Gesucht ist ein endlicher Automat, der Klammersprachen erkennt. KB < < < > > < <> <> <> > < <> > > EA ok Fehler
30 Erkennen von Klammersprachen Theorie formaler Sprachen Schwierigkeit: Der endliche Automat muss sich merken, wie viele Klammern geöffnet sind. Zum Merken hat ein EA nur Zustände zur Verfügung. < < < > > Mit endlich vielen Zuständen kann man sich aber nicht beliebig viele geöffnete Klammern merken. EA Fehler KB
Grenzen des endlichen Automaten 31 Theorie formaler Sprachen Satz KB Es gibt keinen endlichen Automaten, der die Klammersprache L = {anbn | n 1} akzeptiert. Annahme: Es gibt einen endlichen Automaten A, der L akzeptiert. A hat endliche viele Zustände. m bezeichne die Anzahl dieser Zustände. Wir betrachten jetzt ein Wort w = akbk mit k > m. Das Wort w hat also einen Anfangsteil, der mehr a‘s enthält als A Zustände hat. Bei der Verarbeitung des a-Anfangsteils von w muss zwangsläufig mindestens ein Zustand von A mindestens zweimal durchlaufen werden. Es ergibt sich folgende Situation: . a. . . a a a. . . a b. . . b
Grenzen des endlichen Automaten Theorie formaler Sprachen 32 aq. a. . . a ap b. . . b ar bk Es gilt: w = akbk = apaqarbk mit p+q+r=k. Betrachte w´ = apaqaqarbk. Beachte: p+q+q+r>k (mehr a‘s als b‘s). Es gilt: - w´ wird von A akzeptiert (da w´ genau wie w den AZ in einen EZ überführt). - w´ gehört nicht zur Sprache L (da mehr a’s als b’s). Dies ist ein Widerspruch zur Annahme, dass A die Sprache L = {anbn | n 1} akzeptiert. Die Annahme muss daher falsch sein. Die Aussage des Satzes ist folglich wahr. KB
33 Grenzen des endlichen Automaten Theorie formaler Sprachen Folgerungen: KB Es gibt Sprachen (wie z. B. die oben gezeigten Klammersprachen), die - nicht von einem endlichen Automaten erkannt werden können, - nicht mit einer regulären Grammatik beschrieben werden können, - nicht mit einem regulären Ausdruck beschrieben werden können.
Erweiterung des Automatenmodells 34 Eingabeband . . . Theorie formaler Sprachen < < Lesekopf < > > > Zustandsbasierte Verarbeitungseinheit . . . > > KB Kellerautomat Keller
35 Spracherkennung mit Kellerautomaten Kelleraktionen: Theorie formaler Sprachen push z Das Zeichen z auf den Stapel legen. pop Das oberste Zeichen des Stapels entfernen. Zustandsübergang: z / e: Aktion Oberstes Kellerzeichen Gelesene Eingabezeichen Spracherkennung: Ein Wort wird akzeptiert, wenn der Keller nach Abarbeitung des Wortes leer ist. KB
36 Erkennung einer Klammersprache Beispiel: Theorie formaler Sprachen Der Kellerautomat erkennt die Klammersprache L = {<n>n | n 1}. Oberstes Kellerzeichen / Gelesene Eingabe : Kelleraktion Erstellt mit „Automaton Simulator“ KB
37 Nichtdeterministische Kellerautomaten Zustandsübergang: Theorie formaler Sprachen Eingabe , Pop-Aktion; Push-Aktion KB Nichtdeterminismus
Theorie formaler Sprachen 38 KB Nichtdeterministische Kellerautomaten
39 Übung Theorie formaler Sprachen Entwickeln Sie Kellerautomaten, die folgenden Sprachen akzeptieren: KB Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> : : = '<' '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <Element> : : = '<' <Bezeichner> '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste>
Theorie formaler Sprachen 40 KB Lösungsvorschlag Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <Element> : : = '<' <Bezeichner> '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste>
Struktur der Regeln 41 Theorie formaler Sprachen Strukturanalyse: KB Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> : : = '<' '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <Element> : : = '<' <Bezeichner> '>' | '<' <Element. Liste> '>' <Element. Liste> : : = <Element> | <Element> <Element. Liste> Auf der linken Seite steht jeweils ein Nichtterminalsymbol. Auf der rechten Seite steht ein Wort, das aus Terminal- und Nichtterminalsymbolen bestehen kann.
Kontextfreie Grammatiken Theorie formaler Sprachen 42 Eine Grammatik heißt kontextfrei genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol. - Auf der rechten Seite steht ein beliebiges Wort bestehend aus Terminal- und Nichtterminalsymbolen. Eine Sprache heißt kontextfrei genau dann, wenn sie mit Hilfe einer kontextfreien Grammatik beschrieben werden kann. Beispiele für kontextfreie Grammatikregeln: E ab E a. Lb L E L EL Beispiele für nicht-kontextfreie Grammatikregeln: KB a. Ab b. Aa
Theorie formaler Sprachen 43 KB Übersetzung: Grammatik Kellerautomat Nichtdeterministischer Zustandsübergang
Äquivalenzsatz 44 Theorie formaler Sprachen Satz KB Eine Sprache ist kontextfrei genau dann, wenn sie von einem nichtdeterministischen Kellerautomaten erkannt wird. Beachte: Mit deterministischen Kellerautomaten kann man nur eine echte Teilmenge der kontextfreien Sprachen erkennen.
Theorie formaler Sprachen 45 KB Teil 3 Kontextsensitive und allgemeine Sprachen
46 Beispiel Theorie formaler Sprachen Vereinfachte Zustandsmengen KB <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az>. . . </a> Regeln zur Bildung von XML-Ausdrücken /1/ Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag. /2/ Ein Bezeichner besteht aus beliebigen alphanumerischen Zeichen.
XML 47 Theorie formaler Sprachen Vereinfachte Zustandsmengen KB <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az>. . . </a> Grammatik Terminalsymbole: '<', '>', '/', 'a', 'b', 'c', 'd', . . . Startsymbol: <Element> Produktionen: <Abc> : : = 'a' | 'b' | 'c' | 'd' |. . . <Bezeichner> : : = <Abc> | <Abc> <Bezeichner> <ATag> : : = '<' <Bezeichner> '>' <ETag> : : = '<' '/' <Bezeichner> '>' <Element> : : = <ATag> <Bezeichner> <ETag> <Element> : : = <ATag> <Element. Liste> <ETag> <Element. Liste> : : = <Element> | <Element> <Element. Liste> [*] Anfangs- und Endtag müssen zusammenpassen [*]
Eine vereinfachte Tag-Klammersprache 48 Theorie formaler Sprachen ATag-Wort-ETag KB aab bc aab ba ccba ba Sprachbeschreibung L = {tut | t {a, b}*; u {a, b, c}*} L ist die Menge aller Wörter, die aus einem beliebigen Wort u über dem Alphabet {a, b, c} und identischem Anfangs- und Endtag t besteht, wobei t ein beliebiges (nicht-leeres) Wort über dem Alphabet {a, b} ist.
Tag-Klammersprache 49 Theorie formaler Sprachen ATag-Wort-ETag KB aab bc aab Grammatik – Version 1 (mit Zusatzbedingung) Startsymbol: S A : : = a. A | b. A | E : : = a. E | b. E | W : : = a. W | b. W | c. W | S : : = A W E [*] A und E müssen zusammenpassen
Tag-Klammersprache 50 Theorie formaler Sprachen ATag-Wort-ETag KB aab bc aab Grammatik – Version 2 (ohne Zusatzbedingung) Startsymbol: S : : = a. Ta. X T : : = a. Ta. Xb : : = ba. Xa : : = aa. X b. Xa : : = ab. Xb : : = bb. X a. X : : = a b. X : : = b U : : = a. U | S | b. Tb. X | U b. U | c. U |
Übung 51 Theorie formaler Sprachen Testen Sie die Grammatik der Tag-Klammersprache mit Hilfe des Werkzeugs JFLAP. Erzeugen Sie hierbei auch Syntaxbäume und versuchen Sie, die „Idee“ der Grammatikregeln zu verstehen. KB Startsymbol: S : : = a. Ta. X T : : = a. Ta. Xb : : = ba. Xa : : = aa. X b. Xa : : = ab. Xb : : = bb. X a. X : : = a b. X : : = b U : : = a. U | S | b. Tb. X | U b. U | c. U |
Theorie formaler Sprachen 52 KB Test der Tag-Klammersprache aab|bc|aab
Struktur der Regeln 53 Theorie formaler Sprachen Strukturanalyse: KB Startsymbol: S : : = a. Ta. X T : : = a. Ta. Xb : : = ba. Xa : : = aa. X b. Xa : : = ab. Xb : : = bb. X a. X : : = a b. X : : = b U : : = a. U | S | b. Tb. X | U b. U | c. U | Auf der linken und rechten Seite können beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen stehen.
54 Kontextsensitive / allgemeine Grammatiken Theorie formaler Sprachen Eine Grammatik heißt allgemein genau dann, wenn jede Regel die Struktur u v hat, wobei u und v beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind. Eine Grammatik heißt kontextsensitiv genau dann, wenn jede Regel die Struktur u. Av uwv hat, wobei - A ein Nichtterminalsymbol ist und - u, v und w beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind. Eine Sprache heißt kontextsensitiv / allgemein genau dann, wenn sie mit Hilfe einer kontextsensitiven / allgemeinen Grammatik beschrieben werden kann. Beispiele: a. X a b. Xa ab. X KB kontextsensitive Regel allgemeine Regel
55 Einordnung der Tag-Klammersprache Satz Theorie formaler Sprachen Die Tag-Klammersprache L = {tut | t {a, b}*; u {a, b, c}*} KB a) ist allgemein, b) ist kontextsensitiv, c) ist nicht kontextfrei. Der Nachweis von a) ist mit der bereits angegebenen Grammatik erbracht. Auf den Nachweis von b) und c) wird hier verzichtet.
56 Spracherkennung durch. . . Theorie formaler Sprachen Brute Force Parser KB Erzeugung von Hilfknoten
. . . Suche einer Ableitung Theorie formaler Sprachen 57 KB Grammatik: S : : = a. Sa. X | b. Sb. X | U a. Xb : : = ba. X; a. Xa : : = aa. X; b. Xa : : = ab. X; b. Xb : : = bb. X a. X : : = a; b. X : : = b U : : = a. U | b. U | c. U | Wort: aabbcaab Ableitung: S Backtracking a. Sa. X a(a. Sa. X)a. X = aa. Sa. X aa(b. Sb. X)a. X = aab. Sb. Xa. X aab(b. Sb. X)b. Xa. X = aabb. Sb. Xa. X aabb(U)b. Xa. X = aabb. Ub. Xa. X aabb(c. U)b. Xa. X = aabbc. Ub. Xa. X aabbc()b. Xa. X = aabbcb. Xa. X aabbc(bb. X)Xa. X = aabbcbb. XXa. X # aab(U)b. Xa. X = aab. Ub. Xa. X aab(c. U)b. Xa. X = aabc. Ub. Xa. X. . .
Erweiterung des Automatenmodells 58 Ein-/Ausgabeband . . . Theorie formaler Sprachen < KB < < > > > Zustandsbasierte Verarbeitungseinheit Schreib/Lesekopf Turingmaschine . . .
Spracherkennung mit Turingmaschinen 59 Zustandsübergang: Theorie formaler Sprachen Aktion a ; b, R Gelesenes Zeichen Turingmaschinenaktionen: ein Feld nach rechts L ein Feld nach links S KB R stopp Geschriebenes Zeichen
60 Worterkennung Theorie formaler Sprachen Worterkennung mit leerem Band KB Das zu bearbeitende Wort wird auf das Band geschrieben. Der Schreib-Lese-Kopf wird auf das erste Zeichen des Wortes gesetzt. Ein Wort wird akzeptiert, wenn die Turingmaschine nach der Bearbeitung des Wortes hält und ein leeres Band hinterlässt. Worterkennung mit Endzuständen Das zu bearbeitende Wort wird auf das Band geschrieben. Der Schreib-Lese-Kopf wird auf das erste Zeichen des Wortes gesetzt. Ein Wort wird akzeptiert, wenn sich die Turingmaschine nach der Bearbeitung des Wortes in einem Endzustand befindet.
61 Spracherkennung mit Turingmaschinen Theorie formaler Sprachen Worterkennung mit leerem Band am Beispiel L = {anbn | n 0} KB
62 Spracherkennung mit Turingmaschinen Theorie formaler Sprachen Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0} KB
63 Spracherkennung mit Turingmaschinen Theorie formaler Sprachen Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0} KB
Erkennung der Tag-Klammersprache 64 Theorie formaler Sprachen Satz KB Die Tag-Klammersprache L = {tut | t {a, b}*; u {a, b, c}*} kann mit Hilfe einer Turingmaschine erkannt werden. Idee – dargestellt am Beispiel aab|bc|aab Schritt 1: Führe Begrenzer ein: aabbcaab xaabbcaabx Schritt 2: Lass die Begrenzer Schritt für Schritt nach innen wandern und überprüfe, ob die Teilworte links und rechts vom Begrenzer gleich sind: xaabbcaabx . . . axabbxaaxb . . . aaxbbcaxab . . . aabxbcxaab Ersetze hierzu Schritt für Schritt am linken Ende ein a durch ein y bzw. ein b durch ein z, wandere jeweils an das rechte Ende an die entsprechende Position. Wenn das passende Zeichen gefunden wird, dann ersetze es analog, ansonsten mach die Ersetzung rückgängig und verschiebe die Begrenzer eine Position weiter nach innen.
Theorie formaler Sprachen 65 KB . . . mit dem MPG-Turing-Simulator
Erkennung der Tag-Klammersprache 66 Theorie formaler Sprachen Satz KB Die Tag-Klammersprache L = {tut | t {a, b}*; u {a, b, c}*} kann mit Hilfe einer linear beschränkten Turingmaschine erkannt werden. Bemerkung Eine linear beschränkte Turingmaschine ist eine Turingmaschine, bei der die Eingabe durch Randmarkierungen > und < eingeschlossen wird. Die Turingmaschine darf bei der Bearbeitung diese Markierungen weder überschreiten noch überschreiben.
Äquivalenzsatz 67 Theorie formaler Sprachen Satz KB Eine Sprache ist allgemein genau dann, wenn sie von einer deterministischen (oder nichtdeterministischen) Turingmaschine erkannt wird. Eine Sprache ist kontextsensitiv genau dann, wenn sie von einer linear beschränkten nichtdeterministischen Turingmaschine erkannt wird. Bemerkung Deterministische und nichtdeterministische Turingmaschinen sind gleich mächtig.
68 Übungen Theorie formaler Sprachen Aufgabe 1 Entwerfen und testen Sie eine Turingmaschine, die Sprache L = {anbn | n 0} akzeptiert. Aufgabe 2 Entwerfen und testen Sie eine Turingmaschine, die Sprache der korrekt gebildeten Zahlen akzeptiert. Aufgabe 3 Entwerfen und testen Sie eine Turingmaschine, die Sprache der korrekt geklammerten a-b-Ausdrücke akzeptiert. Zu dieser Sprache gehören alle Wörter über dem Alphabet {a, b}, die zu jeder öffnenden Klammer a eine schließende Klammer b haben. Z. B. : aabb, aababb, aaababbabb Aufgabe 4 Entwerfen und testen Sie eine Turingmaschine, die Sprache L = {anbncn| n 0} akzeptiert. KB
69 Übungen Theorie formaler Sprachen Aufgabe 5 Welche der in Aufgabe 1, . . . , Aufgabe 4 beschriebenen Sprachen ist regulär, kontextfrei, kontextsensitiv, allgemein? KB
Theorie formaler Sprachen 70 KB Teil 4 Exkurs: Natürliche Sprachen
Chomsky-Hierarchie 71 Theorie formaler Sprachen Klassifikation von Sprachen (nach Chomsky / 1958) KB Typ Grammatik äquivalenter Automat 0 allgemein (nicht)deterministische Turingmaschine 1 kontextsensitiv nichtdet. linear beschr. Turingmaschine 2 kontextfrei nichtdeterministischer Kellerautomat 3 regulär (nicht)deterministischer endl. Automat
Theorie formaler Sprachen 72 KB Noam Chomsky http: //web. mit. edu/linguistics/www/chomsky. home. html
73 (Natürliche) Sprachen Theorie formaler Sprachen Sicht: zu Kommunikationszwecken verwendetes Zeichensystem Problem: Beschreibung und Erkennung natürlicher Sprachen KB
74 Semiotik Theorie formaler Sprachen Semiotik: Lehre von den Zeichen KB Syntax: Lehre vom Satzbau Anordnung der Zeichen Semantik: Bedeutungslehre Beziehung zwischen Zeichen und Bezeichnetem Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungssituationen Beziehung zwischen Zeichen und Zeichenbenutzer
Syntax natürlicher Sprachen 75 Theorie formaler Sprachen <S> : : = <NP> <VP> Ein Satz besteht aus einer Nominalphrase und einer Verbalphrase. KB <NP> : : = <N> | <A> <N> | <N> <PP> Eine Nominalphrase muss immer aus einem Nomen bestehen, welchem unter Umständen ein Artikel vorangestellt ist. Ferner kann dem Nomen eine oder mehrere Präpositionalphrasen nachgestellt sein. <VP> : : = <V> | <V> <NP> | <VP> <PP> Eine Verbalphrase besteht aus einem Verb, dem eine Nominal- oder Präpositionalphrase nachgestellt sein kann. <PP> : : = <P> <NP> Eine Präpositionalphrase besteht aus einer Präposition und einer Nominalphrase. <A> <P> <N> <V> : : = der | die | das | dem | einem |. . . mit | in |. . . Anna | Kuh | Park | Fernglas |. . . betrachtet |. . . (nach U. Schöning: Ideen der Informatik. Oldenbourg 2002)
Theorie formaler Sprachen 76 KB Ableitung eines Satzes <S> <NP> <VP> <PP> <A> <P> <N> <V> : : = : : = <NP> <VP> <N> | <A> <N> | <N> <PP> <V> | <V> <NP> | <VP> <P> <NP> der | die | das | einem |. . . mit | in |. . . Anna | Kuh | Fernglas |. . . betrachtet |. . . <S> <NP> <VP> <N> <VP> Anna <VP> <PP> Anna <V> <NP> <PP> Anna betrachtet <A> <N> <PP> Anna betrachtet die Kuh <P> <NP> Anna betrachtet die Kuh mit <A> <N> Anna betrachtet die Kuh mit einem Fernglas
Automatische Übersetzung Theorie formaler Sprachen 77 KB Bemerkung Die Beschreibung, Erkennung und Übersetzung natürlicher Sprachen ist sehr schwierig. Der Beschreibungsansatz über Grammatiken hat bisher nicht zum Erfolg geführt.
78 Automatische Übersetzung heute Idee: Statistische Übersetzung mit Paralleltexten Theorie formaler Sprachen http: //www. uebersetzerportal. de/nachrichten/n-archiv/2003 -09/2003 -09 -17. htm KB
79 Literaturhinweise Theorie formaler Sprachen Gasper / Leiß / Spengler / Stimm: Technische und theoretische Informatik. Bsv 1992. KB U. Schöning: Theoretische Informatik – kurzgefasst. Spektrum Akademischer Verlag 2001. J. E. Hopcroft / J. D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Addison-Wesley 1988. Automaton Simulator: http: //www. cburch. com/proj/autosim/ Jflap: http: //www. cs. duke. edu/~rodger/tools/jflap/ Charon: http: //www. spohrer. net/charon. htm Gold. Parser. Builder: www. devincook. com/goldparser/
18b85fadbd527b8d7eebcc6cda586fc7.ppt