2. Theoretische Informatik Die theoretische Informatik beschäftigt sich auch mit Modellen von endlichen Automaten. Ein endlicher Automat ist zum Beispiel der sprachgesteuerte Ticketautomat der Deutschen Bahn. Dabei kann man erkennen, dass es “Zustände” und “Übergänge” gibt, die man sehr übersichtlich in einem Modell festhalten kann. Ein weiteres Beispiel ist der Parkautomat.
4. Automaten Ein Automat A akzeptiert ein Wort W ∈ , wenn er in einem Endzustand führt. Die von A akzeptierte Sprache wird definiert als L (A) = {W ∈ | W wird von A akzeptiert} Automaten überprüfen ob ein Wort zu einer Sprache bzw. Grammatik gehört. Automaten bestehen aus Übergangsfunktionen, Zuständen, Übergängen und Start- bzw. Endzuständen
5. Automaten Konstruktion eines endlichen Automaten, der genau die Sprache akzeptiert, die eine vorgegebene Grammatik erzeugt: Die Menge der Terminalsymbole der Grammatik bildet das Alphabet des Automaten. Die Menge der Nichtterminalsymbole der Grammatik bildet die Zustandsmenge des Automaten. Das Startsymbol der Grammatik bildet den Startzustand des Automaten. Zu jeder Ableitungsregel A ® xBwird ein Übergang (A)𝑥(B) gebildet.
6. Automaten Es gibt zwei verschiedene Arten von Automaten Deterministisch Übergangsfunktionen eindeutig Nur eine Wahlmöglichkeit Nicht-Deterministisch Übergangsfunktionen nicht eindeutig Mehrere Wahlmöglichkeiten kann aber durch die Potenzmengenkonstruktion in einen deterministischen Automaten überführt werden Potenzmengenkonstruktion Zu jedem nichtdeterministischen endlichen Automaten (NEA) kann man einen deterministischen endlichen Automaten (DEA) konstruieren, der äquivalent dazu ist. Die Anzahl der Zustände im deterministischen Automat verhält sich jedoch exponentiell zur Menge der Zustände des nichtdeterministischen Automaten.
8. Ein Compiler wandelt vereinfacht gesagt eine Sprache in eine andere Sprache um. Ein Compiler wird z.B. auch im Java-Editor benutzt. Der Compiler wandelt also eine höhere Programmiersprache wie z.B. Java, C++ oder Delphi in die Maschinensprache um. Bei der Übersetzung arbeitet ein Compiler vergleichsweise wie ein endlicher Automat, deshalb ist der Compiler ein Beispiel dafür, wo Automaten in der Praxis eingesetzt werden. Ein Compiler durchläuft grob gesagt drei Bestandteile Lexer, Parser und Backend. Compiler Programm Quellcode Compiler
10. Sprachen Die Sprache der Automaten besteht, wie die menschliche Sprache aus Wörtern und Sätzen. Sprachen können endlich oder unendlich viele Wörter enthalten Die Menge von Wörtern die eine Sprache enthält, wird aus dem Alphabet gebildet Die Sprache der Automaten bestehen aus regulären Ausdrücken einfache Notation formaler Sprachen Sprachen können durch Grammatiken beschrieben werden Sprachen können durch Automaten akzeptiert werden
12. Grammatiken Jede Sprache ist nach bestimmten Regeln aufgebaut. Die zulässige Form der Wörter und Sätze einer Sprache nennt man Syntax, die Bedeutung wird durch die Semantik beschrieben. Zur Festlegung der Syntax einer Sprache verwendet man Grammatiken. Eine Grammatik ist eine Menge von Regeln, die bestimmen, welche Sätze zu einer Sprache gehören und welche nicht. Grammatik ist eine andere Möglichkeit, formale Sprachen zu beschreiben. Eine Grammatik G ist gegeben durch die folgenden vier Bestandteile G = (N, T, R, S) N ist eine (endliche) Menge von Nichtterminalsymbolen T ist eine (endliche) Menge von Terminalsymbolen R ist eine (endliche) Menge von Ableitungsregeln S ist ein Nichtterminalsymbol, das als Startsymbol ausgezeichnet ist
13. Grammatiken Eine Grammatik erzeugt durch endlichmalige Anwendung von Ableitungsregeln Wörter. Wörter bestehen aus endlich vielen Terminalsymbolen. Alle Wörter, die aus dem Startsymbol ableitbar sind, bezeichnet man als die von G erzeugte Sprache. Eine Grammatik heißt regulär, wenn alle Ableitungsregeln von der Form A ® xBoder A ® a sind. Ableitung eines Wortes aus einer Grammatik bedeutet, dass man mit dem Startsymbol beginnt und solange Ableitungsregeln anwendet, bis ein Wort entsteht, das nur noch aus Terminalsymbolen besteht. Anwenden einer Ableitungsregel heißt, dass in jedem Ableitungsschritt ein Nichtterminalsymbol durch die „rechte Seite seiner Ableitungsregel“ ersetzt wird.
14. Grammatiken Konstruktion einer Grammatik, die genau die Sprache erzeugt, die ein vorgegebener Automat akzeptiert: Das Alphabet des Automaten bildet die Menge der Terminalsymbole der Grammatik. Die Zustandsmenge des Automaten bildet die Menge der Nichtterminalsymbole der Grammatik. Der Startzustand des Automaten bildet das Startsymbol der Grammatik. Zu jedem Übergang (A)𝑥(B)wird eine Ableitungsregel A ® xBgebildet.
15. Notation für reguläre Ausdrücke [egh] eines der Zeichen „e“, „g“ oder „h“ [0-6] eine Ziffer von „0“ bis „6“ (Bindestriche sind Indikator für einen Bereich) [A-Za-z0-9] ein beliebiger lateinischer Buchstabe oder eine beliebige Ziffer [^a] ein beliebiges Zeichen außer „a“ („^“ am Anfang einer Zeichenklasse negiert selbige) ? Der voranstehende Ausdruck ist optional, er kann einmal vorkommen, muss es aber nicht, d. h. der Ausdruck kommt null- oder einmal vor. (Dies entspricht {0,1}) + Der voranstehende Ausdruck muss mindestens einmal vorkommen, darf aber auch mehrfach vorkommen. (Dies entspricht {1,}) * Der voranstehende Ausdruck darf beliebig oft (auch keinmal) vorkommen. (Dies entspricht {0,}) {n} Der voranstehende Ausdruck muss exakt n-mal vorkommen. {min,} Der voranstehende Ausdruck muss mindestens min-mal vorkommen. {,max} Der voranstehende Ausdruck darf maximal max-mal vorkommen. {min,max} Der voranstehende Ausdruck muss mindestens min-mal und darf maximal max-mal vorkommen.
17. Chomsky-Hierarchy Typ 3 ist die reguläre Grammatik. Bei der regulären Grammatik kann ein Nichtterminalsymbol nur zu einem Terminalsymbol oder einem Nichtterminalsymbol in Kombination mit einem Terminalsymbol werden. Außerdem kann das Terminalsymbol in der gesamten Grammatik nur vor oder nach dem Nichtterminalsymbol eingefügt werden. Es gibt keinen Bezug zu einem Nichtterminalsymbol, das auf das leere Wort führen könnte. Die reguläre Grammatik (Typ 3) wird von einem deterministischen-endlichen Automaten akzeptiert. Typ 2 ist die kontextfreie Grammatik, bei der ein Nichtterminalsymbol durch eine beliebige Kombination von Nichtterminalsymbolen und Terminalsymbolen ersetzt werden kann. Es gibt keinen Bezug zu einem Nichtterminalsymbol, das auf das leere Wort führen könnte. Die kontextfreie Grammatik wird von einem Kellerautomaten akzeptiert. Typ 1 ist die kontextsensitive Grammatik, bei der der Kontext, in der das zu überführende Nichtterminalsymbol ist zu beachten ist. Daher kann eine Kombination von Terminalsymbolen mit einem Nichtterminalsymbol zu einer beliebigen Kombination von Nichtterminalsymbolen und Terminalsymbolen werden. Es gibt keinen Bezug zu einem Nichtterminalsymbol, das auf das leere Wort führen könnte. Zu beachten ist dabei aber, dass die rechte Seite nie kürzer sein darf als die linke Seite, sonst besteht die Möglichkeit Symbole zu löschen. Die kontextsensitive Grammatik wird nur von der Turing Maschine akzeptiert. Die letzte Grammatik ist der Typ-0 und definiert damit die beliebige formale Grammatik. Alle Grammatiktypen bauen aufeinander auf, sodass Typ-0 alle anderen Grammatiken beinhaltet.
20. Zusammenhang Zu jedem Deterministischen endlichen Automaten (DEA) gibt es eine reguläre Grammatik, die die gleiche Sprache wie der DEA beschreibt. Zu jeder regulären Grammatik gibt es einen DEA, der die gleiche Sprache, wie die Grammatik akzeptiert Eine Sprache heißt regulär, wenn sie von einer regulären Grammatik erzeugt wird.