Sprachen und Programmiersprachen
|
|
- Curt Beckenbauer
- vor 7 Jahren
- Abrufe
Transkript
1 Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten Wörtern/Sätzen fest. Natürliche Sprachen sind in der Regel mehrdeutig: Öffne die Datei mit dem Editor Der Satzteil mit dem Editor kann hier als Attribut des Objekts Datei oder als adverbiale Bestimmung des Verbs Öffne verstanden werden. Formale Sprachen sind dadurch gekennzeichnet, dass Syntax und Semantik eindeutig sind (und damit einer automatische Verarbeitung zugänglich sind). Der Trick dabei ist in der Regel ein geringer Sprachumfang (wenig Syntaxregeln). 1 Übersicht über die Entwicklung von Programmiersprachen Zeit Objektorientierte Sprachen Bspe: C++, Smalltalk, Eiffel, Java Funktionale Sprachen Bspe: LISP, ML, Miranda Konstrukte: Funktionen Imperative / Prozedurale Sprachen Bspe: Fortran, Cobol, Algol, PL1, Ada, C Prozeduren, while, case, if Logische Sprachen Bsp: Prolog Konstrukte: Fakten, Regeln Assembler Bspe: RS600-Assembler Konstrukte: MV, ADD, GET) Vorgängerbeziehung Maschinensprache
2 Übersicht über die Entwicklung von Programmiersprachen 3 Programmiersprache Hinweis: formal meint hier syntaktisch formal. 4 2
3 Operationen auf Wörtern / Verketten 5 Klassen von unendlichen Sprachen Die Menge V* aller Wörter über einem Alphabet V ist immer unendlich, sie ist also unabhängig vom zugrundeliegenden Alphabet immer eine unendliche Sprache. Wir unterscheiden: abzählbare Sprachen überabzählbare Sprachen 6 3
4 Abzählbare Sprachen Die Abzählbarkeit einer Menge kommt dadurch zum Ausdruck, dass man vom ersten, zweiten, etc. Element sprechen kann. Es muss also möglich sein, die natürlichen so auf die Elemente der Menge zu verteilen, dass keines der Elemente ohne Nummer bleibt. Definition: (Abzählbarkeit) Eine Menge M ist abzählbar, falls es eine Funktion f: Nat M gibt, die surjektiv (d.h. alle Elemente von M kommen als Bildelement vor) oder falls M die leere Menge ist. 7 Abzählbare Sprachen Die Menge der rationalen Zahlen ist abzählbar (Beweis mit Cantorschem Diagonalverfahren) Beweis in der Vorlesungseinheit 2! Die Menge der reellen Zahlen ist nicht abzählbar. Beweis in der Vorlesung. Folgende Beweisschritte: Einschränkung von Nat auf das Intervall [0,1) Kodierung jeder reellen Zahl r durch eine Abbildung r: Nat\{0} {0,1,..., 9} Annahme einer surjektiven Abbildung von Nat auf [0,1) Visualisierung durch Tabelle in der allen reellen Zahlen des Intervalls stehen (angegeben durch ihre Nachkommastellen) Konstruktion der rellen Zahl diag aus dem Intervall Nachweis, dass diag nicht in der Tabelle steht 8 4
5 Abzählbare Sprachen Satz: Alle Sprachen über endlichen Alphabeten sind abzählbar. 1. Schritt des Beweises: Die Menge V* aller Wörter über einem Alphabet V ist abzählbar. 2. Schritt des Beweises: Jede Teilmenge M einer abzählbaren Menge M ist abzählbar. 1. Beweisschritt: Sei V={x 1,..., x n }. << sei eine Ordnungsrelation auf V, ohne Beschränkung der Allgemeinheit nehmen wir an: x 1 <<...<< x n. Wir ordnen V* gemäß der Länge der Wörter. Wörter gleicher Länge werden lexikographisch geordnet (also alphabetisch sortiert). Damit gibt es eine Reihenfolge aller Wörter. Und damit ist V* abzählbar. 9 Abzählbare Sprachen 2. Beweisschritt: Sei M abzählbar und f: Nat M die nach Definition existierende surjektive Funktion. Wir definieren f : Nat M durch: f (n) = f(n), falls f(n) M = ω mit ω M beliebig gewählt, falls f(n) M Da f surjektiv ist, kommen alle Elemente von M als Bildelemente von f vor. Diese sind aber auch Bildelemente von f (Fall f(n) M ). Und damit ist f surjektiv. Und damit ist f eine Abzählung. 10 5
6 Aufzählbare Sprachen Definition: (Überabzählbarkeit) Wenn eine Menge M so viele Element hat (so dicht ist), dass sie nicht mehr durchnummeriert werden kann (also wenn sie nicht abzählbar ist), dann heißt sie überabzählbar. Definition: (Aufzählbarkeit) Eine Menge M heißt aufzählbar, falls es eine surjektive Funktion f: Nat M gibt und einen Algorithmus, der es gestattet, für jedes n Nat den Funktionswert f(n) zu berechnen. Die leere Menge heißt auch aufzählbar. Die Menge {f(0), f(1),..., f(n)} heißt Aufzählung von M. Hinweis: Aufzählbarkeit fordert mehr als Abzählbarkeit, denn es muss zusätzlich den Algorithmus geben! 11 Aufzählbare Sprachen Satz: Jede endliche Menge ist aufzählbar. Beweis: Sei M={m 0,..., m k } eine endliche Menge. Ein Programm zur Aufzählung von M kann nach folgendem Prinzip realisiert werden: Abhängig vom Eingabeparameter n = 0,1,2,... wird mithilfe geeigneter Fallunterscheidungen für n<k das Ergebnis f(n)=m n zurückgegeben, für n k wird generell m k als Ergebnis gewählt. 12 6
7 Aufzählbare Sprachen Satz: Sei V ein Alphabet. Dann ist die Menge V* aller Wörter über V aufzählbar. (Hinweis: V ist nicht notwendigerweise endlich!) Beweis: Erzeuge ε, dann die Wörter der Länge 1, dann die Wörter der Länge 2, und so weiter, bei gleicher Länge in lexikographischer Reihenfolge. Für eine beliebige natürliche Zahl n ergibt sich f(n) aus dem n-ten Schritt dieses Verfahrens. Betrachtung: Jede aufzählbare Sprache ist offensichtlich auch abzählbar. Umgekehrt gilt das nicht! 13 Entscheidbarkeit Mit einer Aufzählung für eine Sprache kann man für jedes Wort der Sprache nach endlich vielen Schritten nachweisen, dass das Wort zu der Sprache gehört, denn bei der Aufzählung wird es ja nach endlich vielen Schritten erzeugt. Hat man aber ein Wort gegeben, das nicht Element der Sprache ist, so kann man dies, falls die Sprache unendlich viele Wörter enthält, mit einer Aufzählung der Sprache nicht nachweisen. Denn dann läuft das Verfahren unendlich lang. Und wir wissen nach endlicher Zeit nicht, ob das Wort vielleicht später doch noch erzeugt wird. Beispiel: Compiler soll entscheiden, ob eine Eingabe ein gültiges Programm ist. Dieses Problem lässt sich durch Aufzählung aller gültigen Programme nicht sinnvoll lösen! Da uns solche Probleme in der Informatik öfter begegnen, sind die entscheidbaren Sprachen besonders interessant! 14 7
8 Entscheidbarkeit Definition: (Entscheidbarkeit) Gegeben sei ein Alphabet V. Eine Sprache L V heißt entscheidbar, falls es einen abbrechenden Algorithmus, Entscheidungsverfahren genannt, gibt, der für jedes w V feststellt, ob w L oder w L. 15 Beispiel zur Entscheidbarkeit Alphabet: Sprache: V = {a} L V* mit L = {a 2n n Nat} Entscheidungsverfahren: Sei w V* beliebig gegeben. Streiche nach und nach immer wieder aa aus Wort w raus. Bleibt kein a übrig, gilt w L, sonst nicht. Bemerkungen: Offensichtlich ist jede endliche Sprache entscheidbar. Denn jedes zu prüfende Wort lässt sich mit allen Wörtern der Sprache vergleichen. 16 8
9 Entscheidbarkeit Satz: Jede entscheidbare Sprache ist aufzählbar. Beweis: Sei V ein Alphabet und L V* entscheidbar. Zähle V* auf und entscheide mit dem Entscheidungsverfahren für jedes bei der Aufzählung erzeugte w V*, ob w L oder w L. Übergeht man alle w L, so erhält man eine Aufzählung für L. Hinweis: Aus der Aufzählbarkeit einer Sprache folgt nicht die Entscheidbarkeit. Die Schwierigkeit liegt darin, für diejenigen Wörter eine Entscheidung zu treffen, die nicht in der Sprache enthalten sind. Man kann sich durch eine Aufzählung so viele Wörter anschauen wie man möchte, sie werden nicht dabei sein. Sie könnten aber prinzipiell ja später noch auftauchen. 17 Entscheidbarkeit Eine aufzählbare, aber nicht entscheidbare Sprache: Wenn man Computerprogramme und Eingaben für Computerprogramme als Wörter über einem Alphabet wie ASCII auffasst, so ist die Sprache L ASCII*, mit L = {xy x ist ein Programm, y ist eine Eingabe, und x stoppt bei der Eingabe y nach endlich vielen Schritten} zwar aufzählbar, aber nicht entscheidbar. Dies folgt unmittelbar aus dem schon diskutierten Halteproblem. 18 9
10 Zusammenfassendes Mengendiagramm 19 Wieviele Probleme kann der Computer lösen? ASCII ist ein endliches Alphabet. Also, lassen sich nur abzählbar viele Programme formulieren. Eine einfache überabzählbare Menge von Problemen besteht darin, für jede reelle Zahl r die folgende Funktion f r : reelle Zahlen -> {0,1} zu berechnen: f r (x) = 1, falls x=r f r (x) = 0, sonst Folglich ist nur eine verschwindend geringe Zahl von Funktionen berechenbar (ungefähr so wenige wie rationale Zahlen im Verhältnis zu reellen Zahlen existieren)
11 Grammatiken Definition: (Grammatik) Eine Grammatik ist ein Quadrupel G = (V N, V T, P,S) mit V N, V T sind endliche, nichtleere Mengen mit V N V T =. V N ist die Menge der nichtterminalen Symbole. V T ist die Menge der terminalen Symbole P ist eine endliche Menge von Regeln der Form α β mit α (V N V T ) +, β (V N V T ). Die Elemente von P werden Produktionen, Produktuionsregeln oder Grammatikregeln genannt. S V N ist das Startsymbol. 21 Grammatiken Terminalsymbole beschreiben Symbole, die in den Sätzen der Sprache vorkommen. Nicht-Terminalsymbole kommen nicht in den Sätzen der Sprache vor. Sie werden gebraucht, um die Anwendung der Ableitungsregeln zu koordinieren. Das Startsymbol ist ein ausgezeichnete Nicht- Terminalsymbol. Es legt fest, mit welcher Ableitungsregel begonnen wird, um zu einem syntaktisch korrekten Satz der Sprache zu kommen. Die Ableitungsregeln legen fest, wie eine Sequenz von Nicht-Terminal- und Terminalsymbolen durch eine Folge anderer Terminalsymbole und Nicht-Terminalsymbole ersetzt werden kann
12 Produktionen Beispiel einer Produktion: einfacher-deutscher-satz = Subjekt Prädikat Objekt [adverbiale-bestimmung] Subjekt = Nomen Personalpronomen Personalpronomen = Ich Du... {} steht für 0 bis n-fache Wiederholung [] steht für Optionalität (0 oder einfaches Vorkommen) trennt Varianten voneinander fett: Terminalsymbole, kursiv: Nicht-Terminalsymbole 23 Ableitungen Definition: (Ableitung) 24 12
13 Erzeugte Sprache Definition: (Erzeugte Sprache) Die von der Grammatik G = (V N, V T, P,S) erzeugte Sprache * L(G) = {x V T* S x} Die Wörter der von der Grammatik erzeugten Sprache werden auch als die grammatikalisch korrekten Wörter bezeichnet. Definition: (Äquivalenz von Grammatiken) Zwei Grammatiken G1 und G2 heißen äquivalent, falls gilt: L(G1) = L(G2) 25 13
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrAlphabet, formale Sprache
n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 29.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Motivation 2. Terminologie 3. Endliche Automaten und reguläre
MehrWas bisher geschah: Formale Sprachen
Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen Darstellung unendlicher Sprachen durch reguläre Ausdrücke (Syntax, Semantik, Äquivalenz)
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
MehrAutomatentheorie und formale Sprachen
Automatentheorie und formale Sprachen Zusammenfassung Kathrin Hoffmann 27. Juni 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 27.6. 2012 329 Kontextsensitive Grammatiken und Sprachen
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
MehrDank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.
Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax
MehrDefinition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An
Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,
MehrFormale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER
Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.
Mehr2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
MehrWas bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen
Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien
MehrKapitel IV Formale Sprachen und Grammatiken
Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist
MehrFormale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung
Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
MehrLemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -
n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l
MehrKapitel 2. Methoden zur Beschreibung von Syntax
1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von
Mehr2.1 Allgemeines. Was ist eine Sprache? Beispiele:
Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax
MehrTheoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK
Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine
MehrUnentscheidbare Probleme: Diagonalisierung
Unentscheidbare Probleme: Diagonalisierung Prof Dr Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Oktober 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Mehr2.5 Halteproblem und Unentscheidbarkeit
38 25 Halteproblem und Unentscheidbarkeit Der Berechenbarkeitsbegriff ist auf Funktionen zugeschnitten Wir wollen nun einen entsprechenden Begriff für Mengen einführen Definition 255 Eine Menge A Σ heißt
MehrAutomaten und formale Sprachen Klausurvorbereitung
Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen
Mehr7. Syntax: Grammatiken, EBNF
7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik
MehrTheoretische Informatik I
(702765) Skript zur Vorlesung am 30.6.2000 Aus der vorherigen Vorlesung: Theoretische Informatik I Satz W: Sei X ein Alphabet. Zu jeder regulären Sprache R X * gibt es ein n N, so daß für alle Wörter z
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal
MehrFolgen. Definition. Sei M eine beliebige Menge. Eine Abbildung a : N M oder a : N 0 M heißt eine Folge.
Folgen Eine Folge stellt man sich am einfachsten als eine Aneinanderreihung von Zahlen (oder Elementen irgendeiner anderen Menge) vor, die immer weiter geht Etwa,,,,,, oder,,, 8,,,, oder 0,,,,,,,, In vielen
MehrEin Induktionsbeweis über Schuhgrößen
Was ist FALSCH an folgendem Beweis? Behauptung: Ein Induktionsbeweis über Schuhgrößen Alle Teilnehmer dieser Vorlesung haben gleiche Schuhgröße. Wir formalisieren diese Aussage, um einen Induktionsbeweis
MehrDas Halteproblem für Turingmaschinen
Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.
MehrMathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18
Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18 9. November 2017 1/34 Beispiel 3.6 Wir können die rationalen Zahlen wie folgt konstruieren:
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
MehrClevere Algorithmen programmieren
ClevAlg 2017 Theoretische Informatik Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 06. Dezember 2017 Die zentralen Fragen sind... Was kann man mit einem Computer nicht machen?
MehrKontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
MehrTheoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK
Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse
MehrUnentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem
Unentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 25. Oktober 2010 Berthold Vöcking, Informatik
MehrVorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen
Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Wörter Wort Sei Σ ein Alphabet, d.h., eine endliche Menge von Zeichen. Dann bezeichnet
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische
Mehr2.1 Grundlagen: Kontextfreie Grammatiken
2.1 Grundlagen: Kontextfreie Grammatiken Programme einer Programmiersprache können unbeschränkt viele Tokens enthalten, aber nur endlich viele Token-Klassen :-) Als endliches Terminal-Alphabet T wählen
MehrWas bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen
Was bisher geschah Alphabet, Wort, Sprache Operationen auf Wörtern: Spiegelung R, Verkettung Palindrome Relationen zwischen Wörtern: Präfix, Infix, Postfix Wortersetzungssystem S: Regeln (l r), Ersetzungsschritt
MehrKapitel 1. Grundlagen Mengen
Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig
MehrAnalysis für Informatiker
Analysis für Informatiker Wintersemester 2017/2018 Carsten.Schneider@risc.jku.at 1 Bemerkung: Dies ist kein Skript, welches den gesamten Inhalt der Vorlesung abdeckt. Es soll den Studierenden aber während
MehrUnentscheidbarkeit. 1. Wann sind Sprachen unentscheidbar? 1, A 0, A } = {
Unentscheidbarkeit 1. Wann sind Sprachen unentscheidbar? Eine Menge A heisst entscheidbar, falls die charakteristische Funktion von A, nämlich A : {0,1}, berechenbar ist, d.h. gilt: A = { 1, A 0, A } Eine
MehrTheoretische Informatik für Wirtschaftsinformatik und Lehramt
Theoretische Informatik für Wirtschaftsinformatik und Lehramt Entscheidungsprobleme Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg
Mehr2 Mengen, Abbildungen und Relationen
Vorlesung WS 08 09 Analysis 1 Dr. Siegfried Echterhoff 2 Mengen, Abbildungen und Relationen Definition 2.1 (Mengen von Cantor, 1845 1918) Eine Menge M ist eine Zusammenfassung von wohlbestimmten und wohl
MehrSprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri
Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS
MehrDaten und Algorithmen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 3 Daten und Algorithmen Skript zur Vorlesung Einführung in die Programmierung g im Wintersemester 2012/13 Ludwig-Maximilians-Universität
MehrKapitel 2: Methoden zur Beschreibung von Syntax
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 2: Methoden zur Beschreibung von Syntax Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
MehrTheoretische Informatik I
Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrAlgorithmen und Formale Sprachen
Algorithmen und Formale Sprachen Algorithmen und formale Sprachen Formale Sprachen und Algorithmen Formale Sprachen und formale Algorithmen (formale (Sprachen und Algorithmen)) ((formale Sprachen) und
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 17.November 2011 INSTITUT FÜR THEORETISCHE 0 KIT 17.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrInformatik III - WS07/08
Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition
MehrObjektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum
MehrGrammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht
Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die
MehrKapitel 1. Grundlagen
Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig
MehrÜbersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Übersicht: Inhalt und Ziele Zwei Methoden zur Beschreibung (Definition) der Syntax von Programmiersprachen Backus-Naur-Form
MehrÜbungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im
MehrEinführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.11.2005 5. Vorlesung 1 Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrGrundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:
MehrKapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
MehrÜbersichtsblatt Hertrampf/Bahrdt. 1 Mathematische Aussagen. Theoretische Informatik I WS2018/19
Theoretische Informatik I WS2018/19 Übersichtsblatt Hertrampf/Bahrdt Institut für Formale Methoden der Informatik Theoretische Informatik Universität Stuttgart 1 Mathematische Aussagen Um mathematische
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 13.01.2011 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 5: Reguläre Ausdrücke und Grammatiken schulz@eprover.org Software Systems Engineering Reguläre Sprachen Bisher: Charakterisierung von Sprachen über Automaten
MehrUnentscheidbarkeit. Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen
Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Henning Kerstan & Jan Stückrath Worum geht
MehrKlammersprache Definiere
Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere
MehrBerechenbarkeit und Komplexität
Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Einschub: Kellerautomaten
MehrUmformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.
Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe
MehrGrammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)
Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /
MehrAbbildungen. Kapitel Definition: (Abbildung) 5.2 Beispiel: 5.3 Wichtige Begriffe
Kapitel 5 Abbildungen 5.1 Definition: (Abbildung) Eine Abbildung zwischen zwei Mengen M und N ist eine Vorschrift f : M N, die jedem Element x M ein Element f(x) N zuordnet. Schreibweise: x f(x) 5. Beispiel:
MehrSprachen sind durch folgenden Aufbau gekennzeichnet:
BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder
MehrAllgemeines Halteproblem Hilberts 10. Problem
Allgemeines Halteproblem Hilberts 10. Problem Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
MehrKapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2017 20.04.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organisatorisches Literatur Motivation und Inhalt Kurzer
MehrGrundbegriffe. Grammatiken
Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte
MehrAbschnitt 4: Daten und Algorithmen
Abschnitt 4: Daten und Algorithmen 4. Daten und Algorithmen 4.1 4.2 Syntaxdefinitionen 4.3 Eigenschaften von Algorithmen 4.4 Paradigmen der Algorithmenentwicklung Peer Kröger (LMU München) Einführung in
Mehr