Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
|
|
- Karoline Baumgartner
- vor 6 Jahren
- Abrufe
Transkript
1 Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 2/46 Wdh.: Berechenbarkeitslandschaft Wiederholung PCP rekursiv aufzählbare Probleme H Hɛ D MPCP Dioph Entscheidbare Probleme Probleme mit rekursiv aufzählbarem Komplement D H ɛ H Unentscheidbare Probleme mit unentscheidbarem Komplement H tot BuK/WS 2017 VL-11: LOOP und WHILE Programme I 3/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 4/46
2 Wdh.: Turing-mächtige Rechnermodelle Wdh.: Turing-Mächtigkeit Definition Ein Rechnermodell wird als Turing-mächtig bezeichnet, wenn jede Funktion, die durch eine TM berechnet werden kann, auch durch dieses Rechnermodell berechnet werden kann. Da die Registermaschine (RAM) die Turingmaschine simulieren kann, ist sie Turing-mächtig Auch die Mini-RAM (eine viel schwächere Variante der RAM mit stark eingeschränktem Befehlssatz) ist Turing-mächtig Reines HTML (ohne JavaScript; ohne Browser) ist nicht Turing-mächtig Tabellenkalkulationen (ohne Schleifen) sind nicht Turing-mächtig Der Lambda Calculus von Alonzo Church ist äquivalent zur TM, und daher Turing-mächtig Die µ-rekursiven Funktionen von Kurt Gödel sind äquivalent zur TM, und daher Turing-mächtig Alle gängigen höheren Programmiersprachen sind Turing-mächtig: Algol, Pascal, C, FORTRAN, COBOL, Java, Smalltalk, Ada, C++, Python, LISP, Haskell, PROLOG, etc. PostScript, Tex, Latex sind Turing-mächtig Sogar PowerPoint ist Turing-mächtig (wegen seiner Animated Features) BuK/WS 2017 VL-11: LOOP und WHILE Programme I 5/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 6/46 Vorlesung VL-11 LOOP und WHILE Programme I Die Programmiersprache LOOP Die Programmiersprache LOOP Die Programmiersprache WHILE WHILE versus LOOP WHILE ist Turing-mächtig BuK/WS 2017 VL-11: LOOP und WHILE Programme I 7/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 8/46
3 Programmiersprache LOOP LOOP / Syntax (1) Wir betrachten eine einfache Programmiersprache namens LOOP, deren Programme aus den folgenden syntaktischen Komponenten aufgebaut sind: Variablen: x 1 x 2 x 3... Konstanten: Symbole: Schlüsselwörter: ; := + LOOP DO ENDLOOP Die Syntax von LOOP ist induktiv definiert. Induktive Definition / Induktionsanfang: Zuweisungen Für jede Konstante c N sind die Zuweisungen x i := x j + c und x i := x j c LOOP-Programme. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 9/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 10/46 LOOP / Syntax (2) LOOP / Semantik (1): Zuweisungen Induktive Definition / Induktionsschritte: Hintereinanderausführung Falls P 1 und P 2 LOOP-Programme sind, so ist auch Die Eingabe ist in den Variablen x 1,..., x n enthalten. Alle anderen Variablen werden mit 0 initialisiert. Das Resultat eines LOOP-Programms ist die Zahl, die sich am Ende der Abbarbeitung in der Variablen x 1 ergibt. P 1 ; P 2 ein LOOP-Programm. LOOP-Konstrukt Falls P ein LOOP-Programm ist, so ist auch LOOP x i DO P ENDLOOP ein LOOP-Programm. LOOP-Programme der Form x i := x j + c sind Zuweisungen des Wertes x j + c an die Variable x i. LOOP-Programme der Form x i := x j c sind Zuweisungen des Wertes x j c an die Variable x i. Anmerkung: Die Variablen dürfen nur natürliche Werte annehmen. Daher verwenden wir die modifizierte Subtraktion: Falls x j < c gilt, so wird das Resultat x i auf 0 gesetzt. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 11/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 12/46
4 LOOP / Semantik (2): Hintereinanderausführung LOOP / Semantik (3): LOOP-Konstrukte Die Eingabe ist in den Variablen x 1,..., x n enthalten. Alle anderen Variablen werden mit 0 initialisiert. Das Resultat eines LOOP-Programms ist die Zahl, die sich am Ende der Abbarbeitung in der Variablen x 1 ergibt. Die Eingabe ist in den Variablen x 1,..., x n enthalten. Alle anderen Variablen werden mit 0 initialisiert. Das Resultat eines LOOP-Programms ist die Zahl, die sich am Ende der Abbarbeitung in der Variablen x 1 ergibt. In einem LOOP-Programm P 1 ; P 2 wird zunächst P 1 und danach P 2 ausgeführt. Das Programm LOOP x i DO P ENDLOOP hat folgende Bedeutung: P wird x i mal hintereinander ausgeführt. Anmerkung: Nur der Wert von x i zu Beginn der Schleife ist relevant. Ändert sich der Variablenwert von x i im Inneren von P, so hat dies keinen Einfluss auf die Anzahl der Wiederholungen. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 13/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 14/46 LOOP / Semantik (4) Ein LOOP-Programm P mit k Variablen berechnet eine k-stellige Funktion der Form [P]: N k N k. Ist P die Zuweisung x i := x j + c, so ist [P](r 1,..., r k ) = (r 1,..., r i 1, r j + c, r i+1,..., r k ). Ist P die Zuweisung x i := x j c, ist [P](r 1,..., r k ) = (r 1,..., r i 1, r j c, r i+1,..., r k ) falls r j c, und andernfalls [P](r 1,..., r k ) = (r 1,..., r i 1, 0, r i+1,..., r k ). LOOP: Beispiele und Macros Ist P = P 1 ; P 2 eine Hintereinanderausführung, so ist [P](r 1,..., r k ) = [P 2 ]([P 1 ](r 1,..., r k )). Ist P = LOOP x i DO Q ENDLOOP ein LOOP-Konstrukt, so gilt [P](r 1,..., r k ) = [Q] r i (r 1,..., r k ). BuK/WS 2017 VL-11: LOOP und WHILE Programme I 15/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 16/46
5 LOOP-Programme / Beispiele (1) LOOP-Programme / Beispiele (2) Das folgende Programm simuliert die Zuweisung x j := x i. Beispiel A x j := x i + 0 Beispiel C x 1 := x 2 ; LOOP x 3 DO x 1 := x ENDLOOP Dieses Programm berechnet die Addition x 1 := x 2 + x 3 Es sei x zero eine Dummy-Variable, die mit 0 initialisiert wird und deren Wert nie verändert wird. Das folgende Programm simuliert dann die Zuweisung x j := c eines konstanten Wertes an eine Variable. Beispiel B Beispiel D x 1 := 0; LOOP x 3 DO x 1 := x 1 + x 2 ENDLOOP x j := x zero + c Dieses Programm berechnet die Multiplikation x 1 := x 2 x 3 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 17/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 18/46 LOOP-Programme / Beispiele (3) Übung Skizzieren Sie LOOP-Programme, die die folgenden Operationen berechnen: Die modifizierte Subtraktion x 1 := x 2 x 3 (die für x 2 < x 3 den Wert 0 ergibt) Die Division ohne Rest x 1 := x 2 DIV x 3 Die Modulooperation x 1 := x 2 MOD x 3 LOOP-Programme / Beispiele (4) Es seien P 1 und P 2 LOOP-Programme, in denen die drei Variablen x 1, x 2 und x 3 nicht vorkommen. Beispiel E x 2 := 1; x 3 := 0; LOOP x 1 DO x 2 := 0; x 3 := 1 ENDLOOP; LOOP x 2 DO P 1 ENDLOOP; LOOP x 3 DO P 2 ENDLOOP Dieses Programm entspricht dem Konstrukt: IF x 1 = 0 THEN P 1 ELSE P 2 ENDIF Übung Skizzieren Sie ein LOOP-Programm, das IF x 1 = c THEN P 1 ELSE P 2 ENDIF simuliert. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 19/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 20/46
6 Programmiersprache WHILE Die Programme der Programmiersprache WHILE sind aus den folgenden syntaktischen Komponenten aufgebaut: Die Programmiersprache WHILE Variablen: x 1 x 2 x 3... Konstanten: Symbole: ; := + Schlüsselwörter: WHILE DO ENDWHILE BuK/WS 2017 VL-11: LOOP und WHILE Programme I 21/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 22/46 WHILE / Syntax WHILE / Semantik Die Eingabe ist in den Variablen x 1,..., x n enthalten. Die Syntax von WHILE ist induktiv definiert, und stimmt weitgehend mit der Syntax von LOOP überein. Zuweisungen x i := x j + c und x i := x j c und Hintereinanderausführung P 1 ; P 2 sind genau wie in LOOP definiert. Der Hauptunterschied zu LOOP besteht im Schleifen-Konstrukt. WHILE-Konstrukt Falls P ein WHILE-Programm ist und x i eine Variable, so ist auch WHILE x i 0 DO P ENDWHILE ein WHILE-Programm. Alle anderen Variablen werden mit 0 initialisiert. Das Resultat eines WHILE-Programms ist die Zahl, die sich am Ende der Abbarbeitung in der Variablen x 1 ergibt. Das Programm WHILE x i 0 DO P ENDWHILE hat folgende Bedeutung: P wird solange ausgeführt, bis x i den Wert 0 erreicht. Ein WHILE-Programm P mit k Variablen berechnet eine k-stellige Funktion der Form [P]: N k N k. Ist P = WHILE x i 0 DO Q ENDWHILE ein WHILE-Konstrukt, so ist [P](r 1,..., r k ) = [Q] l (r 1,..., r k ) für die kleinste Zahl l, für die die i-te Komponente von [Q] l (r 1,..., r k ) gleich 0 ist. Falls solch ein l nicht existiert, so ist [P](r 1,..., r k ) undefiniert. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 23/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 24/46
7 WHILE versus LOOP (1) Beobachtung Die LOOP-Schleife WHILE versus LOOP LOOP x i DO P ENDLOOP kann durch die folgende WHILE-Schleife simuliert werden: y := x i WHILE y 0 DO y := y 1; P ENDWHILE Ergo: Jede LOOP-berechenbare Funktion f : N k N ist auch WHILE-berechenbar. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 25/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 26/46 WHILE versus LOOP (2) WHILE versus LOOP (3) Es gibt WHILE-Programme, die nicht terminieren: Beispiel x 1 := 1; WHILE x 1 0 DO x 1 := x ENDWHILE LOOP-Programme terminieren immer: Satz Jedes LOOP-Programm hält auf jeder möglichen Eingabe nach endlich vielen Schritten an. Beweis: Durch Induktion über den Syntax-Baum. Hintereinanderausführung P = P 1; P 2 LOOP-Konstrukt P = LOOP x i DO Q ENDLOOP Wir werden zeigen: Satz (wird heute bewiesen) Die Programmiersprache WHILE ist Turing-mächtig. (In anderen Worten: Jede berechenbare Funktion kann von einem WHILE-Programm berechnet werden.) Satz (wird in der nächsten Vorlesung bewiesen) Die Programmiersprache LOOP ist nicht Turing-mächtig. (In anderen Worten: Es existiert eine berechenbare Funktion, die von keinem LOOP-Programm berechnet werden kann.) BuK/WS 2017 VL-11: LOOP und WHILE Programme I 27/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 28/46
8 Mächtigkeit von WHILE Mächtigkeit von WHILE Satz Die Programmiersprache WHILE ist Turing-mächtig. Beweis: Wir zeigen, dass jede Funktion, die durch eine TM berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 29/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 30/46 Simulation von TM durch WHILE (1) Wir betrachten eine TM M. Zustandsmenge Q = {q 0,..., q t } Simulierte Turingmaschine M: B B B B δ 1 2 B Der Anfangszustand ist q 1, und der Endzustand ist q 0 TM im Zustand q i WHILE Variable Zustand = i q 1 q 2 q 3 (q 2, 1, R) q 3 Bandalphabet Γ = {1, 2, B} WHILE kodiert Buchstaben 1 durch Dezimalziffer 1, Buchstaben 2 durch Dezimalziffer 2, und Buchstaben B durch Dezimalziffer 0. Alle WHILE Variablen enthalten im Folgenden Dezimalzahlen Entsprechende Konfiguration: 1122 q Drei entsprechende Variablen im WHILE-Programm: Band-vor-Kopf 1122 Variable BandVorKopf Zustand 3 Variable Zustand pfok-ba-danb Variable BandAbKopf BuK/WS 2017 VL-11: LOOP und WHILE Programme I 31/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 32/46
9 Simulation von TM durch WHILE (2) Simulation von TM durch WHILE (3A) Jeder Rechenschritt von M wird durch einige WHILE-Befehle simuliert. Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Beginn der Rechenschritt Simulation Aktueller Zustand steht in der Variablen Zustand Das Symbol unterm Kopf erhalten wir durch den Befehl UntermKopf := BandAbKopf MOD 10 Der Zustand wird auf neuen Zustand q i gesetzt, indem man die Zuweisung Zustand := i ausführt BuK/WS 2017 VL-11: LOOP und WHILE Programme I 33/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 34/46 Simulation von TM durch WHILE (3B) Simulation von TM durch WHILE (3C-links) Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Das Symbol unterm Kopf wird auf σ {0, 1, 2} gesetzt, indem man das folgende Programmstück ausführt: BandAbKopf := BandAbKopf DIV 10; BandAbKopf := 10 BandAbKopf + σ; UntermKopf := σ; Der Kopf wird einen Schritt nach links (L) bewegt, indem man: UntermKopf := BandVorKopf MOD 10; BandVorKopf := BandVorKopf DIV 10; BandAbKopf := 10 BandAbKopf + UntermKopf; BuK/WS 2017 VL-11: LOOP und WHILE Programme I 35/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 36/46
10 Simulation von TM durch WHILE (3C-rechts) Simulation von TM durch WHILE (3C-nichts) Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Jeder Rechenschritt der TM besteht (gemäss Überführungsfunktion) aus (A) Update von Zustand (B) Update von Symbol unterm Kopf (C) Bewegung des Kopfes L,R,N Der Kopf wird einen Schritt nach rechts (R) bewegt, indem man: UntermKopf := BandAbKopf MOD 10; BandVorKopf := 10 BandVorKopf + UntermKopf; BandAbKopf := BandAbKopf DIV 10; UntermKopf := BandAbKopf MOD 10; Der Kopf wird nicht bewegt (N), indem man gar nichts macht und alle Variablen unverändert lässt: BuK/WS 2017 VL-11: LOOP und WHILE Programme I 37/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 38/46 Simulation von TM durch WHILE (4) Ausblick: Landschaft um LOOP, WHILE, TM, RAM Schlussendlich die Grobstruktur der Simulation: Initialisierung Zustand := 1; BandVorKopf := 0; BandAbKopf := Gespiegeltes Eingabewort als Dezimalzahl; UntermKopf := BandAbKopf MOD 10; Die äussere Schleife WHILE Zustand 0 DO IF Zustand=1 AND UntermKopf=0 THEN Schritt ENDIF; IF Zustand=1 AND UntermKopf=1 THEN Schritt ENDIF; IF Zustand=1 AND UntermKopf=2 THEN Schritt ENDIF; IF Zustand=2 AND UntermKopf=0 THEN Schritt ENDIF;. IF Zustand=t AND UntermKopf=2 THEN Schritt ENDIF; ENDWHILE A(m, n) Ackermann Funktion TM = RAM = WHILE = entscheidbar LOOP = primitiv rekursiv + a b a ( ) b n k BuK/WS 2017 VL-11: LOOP und WHILE Programme I 39/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 40/46
11 Ackermann Funktion: Definition Die Ackermann Funktion Definition Die Ackermann Funktion A : N 2 N ist folgendermassen definiert: A(0, n) = n + 1 für n 0 A(m + 1, 0) = A(m, 1) für m 0 A(m + 1, n + 1) = A(m, A(m + 1, n)) für m, n 0 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 41/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 42/46 Ackermann Funktion: Beispiele (1) Ackermann Funktion: Beispiele (2) A(0, n) = n + 1 für n 0 A(m + 1, 0) = A(m, 1) für m 0 A(m + 1, n + 1) = A(m, A(m + 1, n)) für m, n 0 A(0, n) = n + 1 für n 0 A(m + 1, 0) = A(m, 1) für m 0 A(m + 1, n + 1) = A(m, A(m + 1, n)) für m, n 0 Ein paar Beispiele für m = 1: A(1, 0) = A(0, 1) = 2 A(1, 1) = A(0, A(1, 0)) = A(1, 0) + 1 = 3 A(1, 2) = A(0, A(1, 1)) = A(1, 1) + 1 = 4 A(1, 3) = A(0, A(1, 2)) = A(1, 2) + 1 = 5 Beobachtung A(1, n) = n + 2 Ein paar Beispiele für m = 2: A(2, 0) = A(1, 1) = 3 A(2, 1) = A(1, A(2, 0)) = A(2, 0) + 2 = 5 A(2, 2) = A(1, A(2, 1)) = A(2, 1) + 2 = 7 Beobachtung A(2, n) = 2n + 3 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 43/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 44/46
12 Ackermann Funktion: Beispiele (3) Ackermann Funktion: Beispiele (4) A(0, n) = n + 1 für n 0 A(m + 1, 0) = A(m, 1) für m 0 A(m + 1, n + 1) = A(m, A(m + 1, n)) für m, n 0 Und ein paar Beispiele für m = 3: A(3, 0) = A(2, 1) = 5 A(3, 1) = A(2, A(3, 0)) = 2 A(3, 0) + 3 = 13 A(3, 2) = A(2, A(3, 1)) = 2 A(3, 1) + 3 = 29 A(3, 3) = A(2, A(3, 2)) = 2 A(3, 2) + 3 = 61 Beobachtung A(3, n) = 2 n+3 3 Zusammenfassung der Beispiele Wenn man den ersten Parameter fixiert... A(1, n) = n + 2 A(2, n) = 2n + 3 A(3, n) = 2 n+3 3 A(4, n) = 2 2 } 2 {{} 3 n + 3 viele Zweien Bereits der Wert A(4, 2) = ist grösser als die Anzahl aller Atome im Weltraum. BuK/WS 2017 VL-11: LOOP und WHILE Programme I 45/46 BuK/WS 2017 VL-11: LOOP und WHILE Programme I 46/46
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrSyntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
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 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften
MehrZusammenfassung Grundzüge der Informatik 4
Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1
Mehr2.4 Kontextsensitive und Typ 0-Sprachen
Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik
MehrTuring-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.
Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen
Mehr11.1 Kontextsensitive und allgemeine Grammatiken
Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert
MehrRekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
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
Mehr2. Berechnungsmächtigkeit von Zellularautomaten. Ziele Simulation von Schaltwerken Simulation von Turingmaschinen
2. Berechnungsmächtigkeit von Zellularautomaten Ziele Simulation von Schaltwerken Simulation von Turingmaschinen Beispiel WIREWORLD Elektronen laufen über Drähte von einem Gatter zum nächsten 2.3 Satz
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrAusgewählte unentscheidbare Sprachen
Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar
MehrRekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
MehrFormale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 5: Typ 1 und Typ 0 Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 5 Typ 1
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrGTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de
GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange
Mehr8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
MehrBerechenbarkeitstheorie 17. Vorlesung
Berechenbarkeitstheorie Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 13/14 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Satz 30 I CFL = {
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 1-12. Sitzung Dennis Felsing dennis.felsing@student.kit.edu http://www.stud.uni-karlsruhe.de/~ubcqr/2010w/tut gbi/ 2011-01-24 Überblick 1 Reguläre Ausdrücke Wiederholung
MehrEinführung in Berechenbarkeit, Komplexität und formale Sprachen
Johannes Blömer Skript zur Vorlesung Einführung in Berechenbarkeit, Komplexität und formale Sprachen Universität Paderborn Wintersemester 2011/12 Inhaltsverzeichnis 1 Einleitung 2 1.1 Ziele der Vorlesung...................................
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen
MehrEntscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen
Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,
MehrReferat rekursive Mengen vs. rekursiv-aufzählbare Mengen
Kapitel 1: rekursive Mengen 1 rekursive Mengen 1.1 Definition 1.1.1 informal Eine Menge heißt rekursiv oder entscheidbar, wenn ihre charakteristische Funktion berechenbar ist. 1.1.2 formal Eine Menge A
MehrALP I Rekursive Funktionen
ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive
MehrVorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches
Berechenbarkeit und Komplexität: Motivation, Übersicht und Organisatorisches Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Berechenbarkeit die absoluten Grenzen
MehrLösungen zur 3. Projektaufgabe TheGI1
Marco Kunze (makunze@cs.tu-berlin.de) WS 2001/2002 Sebastian Nowozin (nowozin@cs.tu-berlin.de) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrTheoretische Informatik Testvorbereitung Moritz Resl
Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen
MehrWie viel Mathematik kann ein Computer?
Wie viel Mathematik kann ein Computer? Die Grenzen der Berechenbarkeit Dr. Daniel Borchmann 2015-02-05 Wie viel Mathematik kann ein Computer? 2015-02-05 1 / 1 Mathematik und Computer Computer sind schon
MehrZahlen in Haskell Kapitel 3
Einführung in die Funktionale Programmiersprache Haskell Zahlen in Haskell Kapitel 3 FH Wedel IT-Seminar: WS 2003/04 Dozent: Prof. Dr. Schmidt Autor: Timo Wlecke (wi3309) Vortrag am: 04.11.2003 - Kapitel
MehrEinführung in die Programmierung WS 2014/15. 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1
Einführung in die Programmierung WS 2014/15 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1 2. Alg., Ber. & PS Inhalt 1. Algorithmen 2. Programmiersprachen Algorithmus und Programm(iersprache)
MehrFunktionale Programmierung (in Clojure)
Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen
MehrProbeklausur zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Probeklausur 25.01.2013 Probeklausur zur Vorlesung Berechenbarkeit und Komplexität Aufgabe 1 (1+2+6+3 Punkte)
MehrDie Programmiersprache Scheme... DrRacket: Die Programmierumgebung http://www.racket-lang.org/ Sprache: Semantik. Sprache: Syntax
Informatik I 21. Oktober 2010 2. Informatik I 2. Jan-Georg Smaus 2.1 2.2 Albert-Ludwigs-Universität Freiburg 21. Oktober 2010 Jan-Georg Smaus (Universität Freiburg) Informatik I 21. Oktober 2010 1 / 40
MehrSprachen und Automaten. Tino Hempel
Sprachen und Automaten 11 Tino Hempel Bisherige Automaten Automat mit Ausgabe/Mealy-Automat Akzeptor, Sprache eines Akzeptors Grenze: L = {a n b n } Kellerautomat erkennt L = {a n b n } Grenze:? T. Hempel
MehrStatt (r s) schreiben wir in Zukunft meistens rs, gelegentlich auch (r; s).
14 2 REGULÄRE AUSDRÜCKE 2 Reguläre Ausdrücke Wir wollen (i.a. unendliche) Sprachen mit endlichen Mitteln darstellen, z.b. durch Grammatiken, nach denen die Sätze der Sprache gebildet werden dürfen. Es
MehrDeterministische Turing-Maschinen (DTM) F3 03/04 p.46/395
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle
MehrC.3 Funktionen und Prozeduren
C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
MehrInformatik II. Registermaschinen. Registermaschinen. Registermaschinen. Rainer Schrader. 7. Dezember 2005
Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 7. Dezember 25 / 82 2 / 82 Gliederung Aufbau und Eigenschaften universelle RAM s RAM-Berechenbarkeit Nichtentscheidbarkeit Reduzierbarkeit
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
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
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
MehrIdeen der Informatik. Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Kurt Mehlhorn und Adrian Neumann
Ideen der Informatik Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Kurt Mehlhorn und Adrian Neumann Was ist ein Computer? 2 Übersicht Was ist ein Computer, ein Programm? Turings Antwort
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
MehrAutomaten, Spiele, und Logik
Automaten, Spiele, und Logik Woche 2 25. April 2014 Inhalt der heutigen Vorlesung 1. Reguläre Ausdrücke 2. der Satz von Kleene 3. Brzozowski Methode 4. grep und perl Reguläre Ausdrücke Rekursive Definition,
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche
Mehr3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:
FORMALISIERUNG VON ALGORITHMEN Wegen der beobachteten Zusammenhänge zwischen Berechnungs-, Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren zu formalisieren. Weiter genügt es Verfahren
MehrInfovorkurs, Teil III: Maschinenabstraktion & Ausblick
Infovorkurs, Teil 09.10.2015 Webseite Die neuen Folien, die Übungen und Umfrageergebnisse stehen online; außerdem die Turingmaschinen-Quelltexte. www.geile-hirnbude.de/vorkurs Algorithmen Laufzeitabschätzung
Mehr1 Vom Problem zum Programm
1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
Mehr1 Varianten von Turingmaschinen
1 Varianten von Turingmaschinen Es gibt weitere Definitionen für Turingmaschinen. Diese haben sich aber alle als äquivalent herausgestellt. Ein wiederkehrendes Element der Vorlesung: Äquivalenz von Formalismen
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen
MehrFORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie
Wiederholung FORMALE SYSTEME 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Markus Krötzsch Formale Sprachen sind in Praxis und Theorie sehr wichtig Ein Alphabet ist eine nichtleere, endliche Menge
MehrÜbung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013
Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
MehrAlgorithmen und Datenstrukturen 1 Kapitel 4.1
Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an
MehrAlgorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 10 10 V Wirtschaftsinformatik für Wirtschaftwissenschaftler Algorithmen und ihre Programmierung -Teil 1 - Dr. Chris Bizer WS 007/008 Einführung Definition: Algorithmus Ein Algorithmus
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrWortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
Mehr1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrReduzierbarkeit und das Post'sche Korrespondenzproblem
Reduzierbarkeit und das Post'sche Korrespondenzproblem Agenda Motivation Reduzierbarkeit Definition Bedeutung Post'sches Korrespondenzproblem (PKP) Modifiziertes Post'sches Korrespondenzproblem (MPKP)
MehrDatentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache
Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert
MehrEinführung in die Programmierung
Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:
MehrKontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
MehrRekursionsanfang, Rekursionsschritt oder äquivalente Antworten. (z.b.: Abbruchbedingung (= Basisfall), eigentliche Rekursion (= Selbstaufruf))
Formale Methoden der Informatik WS / Lehrstuhl für Datenbanken und Künstliche Intelligenz Prof.Dr.Dr.F.J.Radermacher H. Ünver T. Rehfeld J. Dollinger 8. Aufgabenblatt Besprechung in den Tutorien vom..
MehrStefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie
Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann
MehrFormale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19
1/19 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
MehrBuK 2000 Lösungen Übungen
BuK 2000 Lösungen Übungen Dies sind private Lösungen, KEINE Musterlösungen, und somit nicht unbedingt korrekt! Trotzdem helfen Sie vielleicht. Wenn jemand die Musterlösungen hat her damit! http://s-inf.de
MehrKontextsensitive und Typ 0 Sprachen
Kontextsensitive und Typ 0 Sprachen Slide 1 Kontextsensitive und Typ 0 Sprachen Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Kontextsensitive und Typ 0 Sprachen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,
MehrTeil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie
Teil V Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Zwei Sorten von Grammatiken Kontextsensitive Grammatik (CSG) (Σ, V, P, S), Regeln der Form αaβ αγβ α, β (Σ V ),
MehrWissensbasierte Systeme
WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
MehrAutomaten, Spiele und Logik
Automaten, Spiele und Logik Woche 13 11. Juli 2014 Inhalt der heutigen Vorlesung Linearzeit Temporale Logik (LTL) Alternierende Büchi Automaten Nicht-Determinisierung (Miyano-Ayashi) Beschriftete Transitionssysteme
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrTheoretische Informatik 2
Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder
MehrTheoretische Informatik
Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von
Mehr1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in
Mehr5 Der Begriff Berechnungsmodell
5 Der Begriff Berechnungsmodell Die Lernumgebung Kara bietet nicht nur einen Einstieg in die Grundlagen von Algorithmen und Programmen, sondern auch eine intuitive Einführung des zentralen Begriffs Berechnungsmodell.
MehrSWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
Mehr4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,
MehrProseminar Funktionales Programmieren. Stephan Kreutzer
Proseminar Funktionales Programmieren Die Programmiersprache LISP Stephan Kreutzer Teil I: Funktionales Programmieren Imperative Sprachen Imperative Sprachen: Befehlsorientiert Imperative Sprachen orientieren
Mehr1 Syntax von Programmiersprachen
1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme
MehrÜbung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per
MehrTheoretische Informatik 2
Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Entscheidbare und semi-entscheidbare Sprachen Definition Eine NTM M hält bei Eingabe x, falls
Mehr1. LPC - Lehmanns Programmier Contest - Lehmanns Logo
Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die
Mehr