Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Theorie formaler Sprachen

Ähnliche Präsentationen


Präsentation zum Thema: "Theorie formaler Sprachen"—  Präsentation transkript:

1 Theorie formaler Sprachen
Klaus Becker 2004

2 Formale Sprachen und Automaten
Reguläre Sprachen Endliche Automaten Kontextfreie Sprachen Kellerautomaten Kontextsensitive Sprachen Linear beschränkte TM Allgemeine Sprachen Turingmaschinen

3 Teil 1 Reguläre Sprachen

4 Festlegung formaler Sprachen
B  zN N  0 N  1 N  0N N  1N Grammatik Automat Zielsetzung Ziel ist es, verschiedene Möglichkeiten zur Festlegung formaler Sprachen zu vergleichen.

5 Die Sprache der Zustandsbezeichner
(Vereinfachte) Zustandsbezeichner z0 z10 z01101 z000000 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.

6 Grammatik (Vereinfachte) Zustandsbezeichner z0 z10 z01101 z000000
Grammatikregeln S  zA A  0 A  1 A  0A A  1A

7 Übersetzung: Grammatik  Automat
S  zA A  0 A  1 A  0A A  1A

8 Übersetzung: Automat  Grammatik
B   A  0B A  1B S  zA A  1A A  0A

9 Exkurs: Nichtdeterministische Automaten
Wahlmöglichkeit 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.

10 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.

11 Exkurs: Nichtdeterministische Automaten
Das Teilwort z00 kann den Automaten in die Zustände q1 und q2 überführen. Wird das nächste Zeichen 1 verarbeitet, so erweist sich die bisherige Überführung in q2 als Sackgasse (rot). Die Verarbeitung von q1 aus führt in q1 (grau) oder q2 (grün).

12 Überführung: NFA  DFA nichtdeterministischer Automat (NFA)
deterministischer Automat (DFA)

13 Äquivalenzsatz Satz (Rabin, Scott)
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.

14 Beweisidee Jede Menge von Zuständen des NFA ergibt einen neuen Zustand des DFA. Nicht benötigte Zustände werden weggelassen.

15 Zusammenhang: Grammatik – Automat
Grammatik  NFA NFA  Grammatik S  zA A  0 A  1 A  0A A  1A B   A  0B A  1B S  zA A  1A A  0A 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.

16 Reguläre Grammatiken 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  aB A  cA Beispiele für nicht-reguläre Grammatikregeln: A  aBa AB  c

17 Äquivalenzsatz Grammatik  NFA NFA  Grammatik
S  zA A  0 A  1 A  0A A  1A B   A  0B A  1B S  zA A  1A A  0A Satz Jede durch einen endlichen Automaten erkennbare Sprache ist regulär. Jede reguläre Sprache kann durch einen endlichen Automaten erkannt werden.

18 Überführung: NFA  RE (z((1+0)*))(0+1)

19 Überführung: RE  NFA (z((1+0)*))(0+1)

20 Äquivalenzsatz Satz (Kleene)
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: - deterministische endliche Automaten - nichtdeterministische endliche Automaten - reguläre Grammatiken - reguläre Ausdrücke (z((1+0)*))(0+1) S  zA A  0 A  1 A  0A A  1A

22 Ü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.

23 Kontextfreie Sprachen
Teil 2 Kontextfreie Sprachen

24 Klammersprachen Vereinfachte Zustandsmengen
ATag <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> </a> Elementliste Element ETag Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag.

25 Klammersprachen Vereinfachte Zustandsmengen Grammatik
<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> <ElementListe> <ETag> [*] <ElementListe> ::= <Element> | <Element> <ElementListe> [*] Anfangs- und Endtag müssen zusammenpassen

26 Klammersprachen XML mit vereinfachten Tags ATag
< < <off> <low> <high> > < <off> > > <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> </a> Elementliste Element ETag Terminalsymbole: '<', '>', 'a', 'b', 'c', 'd', ... Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' | 'd' | ... <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

27 Klammersprachen XML mit vereinfachten Tags ohne Inhalte
< < <> <> <> > < <> > > < < <off> <low> <high> > < <off> > > Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

28 Klammersprachen Klammer auf, Klammer zu L = {anbn | n  1}
< < <> > > aaabbb Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <Element> '>' Terminalsymbole: a, b Startsymbol: S Produktionen: S ::= ab | aSb

29 Erkennen von Klammersprachen
Problem: Gesucht ist ein endlicher Automat, der Klammersprachen erkennt. < < <> <> <> > < <> > > < < < < < > > > > EA ok Fehler

30 Erkennen von Klammersprachen
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

31 Grenzen des endlichen Automaten
Satz 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 a a b b ... ... ...

32 Grenzen des endlichen Automaten
aq a . . . . . . a a a a a a b b ... ... ... ap 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.

33 Grenzen des endlichen Automaten
Folgerungen: 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.

34 Erweiterung des Automatenmodells
Eingabeband ... < < < > > > ... Lesekopf Zustandsbasierte Verarbeitungseinheit ... > > Kellerautomat Keller

35 Spracherkennung mit Kellerautomaten
Kelleraktionen: 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.

36 Erkennung einer Klammersprache
Beispiel: Der Kellerautomat erkennt die Klammersprache L = {<n>n | n  1}. Oberstes Kellerzeichen / Gelesene Eingabe : Kelleraktion Erstellt mit „Automaton Simulator“

37 Nichtdeterministische Kellerautomaten
Zustandsübergang: Eingabe , Pop-Aktion; Push-Aktion Nichtdeterminismus Nichtdeterminismus

38 Nichtdeterministische Kellerautomaten

39 Übung Entwickeln Sie Kellerautomaten, die die folgenden Sprachen akzeptieren: Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

40 Lösungsvorschlag Terminalsymbole: '<', '>', 'a', 'b', 'c'
Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

41 Struktur der Regeln Strukturanalyse:
Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Auf der linken Seite steht jeweils ein Nichtterminalsymbol. Auf der rechten Seite steht ein Wort, das aus Terminal- und Nichtterminalsymbolen bestehen kann.

42 Kontextfreie Grammatiken
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  aLb L  E L  EL Beispiele für nicht-kontextfreie Grammatikregeln: aAb  bAa

43 Übersetzung: Grammatik  Kellerautomat
Nichtdeterministischer Zustandsübergang

44 Äquivalenzsatz Satz 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.

45 Kontextsensitive und allgemeine Sprachen
Teil 3 Kontextsensitive und allgemeine Sprachen

46 Beispiel Vereinfachte Zustandsmengen
<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.

47 XML Vereinfachte Zustandsmengen Grammatik
<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> <ElementListe> <ETag> [*] <ElementListe> ::= <Element> | <Element> <ElementListe> [*] Anfangs- und Endtag müssen zusammenpassen

48 Eine vereinfachte Tag-Klammersprache
ATag-Wort-ETag 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.

49 Tag-Klammersprache ATag-Wort-ETag
aab bc aab Grammatik – Version 1 (mit Zusatzbedingung) Startsymbol: S A ::= aA | bA |  E ::= aE | bE |  W ::= aW | bW | cW |  S ::= A W E [*] [*] A und E müssen zusammenpassen

50 Tag-Klammersprache ATag-Wort-ETag
aab bc aab Grammatik – Version 2 (ohne Zusatzbedingung) Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU | 

51 Übung 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. Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU | 

52 Test der Tag-Klammersprache
aab|bc|aab

53 Struktur der Regeln Strukturanalyse:
Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU |  Auf der linken und rechten Seite können beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen stehen.

54 Kontextsensitive / allgemeine Grammatiken
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 uAv  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: aX  a kontextsensitive Regel bXa  abX allgemeine Regel

55 Einordnung der Tag-Klammersprache
Satz Die Tag-Klammersprache L = {tut | t  {a,b}*; u  {a,b,c}*} 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 ...
Brute Force Parser Erzeugung von Hilfknoten

57 ... Suche einer Ableitung Grammatik:
S ::= aSaX | bSbX | U aXb ::= baX; aXa ::= aaX; bXa ::= abX; bXb ::= bbX aX ::= a; bX ::= b U ::= aU | bU | cU |  Wort: aabbcaab Ableitung: S  aSaX  a(aSaX)aX = aaSaXaX  aa(bSbX)aXaX = aabSbXaXaX  aab(bSbX)bXaXaX = aabbSbXbXaXaX  aabb(U)bXbXaXaX = aabbUbXbXaXaX  aabb(cU)bXbXaXaX = aabbcUbXbXaXaX  aabbc()bXbXaXaX = aabbcbXbXaXaX  aabbc(bbX)XaXaX = aabbcbbXXaXaX #  aab(U)bXaXaX = aabUbXaXaX  aab(cU)bXaXaX = aabcUbXaXaX ... Backtracking

58 Erweiterung des Automatenmodells
Ein-/Ausgabeband ... < < < > > > ... Zustandsbasierte Verarbeitungseinheit Schreib-/Lesekopf Turingmaschine

59 Spracherkennung mit Turingmaschinen
Zustandsübergang: Aktion a ; b, R Gelesenes Zeichen Geschriebenes Zeichen Turingmaschinenaktionen: R ein Feld nach rechts L ein Feld nach links S stopp

60 Worterkennung Worterkennung mit leerem Band
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
Worterkennung mit leerem Band am Beispiel L = {anbn | n  0}

62 Spracherkennung mit Turingmaschinen
Worterkennung mit Endzuständen am Beispiel L = {anbn | n  0}

63 Spracherkennung mit Turingmaschinen
Worterkennung mit Endzuständen am Beispiel L = {anbn | n  0}

64 Erkennung der Tag-Klammersprache
Satz 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.

65 ... mit dem MPG-Turing-Simulator

66 Erkennung der Tag-Klammersprache
Satz 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.

67 Äquivalenzsatz Satz 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 Aufgabe 1 Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {anbn | n  0} akzeptiert. Aufgabe 2 Entwerfen und testen Sie eine Turingmaschine, die die Sprache der korrekt gebildeten Zahlen akzeptiert. Aufgabe 3 Entwerfen und testen Sie eine Turingmaschine, die 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 die Sprache L = {anbncn| n  0} akzeptiert.

69 Übungen Aufgabe 5 Welche der in Aufgabe 1, ..., Aufgabe 4 beschriebenen Sprachen ist regulär, kontextfrei, kontextsensitiv, allgemein?

70 Exkurs: Natürliche Sprachen
Teil 4 Exkurs: Natürliche Sprachen

71 Chomsky-Hierarchie Klassifikation von Sprachen (nach Chomsky / 1958)
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

72 Noam Chomsky

73 (Natürliche) Sprachen
Sicht: zu Kommunikationszwecken verwendetes Zeichensystem Problem: Beschreibung und Erkennung natürlicher Sprachen

74 Semiotik Semiotik: Lehre von den Zeichen Syntax: Lehre vom Satzbau
Anordnung der Zeichen Semantik: Bedeutungslehre Beziehung zwischen Zeichen und Bezeichnetem Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungs-situationen Beziehung zwischen Zeichen und Zeichenbenutzer

75 Syntax natürlicher Sprachen
<S> ::= <NP> <VP> Ein Satz besteht aus einer Nominalphrase und einer Verbalphrase. <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> ::= der | die | das | dem | ein | einem | ... <P> ::= mit | in | ... <N> ::= Anna | Kuh | Park | Fernglas | ... <V> ::= betrachtet | ... (nach U. Schöning: Ideen der Informatik. Oldenbourg 2002)

76 Ableitung eines Satzes
<S> ::= <NP> <VP> <NP> ::= <N> | <A> <N> | <N> <PP> <VP> ::= <V> | <V> <NP> | <VP> <PP> <PP> ::= <P> <NP> <A> ::= der | die | das | einem | ... <P> ::= mit | in | ... <N> ::= Anna | Kuh | Fernglas | ... <V> ::= betrachtet | ... <S>  <NP> <VP>  <N> <VP>  Anna <VP>  Anna <VP> <PP>  Anna <V> <NP> <PP>  Anna betrachtet <NP> <PP>  Anna betrachtet <A> <N> <PP>  Anna betrachtet die <N> <PP>  Anna betrachtet die Kuh <PP>  Anna betrachtet die Kuh <P> <NP>  Anna betrachtet die Kuh mit <NP>  Anna betrachtet die Kuh mit <A> <N>  Anna betrachtet die Kuh mit einem <N>  Anna betrachtet die Kuh mit einem Fernglas

77 Automatische Übersetzung
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

79 Literaturhinweise Gasper / Leiß / Spengler / Stimm: Technische und theoretische Informatik. Bsv 1992. 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: Jflap: Charon: GoldParserBuilder:


Herunterladen ppt "Theorie formaler Sprachen"

Ähnliche Präsentationen


Google-Anzeigen