Mensch – Maschine - Kommunikation

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Information - syntaktisch
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
10. Grundlagen imperativer Programmiersprachen
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Lösung 7.1 Syntax und Semantik
Imperative Programmierung
Syntax der Aussagenlogik
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Universelle Turingmaschinen Eine universelle Turingmaschine.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Sprachen und Sprachkonzept
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Reguläre Ausdrücke Karin Haenelt
© Karin Haenelt 2005, Endliche Automaten: Alphabet, Zeichenreihe, Sprache, Endliche Automaten Grundlagen: Alphabet, Zeichenreihe, Sprache.
d.h. für alle  mit () = (s1,s2 ,...,sn,s) gilt: wenn
Beispiele für Ausdrucksalgebren
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
Informatik Klasse 7 Grundlagen.
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Programmierkurs JAVA zusätzliche, ergänzende Lehrveranstaltung
Christian Schindelhauer
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Von der Sprache zum Programm
Berechenbarkeit. Fragestellungen Können Computer alles ausrechnen? Kann man alles ausrechnen? Was kann man berechnen? Was nicht? Was heißt Berechenbarkeit?
Formale Sprachen Grundbegriffe für formale Sprachen
§10 Vektorraum. Definition und Beispiele
Datenformate: Text und Bild
? Was ist Informatik? Was ist Informatik? Alexander Lange
Formale Sprachen und Automaten
Grenzen der Regularität
1. Mengenlehre Grundbegriffe.
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Programmieren in C Einführung
Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Natürliche und künstliche Sprachen
POCKET TEACHER Mathematik Algebra
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Frühjahrs-/Sommersemester 2013
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Informatik Formale Sprachen 1.1 Aufbau von Sprachen
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele: KFG und Automaten Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln:
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Kapitel 4:Die Chomsky Hierarchie
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Sortigkeit oder Arität
Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel.
Information - syntaktisch
Sprachen und Programmiersprachen
 Präsentation transkript:

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

Theorie der formalen Sprachen 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

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

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

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

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

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

Theoretische Informatik formale Sprachen Theoretische Informatik 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.

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

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

Die Länge eines Wortes x wird durch |x| dargestellt. formale Sprachen Theoretische Informatik Definitionen : Wörter Sei V ein Alphabet und k  lN0. Eine endliche Folge x1 x2...xk mit xi  V (i = 1, ..., k) heißt Wort über V der Länge k. 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.

Sprache Theoretische Informatik Sei V ein Alphabet. formale Sprachen Theoretische Informatik Definitionen : Sprache 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* \ { } Jede beliebige Teilmenge von V* wird als Sprache oder formale Sprache bezeichnet.

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

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

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

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

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

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

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

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

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

Theoretische Informatik Automaten- theorie Theoretische Informatik Beispiel : Zustandsveränderungen hängen ab von den Eingaben: Zustände: q0 : Kein Geld eingegeben q1 : 1 € ist eingegeben q2 : 2 € sind eingegeben q3 : 3 € sind eingegeben q4 : 4 € sind eingegeben Zustandsüberführungsgraph: q0 1,- | -- HB q1 q3 q4 q2 2,- | -- R-Taste | 1,- R-Taste | 3,- R-Taste | 4,- R-Taste | 2,- Wahl -Taste | Wahl -Taste | 1,-

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

Theoretische Informatik Automaten- theorie Theoretische Informatik 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“.

Theoretische Informatik Automaten- theorie Theoretische Informatik Beispiel : Zustandsüberführungsgraph eines endlichen Automaten Zustände : Z={ q0, q1, q2, q3 } q0 q3 1 0|1 q2 q1 Startzustand : q0 Endzustände : F={ q1, q2 } Eingabealphabet : V={ 0, 1 } akzeptierte Wörter : 0 1 1101 10101011 nicht akzeptierte Wörter : 00 01 01101 0101011 Sprache : L = Menge aller Binärzahlen ohne führende Nullen = { 0, 1, 10, 11, 100, 101, 110, 111, 1000, ... }