Informatik 12 Kapitel 1 - Formale Sprachen

Ähnliche Dokumente
Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Alphabet, formale Sprache

Kapitel IV Formale Sprachen und Grammatiken

Sprachen sind durch folgenden Aufbau gekennzeichnet:

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

7. Formale Sprachen und Grammatiken

Syntax von Programmiersprachen

Lernen und Lernmotivation. Staatliches Studienseminar für das Lehramt an Gymnasien Trier/ TDS Daun BPS 2016

Grundbildung ein Plus für Ihr Unternehmen? Eine Weiterbildung für Multiplikatoren/-innen in Betrieben und Unternehmen

7. Syntax: Grammatiken, EBNF

3M Scotchlite Reflective Material

Referat zum Thema Lesestrategien (erstellt von: Ellen Engel & Christine Jung) Gliederung

Einführung in die Informatik. Programming Languages

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Theoretische Informatik Testvorbereitung Moritz Resl

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Grundbildung Was Hänschen nicht lernt. Eine Weiterbildung für Pädagoginnen und Pädagogen als Multiplikatoren

Kapitel 2. Methoden zur Beschreibung von Syntax

EPU-Tag 2016 «Erfolgsfaktor ICH»

Kann ich s oder kann ich s noch nicht? Jan-H. Obendiek

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Inhalte. Lehrplan. Hinweis

Grundlagen der Theoretischen Informatik

Automaten und formale Sprachen Klausurvorbereitung

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

(Prüfungs-)Aufgaben zu formale Sprachen

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Grundlagen der Theoretischen Informatik

Einführung in die Informatik. Programming Languages

Lexikalische Programmanalyse der Scanner

Formale Sprachen und Grammatiken

Grundbegriffe. Grammatiken

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

HERZLICH WILLKOMMEN ZUM THEMENELTERNABEND AM FSG MEHR ERFOLG DURCH RICHTIGES LERNEN

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

TEST ZUM SPRACHVERSTÄNDNIS TEIL 1: DAS PRINZIP DER ÜBEREINSTIMMUNG

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Rekursiv aufzählbare Sprachen

Übung Praktische Informatik I

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Mehrdeutige Grammatiken

Schneller Lesen und trotzdem Mehr behalten Den Überblick bewahren Ausgeglichen sein. Die Grundlagen

Lexikalische Analyse, Tokenizer, Scanner

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Sprachen/Grammatiken eine Wiederholung

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

4.2.4 Reguläre Grammatiken

Process Instrumentation and Analytics. Ontologie. Was ist das? und - Was kann man damit machen? Vortrag von Carola Brix

Zusammenfassung. Beispiel. 1 Wir betrachten die folgende Signatur F = {,, +, 0, 1} sodass. 3 Wir betrachten die Identitäten E. 4 Dann gilt E 1 + x = 1

8. Turingmaschinen und kontextsensitive Sprachen

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Automatentheorie und formale Sprachen

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Das Nervensystem. Das Nervensystem

Einführung in die Theoretische Informatik

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Gefahrenermittlung sicherheitstechnische Evaluierung von Forstarbeiten

Algorithmen und Formale Sprachen

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

NoPhish Schulung. Lerne wie Phisher vorgehen und wie man sich schützen kann. Unterlagen erstellt am Technische Universität Darmstadt

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Ergotherapie in der Pädiatrie

Grundlagen der Theoretischen Informatik

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

6 Kontextfreie Grammatiken

Kontextfreie Sprachen

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Einführung in die Informatik Grammars & Parsers

Das Gehirn unser mentales Betriebssystem

Tutorium 23 Grundbegriffe der Informatik (10. Sitzung)

Grundlagen der Theoretischen Informatik

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Chomsky-Grammatiken 16. Chomsky-Grammatiken

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Theorie der Informatik

NoPhish Schulung. Lerne wie Phisher vorgehen und wie man sich schützen kann. Unterlagen erstellt am Technische Universität Darmstadt

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Empfehlenswerte Referenzen

Sprachen und Programmiersprachen

Theoretische Grundlagen der Informatik

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Kontextfreie Sprachen

Abschnitt 4: Daten und Algorithmen

6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

Motivation ist der Schlüssel!

Klartext statt Kauderwelsch:

Transkript:

Fachschaft Informatik Informatik 12 Kapitel 1 - Formale Sprachen Michael Steinhuber König-Karlmann-Gymnasium Altötting 6. November 2016 Folie 1/55

Inhaltsverzeichnis 1 Aufbau von Sprachen 2 Grammatiken formaler Sprachen 3 Endliche Automaten Erkennende Automaten Arbeitsweise eines endlichen erkennenden Automaten Noch ein Zustand für Automaten Weitere Optimierungen 4 Grenzen endlicher Automaten Kontextfreie Grammatik Chomsky Hierarchie Turingmaschine Folie 2/55

1.1 Aufbau von Sprachen Übung: Google Übersetzer The alphabet of a formal language is the set of symbols, letters, or tokens from which the strings of the language may be formed. Folie 3/55

Buchstabensalat Gmäeß eneir Sutide eneir elgnihcesn Uvinisterät ist es nchit witihcg, in wlecehr Rneflogheie die Bstachuebn in eneim Wrot snid, das ezniige was wcthiig ist, ist, dass der estre und der leztte Bstabchue an der ritihcegn Pstoiion snid. Der Rset knan ein ttoaelr Bsinöldn sien, tedztorm knan man ihn onhe Pemoblre lseen. Das ist so, wiel wir nciht jeedn Bstachuebn enzelin leesn, snderon das Wrot als gseatems. a a Quelle: www.fehlerhaft.de/wissen/buchstabensalat.html, Stand 22.09.2013 Folie 4/55

Folie 5/55

Definition Sprachen Es gibt natürliche und formale Sprachen. Natürliche Sprache: Der Wortschatz einer natürlichen Sprache (z.b. Deutsch, Englisch) ist umfangreicher, wodurch eine höhere Flexibilität erreicht wird. Wegen folgender Punkte lässt sich eine natürliche Sprache nicht als eine einfache Folge von Strings charakterisieren: Es gibt unterschiedliche Wortschätze (Bayerisch, Friesisch,...). Die Sprache verändert sich mit der Zeit (z.b. Fräulein, Innovation...). Wortkonstrukte sind verständlich obwohl falsch (z.b. Bstabchue). Wortkonstrukte sind weder richtig noch falsch (z.b. next to whom did you stand? ). Folie 6/55

Definition Sprachen (Fortsetzung) Formale Sprache: Eine formale Sprache (z.b. Java, Robot Karol) ist fest definiert, wodurch sie einfacher zu verarbeiten ist. Eine formale Sprache ist definiert als eine Folge von String (= Sequenz von Terminal-Symbolen). Terminal-Symbole bilden die endliche Menge (bei englisch ca. 400000) der verfügbaren Worte, also den Wortschatz. Ein String kann in Phrasen unterteilt werden (z.b. Nomen-Phrasen - np, Verb-Phrasen - vp, etc). Diese Phrasen erlauben die Erstellung von syntaktischen Regeln sowie eine Zuordnung von Semantik. Folie 7/55

Überblick natürliche Sprache z.b. Deutsch, Englisch Besitzt eine hohe Flexibilität, ist aber ungenau(z.b. Bank). Verändert sich laufend. Wortkonstrukte sind verständlich obwohl falsch. formale Sprache z.b. Java, RobotKarol Ist eindeutig und ist daher einfacher zu verarbeiten. Wortschatz ist geringer. Folie 8/55

Definition: Syntax und Symantik Programme sind Texte, die in Programmiersprachen (formale Sprachen), deren Syntax und Semantik genau definiert werden. Die Syntax bestimmt, welche Programmtexte zulässig, d.h., korrekt formuliert sind, sie wird i.a. formal definiert. Die Semantik beschreibt die Bedeutung korrekt formulierter Programmtexte als Verarbeitungsschritte von Rechenprozessen, sie wird meist informell definiert. Folie 9/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb R4: Objekt Substantiv Artikel Substantiv Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb R4: Objekt Substantiv Artikel Substantiv R5: Artikel der die ein Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb R4: Objekt Substantiv Artikel Substantiv R5: Artikel der die ein R6: Substantiv Reiseführer Sehenswürdigkeit Paul Auto Folie 10/55

Beispiel: Syntaxregeln Deutsch R1: Satz Subjekt Prädikat Objekt. R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb R4: Objekt Substantiv Artikel Substantiv R5: Artikel der die ein R6: Substantiv Reiseführer Sehenswürdigkeit Paul Auto R7: Verb zeigt fährt Folie 10/55

Anwenden von Regel R1: Satz Subjekt Prädikat Objekt. Folie 11/55

Anwenden von Regel R2: Subjekt Substantiv Artikel Substantiv R3: Prädikat Verb R4: Objekt Substantiv Artikel Substantiv Folie 12/55

Anwenden von Regel R5: Artikel der die ein R6: Substantiv Reiseführer Sehenswürdigkeit Paul Auto R7: Verb zeigt fährt Folie 13/55

Folie 14/55

Definition: Terminal- Nichtterminalsymbol Ein Terminalsymbol ist ein Symbol, das einzeln nicht weiter durch eine Produktionsregel ersetzt werden kann. Ein Nichtterminalsymbol ist ein Symbol, das nicht in den endgültigen Wörtern vorkommt. Nichtterminalsymbole kommen nur in Zwischenschritten einer Ableitung vor und werden durch das Anwenden von Regeln nach und nach ersetzt, bis nur noch Terminalsymbole vorhanden sind. Folie 15/55

Definition: Syntaxbaum Ein Syntaxbaum veranschaulicht die syntaktische Struktur eines Satzes. Die Blätter des Syntaxbaums sind Terminalsymbole, die inneren Knoten Nichtterminalsymbole. Folie 16/55

Definition: Wort Der Begriff Wort unterscheidet sich im Kontext der natürlichen und der formalen Sprachen: natürliche Sprache Zusammenhängende und korrekte Buchstabenketten (ohne Leerzeichen) mit eigenständiger Bedeutung. Hallo, Computer,... formale Sprache Zeichenketten aus den Symbolen des Alphabets, die in dieser Sprache als korrekt definiert sind (z.b. syntaktisch korrektes Programm). SELECT * FROM buch WHERE true Folie 17/55

1.2 Grammatiken formaler Sprachen Definition: formale Grammatik Eine formale Grammatik G besteht aus vier Elementen: V: Vokabular ist eine endliche Menge an Symbolen. Σ: Die Terminalsymbole sind eine Teilmenge von V (Σ V). P: endliche Menge von Produktionsregeln. S: Startsymbol V \Σ ist das erste Nichtterminal, mit dem die Erzeugung einer gültigen Zeichenkette begonnen wird. Folie 18/55

Produktionsregeln in der EBNF Definition: EBNF Eine formale Sprache wird durch eine formale Grammatik G = (V,Σ,P,S) definiert. Für die Darstellung der Produktionsregeln P gibt es die standartisierte EBNF (=erweiterte Backus-Naur-Form). Folie 19/55

Beispiel: Grammatik einer E-Mail-Adresse G = (V,Σ,P,S) mit V = { 0, 1,..., 9 } { a, b,..., z } { @,,,.,! } {E-Mail-Adresse, Benutzerkennung} {Domäne, Einzelzeichen, Buchstabe} {Ziffer, Unterdomäne, Topleveldomäne} Σ = { 0, 1,..., 9 } { a, b,..., z } { @,,,.,! } S = { E-Mail-Adresse } Folie 20/55

Definition: Startsymbol Ausgehend von einem Startsymbol S werden durch Produktionsregeln (PR) aus der Regelmenge P neue Zeichenfolgen abgeleitet. PR 1 E-Mail-Adresse = Benutzerkennung @ Domäne Wiederholung Stehen Elemente innerhalb geschweifter Klammern, können diese Elemente bei der Ableitung kein, ein oder beliebig oft wiederholt werden. Da das Einzelzeichen mindestens einmal vorkommen muss erhalten wir: PR 2 Folie 21/55 Benutzerkennung = Einzelzeichen {Einzelzeichen}

Alternativen Alternativen bei der Ableitung werden durch das Trennzeichen angegeben. PR 3 Einzelzeichen = Buchstabe Ziffer -.! PR 4 Ziffer = 0 1... 9 PR 5 Buchstabe = a b... z... ist dabei eine Aufzählung um z.b. nicht alle 26 Buchstaben angeben zu müssen. PR 6 Domäne = Unterdomäne{. Unterdomäne}. Topleveldomäne Folie 22/55

Option Elemente innerhalb eckiger Klammern können abgeleitet werden, müssen aber nicht. PR 7 Topleveldomäne = Buchstabe Buchstabe [ Buchstabe ][ Buchstabe ] Gruppieren Zusammengehörige Elemente können durch runde Klammern gruppiert werden: PR 8 Unterdomäne = (Buchstabe Ziffer){Buchstabe Ziffer - }(Buchstabe Ziffer) Folie 23/55

Zusammenfassung der Produktionsregeln P = {PR 1, PR 2, PR 3, PR 4, PR 5, PR 6, PR 7, PR 8 } mit PR 1 E-Mail-Adresse = Benutzerkennung @ Domäne PR 2 Benutzerkennung = Einzelzeichen {Einzelzeichen} PR 3 Einzelzeichen = Buchstabe Ziffer -.! PR 4 Ziffer = 0 1... 9 PR 5 Buchstabe = a b... z PR 6 Domäne = Unterdomäne{. Unterdomäne}. Topleveldomäne PR 7 Topleveldomäne = Buchstabe Buchstabe [Buchstabe ][ Buchstabe ] PR 8 Unterdomäne =(Buchstabe Ziffer) {Buchstabe Ziffer - } (Buchstabe Ziffer) Folie 24/55

Überblick Produktionsregeln in EBNF Wiederholung {ELEMENT} ELEMENT wird kein, ein oder beliebig oft wiederholt. Alternativen EL1 EL2 Entweder EL1 oder EL2 wird abgeleitet. Aufzählungen EL1... ELX Aufzählung einer beliebigen Anzahl an Alternativen. Option [ELEMENT] ELEMENT wird kein oder einmal abgeleitet. Gruppierung (ELEMENTE) ELEMENTE werden zusammengefasst. Folie 25/55

Beispiel: Datum Gib eine Grammatik zu Darstellung eines Datums in der Form 1. Januar 2013 an. Folie 26/55

Beispiel: Datum Gib eine Grammatik zu Darstellung eines Datums in der Form 1. Januar 2013 an. Folie 26/55

Syntaxdiagramme Definition Syntaxdiagamm Ein Syntaxdiagramm wird in der Informatik benutzt, um die Syntax von Produktionsregeln P graphisch darzustellen. Die beiden Darstellungen sind gleich mächtig: Jede formale Sprache in EBNF lässt sich in einem Syntaxdiagramm darstellen und umgekehrt. Folie 27/55

Beispiel Kalender Folie 28/55

Übung: Syntaxdiagramme Folie 29/55

Übung: Syntaxdiagramme Folie 30/55

Lösung Folie 31/55

Übung: KFZ-Kennzeichen Skizziere das Syntaxdiagramm zu den hier angegebenen Grammatikregeln in EBNF: P = {PR 1, PR 2, PR 3, PR 4, PR 5, PR 6, PR 7,} mit PR 1 KFZ-Kennzeichen = Zulassungsbezirk - Buchstabenkombination Zahl PR 2 Zulassungsbezirk = Buchstabe [Buchstabe] [Buchstabe] PR 3 Buchstabenkombination = Buchstabe Buchstabe Buchstabe PR 4 Zahl = ZifferOhneNull {Ziffer} PR 5 Buchstabe = A B... Z PR 6 ZifferOhneNull = 1 2... 9 PR 7 Ziffer = 0 ZifferOhneNull Folie 32/55

Lösung Folie 33/55

1.3 Endliche Automaten Definition: endlicher Automat Ein endlicher Automat besteht aus endlich vielen Zuständen S und Übergängen δ zwischen diesen Zuständen. EA = (Σ,S,s 0,δ,F). Σ Eingabealphabet S Menge von Zuständen s 0 Anfangszustand aus S δ Zustandsübergangsfunktion: δ : S Σ S F Menge von Endzuständen Folie 34/55

Erkennende Automaten Erkennender Automat zu KFZ-Kennzeichen Folie 35/55

Erkennende Automaten Erkennender Automat zu KFZ-Kennzeichen Folie 36/55

Noch ein Zustand für Automaten Definition: Fangzustand Unter einem Fangzustand versteht man einen Zustand in einem Automaten, der durch kein Eingabezeichen verlassen werden kann. Erreicht wird dieser Zustand durch das Lesen eines ungültigen Zeichens. Folie 37/55

Noch ein Zustand für Automaten Folie 38/55

Übung: Vierertester Ein Vierertester prüft, ob eine Dualzahl durch 4 teilbar ist, d.h. ob die beiden letzten Ziffern Nullen sind. Z.B. sind die Binärzahlen 110100 und 100 durch 4 teilbar, 1101 und 0010011 jedoch nicht. Bestimme ein Eingabealphabet für die Binärzahlen. Skizziere einen endlichen erkennenden Automaten mit Start- und Endzustand. Implementiere den Automaten in Java. Folie 39/55

Lösung: Vierertest Folie 40/55

Übung: Paragraph G = (V,Σ,P,S) mit P ={ Gesetztextverweis = Paragraph [ Artikel ], Paragraph = ZahlOhne0 {Zahl}, Artikel = ( ZahlOhne0 [ Zahl ] ), ZahlOhne0 = 1 2... 9, Zahl = 0 ZahlOhne0 } Folie 41/55

Weitere Optimierungen Statische Variablen und Methoden In Programmiersprachen ist eine statische Variable (Schlüsselwort static ) eine Variable, die während der gesamten Ausführzeit des Programms, und nicht erst bei der Erzeugung eines Objekts der Klasse, genau einmal definiert ist. Statische Methoden dürfen nur auf statische Variablen zugreifen. Beispiel: Folie 42/55

Weitere Optimierungen Entwurfsmuster Einzelstück Das Entwurfsmuster Einzelstück stellt sicher, dass von einer Klasse nur ein einziges Objekt existiert. Diese Instanz ist üblicherweise global verfügbar. Umsetzung in Java: Attribut mit Datentyp der Klasse, das die einzige Instanz enthält. private-konstruktor, damit dieser nicht aufgerufen werden kann. Eine statische Konstruktor-Ersatzmethode (z.b. public static [KLASSENNAME] objektgeben() ). Folie 43/55

Entwurfsmuster Zustand Im Entwurfsmuster des Zustandes spielen drei Akteure eine Rolle. Der Kontext definiert die clientseitige Schnittstelle und verwaltet die separaten Zustandsklassen. Außerdem tauscht er diese bei einem Zustandsübergang aus. Der Zustand definiert eine einheitliche Schnittstelle aller Zustandsobjekte und implementiert gegebenenfalls ein Standardverhalten. Der konkrete Zustand wiederum implementiert das Verhalten, das mit dem Zustand des Kontextobjektes verbunden ist. a a Quelle: http://de.wikipedia.org/wiki/zustand_%28entwurfsmuster%29, 20. Oktober 2013 Folie 44/55

Entwurfsmuster Zustand Folie 45/55

Folie 46/55

Übung: E-Mail Folie 47/55

1.4 Grenzen endlicher Automaten Klammerproblem Jeder Taschenrechner beherrscht die Klammerung von Ausdrücken. Dabei gibt es zu jeder öffnenden Klammer eine schließende Klammer. Beispiel: ((3+5) : 6) (10 : (24 12)+44) =? Folie 48/55

Übung: Vereinfachte Sprache Vereinfacht lässt sich das Problem mit der Sprache L = {ab,aabb,aaabbb,...} = {a n b n n > 0} darstellen. Diese Sprache kann als Teil der Klammersprache gesehen werden. Plane einen Zustandsautomaten, der diese Problem lösen kann. Folie 49/55

Problem Ein endlicher Automat kann problemlos erweitert werden, es müssen nur jeweils zwei weitere neue Zustände einführt werden. Im allgemeinen Fall müsste der Automat aber unendlich viele Zustände besitzen. Dies widerspricht aber der Definition eines endlichen Automaten (endlich viele Zustände). Um die Sprache zu erkennen, ist es notwendig, dass sich der Automat irgendwie die Anzahl der n-mal gelesenen Buchstaben merkt. Folie 50/55

Lösung: Kellerautomat für kontextfreie Grammatiken Folie 51/55

Lösung: Kellerautomat für kontextfreie Grammatiken 1 1 Weitere Informationen unter http://de.wikipedia.org/wiki/kellerautomat Folie 52/55

Lösung: Kellerautomat für kontextfreie Grammatiken Folie 53/55

Chomsky Hierarchie Chomsky-Typ Grammatikart Sprache Typ 0 unbeschränkt aufzählbare Sprachen Typ 1 kontextsensitiv kontextsensitive Sprachen Typ 2 kontextfrei kontextfreie Sprachen Typ 3 rechtslinear reguläre Sprachen akzeptierende Maschine Turingmaschine linear beschränkte Turingmaschine Kellerautomat endlicher Automat Folie 54/55

Links zur Turingmaschine http://de.wikipedia.org/wiki/turing_maschine http://www.youtube.com/watch?v=mzmz-bvwhbe Folie 55/55