2. Automaten Sprachen Grammatiken Zusammenhänge Anwendung Inhalt Roter Faden durch die Theoretische Informatik von Julian Schuh
3. Automaten… … in diesem Fall deterministische, endliche Automaten (DEA) …bestehen aus Übergängen Zustände Start/End-Zuständen …überprüfen, ob ein Wort zu einer Sprache/Grammatik gehört (akzeptieren ein Wort) …sind in zwei Typen aufzuteilen Deterministische Nicht-Deterministische Roter Faden durch die Theoretische Informatik von Julian Schuh
4.
5. … der Automat als letztes an einem Endzustand ankommt
9. Deterministisch/Nichtdeterministisch Roter Faden durch die Theoretische Informatik von Julian Schuh i Deterministische Automaten Übergänge eindeutig Nichtdeterministische Automaten Übergänge nicht eindeutig Nichtdeterministische Automaten können in deterministische umgewandelt werden Potenzmengenkonstruktion i H ! i i H !
10. Sprachen … … in der Informatik: formale Sprache … bestehen aus einer Menge an Wörtern Menge kann unendlich groß sein … werden aus einem Alphabet gebildet … werden durch Grammatiken beschrieben … können durch Automat akzeptiert werden … werden auch als reguläre Ausdrücke bezeichnet Eine Sprache ist die Menge aller Worte, für die gilt …. Roter Faden durch die Theoretische Informatik von Julian Schuh
11. Grammatiken … Definieren, welche Wörter zu einer Sprache gehören beschreiben eine Sprache Bestehen aus mehreren Bestandteilen Terminalsymbole Nichtterminalsymbole Produktionsregeln Startsymbol Roter Faden durch die Theoretische Informatik von Julian Schuh
12. Bestandteile einer Grammatik im Detail Terminalsymbole (vgl. Übergänge von Automaten) Symbole (Buchstaben), die in den Wörtern der beschriebenen formalen Sprache vorkommen Nichtterminalsymbole (vgl. Zustände von Automaten) Symbole, die nur „innerhalb“ der Grammatik verwendet werden, jedoch nicht in den Wörtern der Sprache vorkommen Produktionsregeln (vgl. Übergangsfunktion von Automaten) Regeln, die beschreiben, von welchem Nichtterminalsymbol man über welches Terminalsymbol zu welchem Nichtterminalsymbol kommt Startsymbol (vgl. Startzustand von Automaten) Nichtterminalsymbol, von dem aus gehend Wörter erzeugt werden können Roter Faden durch die Theoretische Informatik von Julian Schuh
13. Beispiel-Grammatik Terminalsymbole: h, a, l, o Nichtterminalsymbole: A, B, C Startsymbol: A Regeln: A hB B aC C lC C o Roter Faden durch die Theoretische Informatik von Julian Schuh l C D A B D a h o
14. Zusammenhang von Automat, Sprache und Grammatik Zu jedem Automat gibt es eine reguläre Grammatik, die die gleiche Sprache wie der Automat beschreibt Zu jeder formalen Grammatik gibt es einen Automat, der diese akzeptiert Jede formale Sprache kann durch eine reguläre Grammatik und einen Automat beschrieben werden Roter Faden durch die Theoretische Informatik von Julian Schuh Reguläre Sprache Automat (DEA) Reguläre Grammatik
15. Grammatik-Typen (Überblick) Die „Chomsky-Hierarchie“ beschreibt vier Typen von Grammatiken: Roter Faden durch die Theoretische Informatik von Julian Schuh
16. Grammatik-Typen (im Detail) Typ 3: Linke Seite: Genau ein Nichtterminalsymbol Rechte Seite: höchstens ein Terminalsymbol und ein Nichtterminalsymbol (letzteres nur, wenn Terminalsymbol vorhanden ist) Nichtterminalsymbol muss in allen Regeln einheitlich rechts oder link vom Terminalsymbol (auf der Rechten Seite) stehen Typ 2: Linke Seite: Genau ein Nichtterminalsymbol Rechte Seite: Beliebige Folge von Terminal und Nichtterminalsymbolen Roter Faden durch die Theoretische Informatik von Julian Schuh
17. Grammatik-Typen (im Detail) Typ 1: Linke Seite: beliebig viele Terminalsymbole und ein Nichtterminalsymbol Beliebige Kombination aus Terminal und Nichtterminalsymbolen Typ 0: „Keine Regeln“ Linke und Rechte Seite beliebige Kombination aus Terminal und Nichtterminalsymbolen Roter Faden durch die Theoretische Informatik von Julian Schuh
18. Anwendung Compiler Kompiliert Quellcode besteht aus einer Sprache Sprache kann durch Grammatik beschrieben und Automat akzeptiert werden Scanner Zerlegt den Quellcode in Bestandteile wie z.B. Keywords, Beschreibungen, etc. Parser Überprüft mit Hilfe einer Grammatik bzw. eines Automaten, ob die vom Scanner zerlegten Teile zusammenpassen. Falls nicht, entspricht der Quelltext nicht der Sprache und kann nicht kompiliert werden. Roter Faden durch die Theoretische Informatik von Julian Schuh