Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Theoretische Informatik Mensch – Maschine - Kommunikation Menschen benutzen Sprachen zur Kommunikation Computer verstehen Informationen in Binär-Code Compiler.

Ähnliche Präsentationen


Präsentation zum Thema: "Theoretische Informatik Mensch – Maschine - Kommunikation Menschen benutzen Sprachen zur Kommunikation Computer verstehen Informationen in Binär-Code Compiler."—  Präsentation transkript:

1 Theoretische Informatik Mensch – Maschine - Kommunikation Menschen benutzen Sprachen zur Kommunikation Computer verstehen Informationen in Binär-Code Compiler

2 Theoretische Informatik Theorie der formalen Sprachen Wir brauchen eine Sprache, die eindeutig in Maschinensprache (Binär-Code) übersetzt werden kann. Menschen benutzen Sprachen zur Kommunikation

3 Theoretische Informatik Automatentheorie Computer verstehen Informationen in Binär-Code Compiler Wir brauchen einen Compiler (Automat), der die Sprache in Maschinensprache (Binär-Code) übersetzt.

4 Theoretische Informatik  Automatentheorie  Theorie der formalen Sprachen bedeutende Teilbereiche:

5 Theoretische Informatik Der Hnud jagt die Katze. formale Sprachen Rechtschreibfehler Alle Wörter werden auf korrekte Rechtschreibung kontrolliert. Die Grundlage dafür bildet der Duden. 1. Lexikalische Analyse

6 Theoretische Informatik Der Hund die Katze jagt. formale Sprachen Grammatikfehler (SPO) Der Text wird auf Korrekte sprachliche Form kontrolliert. Die Grundlage dafür bildet die Grammatik. 2. syntaktische Analyse

7 Theoretische Informatik Öffne die Datei mit dem Editor. formale Sprachen Dieser Satz hat unterschiedliche Bedeutungen: 3. semantische Analyse Adverbial zu „öffnen“: Wie soll die Datei geöffnet werden ? Attribut zu „Datei“: Welche Datei soll geöffnet werden ?

8 Theoretische Informatik formale Sprachen Bei natürlicher Sprache sind einzelne Wörter oder Sätze erst im gesamten Textzusammenhang verständlich. In manchen Texten kann und muss man auch „zwischen den Zeilen“ lesen.

9 Theoretische Informatik formale Sprachen Deshalb : Natürliche Sprachen sind für die Programmierung nicht geeignet !

10 Theoretische Informatik formale Sprachen Definitionen : Ein Alphabet ist eine endliche, nichtleere Menge von Symbolen (Buchstaben). Alphabet

11 Theoretische Informatik formale Sprachen Definitionen : Sei V ein Alphabet und k  lN 0. Eine endliche Folge x 1 x 2...x k mit x i  V (i = 1,..., k) heißt Wort über V der Länge k. Wörter Die Länge eines Wortes x wird durch |x| dargestellt. Es gibt ein Wort mit der Länge 0, das leere Wort. Das leere Wort wird mit  bezeichnet.

12 Theoretische Informatik formale Sprachen Definitionen : Sei V ein Alphabet. V * bezeichnet die Menge aller Wörter über V. V + bezeichnet die Menge der nichtleeren Wörter über V. V + = V * \ {  } Sprache Jede beliebige Teilmenge von V * wird als Sprache oder formale Sprache bezeichnet.

13 Theoretische Informatik formale Sprachen Beispiele : V = { 0, 1 } Alphabet : Wörter :  Sprache : L = Menge aller Binärzahlen ohne führende Nullen = { 0, 1, 10, 11, 100, 101, 110, 111, 1000,... }

14 Theoretische Informatik formale Sprachen Beispiele : V = { 1 } Alphabet : Wörter :  Sprache : L = Menge der nat. Zahlen in unärer Darstellung = { 1, 11, 111, 1111,... }

15 Theoretische Informatik formale Sprachen Beispiele : V = { 0, 1, 2, 3,..., 9 } Alphabet : Wörter : Sprache : L = Menge der nat. Zahlen in Dezimalschreibweise = { 0, 1, 2, 3,... }

16 Theoretische Informatik formale Sprachen Beispiele : V = { a, b,..., z, ä, ö, ü, ß, A, B,..., Z, Ä, Ö, Ü } Alphabet : Wörter : UrlaubSchuleInformatik Sprache : L = Die Menge aller Einträge im Duden AbiturFerein

17 Theoretische Informatik formale Sprachen Beispiele : V = Menge aller Einträge im Duden Alphabet : Wörter : Der Ball ist rund Sprache : L = Die deutsche Sprache in grammatikalisch richtigen Sätzen Der auch ist gut

18 Theoretische Informatik formale Sprachen Beispiele : V = der ASCII-Zeichensatz Alphabet : Wörter : while Sprache : L = Alle Token (Schlüsselwörter, Begrenzer, Bezeichner, Literale und Operatoren) der Programmiersprache C++ (operand1<100 Scanner Lexikalische Analyse

19 Theoretische Informatik formale Sprachen Beispiele : V = Token der Programmiersprache C++ Alphabet : Wörter : void main() { cout << “Hello world !\n“; } Sprache : L = Alle syntaktisch richtigen C++ - Programme Parser Syntaktische Analyse

20 Theoretische Informatik Automaten- theorie Zigaretten-Automat 3,- € Rückgabe Zigaretten HB Ernte 23 Marlborough R6 Reval Steyvesant Eingaben: Interne Zustände: Ausgaben: 1 € R-Taste Wahl -Tasten HB Zigaretten HB 1 € Zigaretten + Wechselgeld 2 € 1 € Geldrückgabe Kein Geld eingegeben 1 € ist eingegeben 2 € sind eingegeben 3 € sind eingegeben 4 € sind eingegeben 2 € Beispiel :

21 Theoretische Informatik Automaten- theorie Zustandsveränderungen hängen ab von den Eingaben: Beispiel : Zustände: q 0 : Kein Geld eingegeben q 1 : 1 € ist eingegeben q 2 : 2 € sind eingegeben q 3 : 3 € sind eingegeben q 4 : 4 € sind eingegeben Zustandsüberführungstabelle: q0q1q2q3q4q0q1q2q3q4 1 € R-Taste Wahl -Tasten 2 € q 1 | -- q 2 | -- q 3 | -- q 4 | -- q 4 | 1 € q 3 | 1 € q 3 | 2 € q 4 | 2 € q 0 | -- q 1 | -- q 2 | -- R6 q 0 | 1 € HB q 0 | 1 € q 0 | 2 € 2 € q 0 | 2 € 1 € q 0 | 2 €

22 Theoretische Informatik Automaten- theorie Zustandsveränderungen hängen ab von den Eingaben: Beispiel : Zustände: q 0 : Kein Geld eingegeben q 1 : 1 € ist eingegeben q 2 : 2 € sind eingegeben q 3 : 3 € sind eingegeben q 4 : 4 € sind eingegeben Zustandsüberführungsgraph: q0q0 1,- | -- HB q1q1 q3q3 q4q4 q2q2 2,- | -- R-Taste | 1,- 2,- | -- 1,- | -- R-Taste | 3,- R-Taste | 4,- R-Taste | 2,- Wahl -Taste | Wahl -Taste | 1,- HB

23 Theoretische Informatik Automaten- theorie Ein Automat - hat interne Zustände, die wechseln können - bekommt Eingaben - liefert gegebenenfalls Ausgaben

24 Theoretische Informatik Automaten- theorie Wir brauchen Automaten, die Wörter bzw. Sprachen erkennen können. (Scanner, Parser) Solche Automaten liefern keine Ausgabe, sie halten einfach nach Eingabe eines Wortes an. Befindet sich der Automat nach vollständiger Eingabe eines Wortes in einem „Endzustand“, so wird das Wort „akzeptiert“.

25 Theoretische Informatik Automaten- theorie Zustandsüberführungsgraph eines endlichen Automaten Beispiel : q0q0 q3q |1 q2q2 q1q1 Zustände : Z={ q 0, q 1, q 2, q 3 } Eingabealphabet : V={ 0, 1 } Startzustand : q 0 Endzustände : F={ q 1, q 2 } akzeptierte Wörter : nicht akzeptierte Wörter : Sprache : L = Menge aller Binärzahlen ohne führende Nullen = { 0, 1, 10, 11, 100, 101, 110, 111, 1000,... }


Herunterladen ppt "Theoretische Informatik Mensch – Maschine - Kommunikation Menschen benutzen Sprachen zur Kommunikation Computer verstehen Informationen in Binär-Code Compiler."

Ähnliche Präsentationen


Google-Anzeigen