Einführung in die Programmierung

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Programmierung"

Transkript

1 Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg

2 URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg

3 Einordnung Programmier-Paradigma: Maschinen- nah, sehr kleinschrittig (Assemblersprachen prozedural, strukturiert (imperative Sprachen, z.b. Pascal deklarativ (funktionale Programmierung, z.b. LISP regelbasiert (logische Programmierung, z.b. Prolog objektorientiert (z.b. Java Frage: Sind die verschiedenen Programmiersprachen unterschiedlich mächtig? Antwort: (Curch sche These Nein! Universelle Registermaschine (URM: theoretisches Modell, in dem man mit (sehr! wenigen Befehlen bereits alle berechenbaren Funktionen programmieren kann 3

4 URM URM = Universelle Registermaschine Formales Modell, um mathematisch exakt Algorithmen angeben zu können und Eigenschaften beweisen zu können. Sehr einfaches Computer-Modell Programme für die URM lassen sich sehr einfach in Programme in C oder Java übertragen Kann nur Funktionen f : N n ---> Nberechnen 4

5 Aufbau der URM URM enthält: 1. Unendliche viele Register r 1, r 2,... : Können jeweils genau einen Wert n N enthalten 2. Programmspeicher: Programmspeicherplätze 1,...,p können jeweils genau einen Befehl aufnehmen (p beliebig; für ein URM-Programm fest. Der i-te Befehl β i steht auf dem Programmspeicherplatz i. 3. Befehlszähler: Hat Wert aus N + und gibt die Nummer des nächsten auszuführenden Befehls an Programmspeicher 1: Befehl 1 2: Befehl 2 3: Befehl p: Befehl p r0: r1: r2: r3: Befehlszähler Register... URM 5

6 r i 0 (i N + Register r i auf 0 setzen Befehle der URM r i r i + 1 (i N + Wert des Registers r i um 1 erhöhen r i r i -1 (i N + Wert des Registers r i um 1 erniedrigen (0 bleibt unverändert goto l (l N + Befehlszähler auf l setzen if r i = 0 goto l (i N +, l N + Befehlszähler auf l setzen, falls Register r i den Wert 0 hat Die ersten drei Befehle sind arithmetische Befehle, die letzten beiden Sprungbefehle. 6

7 URM-Programm URM-Programme bestehen aus drei Teilen: Eingabe in(r i1,...,r in : Die Eingabedaten werden auf die in einer in-vereinbarung spezifizierten Register geschrieben, alle übrigen Register auf 0 gesetzt und der Befehlszähler auf 1 gesetzt. Befehlsteil b: Folge von Befehlen β 1... β p Ausgabe out(r i : Für den Fall, dass die Berechnung abbricht, steht die Ausgabe in dem durch die out-vereinbarung angegebenen Register. Für den Fall, dass die Berechnung nicht abbricht, ist die Ausgabe nicht definiert. 7

8 Ausführung des Befehlsteils Sei q der Wert des Befehlsregisters. Der q-te Befehl ist der Befehl im q-ten Befehlsspeicher. Falls der q-te Befehl ein: arithmetischer Befehl ist, wende ihn entsprechend an und erhöhe anschließend den Programmzähler um 1. Sprungbefehl der Form goto l ist, so setze den Befehlszähler auf l. Sprungbefehl der Form if r i = 0 goto l ist, so wird der Befehlszähler auf den Wert l gesetzt, falls r i den Wert 0 enthält. Ansonsten wird der Befehlszähler um 1 erhöht. Dieses Vorgehen wird wiederholt. Es sind zwei Fälle möglich: Nach endlich vielen Programmschritten weist der Programmzähler auf eine leere Programmspeicherstelle. In diesem Fall bricht die Berechnung ab. Nach jeder Anwendung eines Befehls ist ein weiterer Befehl ausführbar. In diesem Fall bricht die Berechnung nicht ab. 8

9 Beispiel 1 in(r 1 1: r 2 0 2: if r 1 = 0 goto 6 3: r 1 r 1-1 4: r 2 r : goto 2 out(r 2 Frage: Was berechnet dieses URM-Programm? 9

10 Beispiel 1 in(r 1 1: r 2 0 2: if r 1 = 0 goto 6 3: r 1 r 1-1 4: r 2 r : goto 2 out(r 2 Frage: Was berechnet dieses URM-Programm? Es wird der Inhalt von r 1 nach r 2 kopiert, r 1 auf den Wert 0 gesetzt und der kopierte Wert ausgegeben. 10

11 Beispiel 2 in(r 1 1: r 2 0 2: goto 1 out(r 2 Frage: Was berechnet dieses URM-Programm? 11

12 Beispiel 2 in(r 1 1: r 2 0 2: goto 1 out(r 2 Frage: Was berechnet dieses URM-Programm? Die Berechnung bricht nicht ab! 12

13 Beispiel 3 in(r1, r2 1: r 3 0 2: if r 1 = 0 goto 6 3: r 1 r 1-1 4: r 3 r : goto 2 6: if r 2 = 0 goto 10 7: r 2 r 2-1 8: r 3 r : goto 6 out(r3 "r 3 r 3 + r 1 " r 1 0 "r 3 r 3 + r 2 " r 2 0 Wiederkehrendes Muster Frage: Was berechnet dieses URM-Programm? 13

14 Beispiel 3 in(r1, r2 1: r 3 0 2: if r 1 = 0 goto 6 3: r 1 r 1-1 4: r 3 r : goto 2 6: if r 2 = 0 goto 10 7: r 2 r 2-1 8: r 3 r : goto 6 out(r3 "r 3 r 3 + r 1 " r 1 0 "r 3 r 3 + r 2 " r 2 0 Wiederkehrendes Muster Frage: Was berechnet dieses URM-Programm? Berechnet x+y 14

15 Beispiel 4 Wie kann man das Maximum zweier Zahlen x 1 und x 2 bestimmen? in(r1, r2 1: r 3 0 2:... out(r3 Wie sieht der Befehlsteil aus? Hinweis: Wenn x1-x2 >= 0, dann ist x1 das Maximum, sonst x2 15

16 Maximum zweier Zahlen 1: if r 1 =0 goto 7 /* Minimum bilden */ 2: if r 2 =0 goto 11 3: r 1 r 1 1 4: r 2 r 2 1 5: r 3 r : goto 6 7: if r 2 =0 goto 15 /* r 1 war kleiner oder gleich als r 2 */ 8: r 3 r : r 2 r : goto 7 11: if r 1 =0 goto 15 /* r 1 war größer als r 2 */ 12: r 3 r : r 1 r : goto 11 15: 16

17 Aufgabe Schreiben Sie ein URM-Programm, das die modifizierte Differenz x1-x2 von zwei Eingabewerten berechnet! modifiziert bedeutet: Das Ergebnis soll 0 sein, wenn x1<x2 (oder x1=x2. 17

18 Zustand Ein Zustand z : N N der URM beschreibt mit: z(0 den Inhalt des Befehlszählers (Register 0 z(i den Inhalt des i-ten Registers (i N + Beispiele für Zustände: (Kurzschreibweise z 1 : N N mit z 1 (0=1, z 1 (1=5, z 1 (2=4711, z 1 (i=0 sonst z 1 = (1, 5, 4711, 0... z 2 : N N mit z 2 (0=2, z 2 (i=0 sonst z 2 = (2, 0,... z 3 : N N mit z 3 (3=1, z 3 (i=0 sonst z 3 = (0, 0, 0, 1, 0,... z 4 : N N mit z 4 (i=0 für alle i z 4 = (0, 0,... 18

19 Zustandsraum, Zustandstransformation Der Zustandsraum Z der URM ist definiert durch: Z := { z z : N N } als die Menge aller möglichen Zustände der URM. Jeder Befehl β bestimmt dann eine Zustandstransformation [β] : Z Z mit: [ r i 0 ] (z := z mit z (0:= z(0+1, z (i:=0, z (j:=z(j für j i [ r i r i + 1 ] (z := z mit z (0:= z(0+1, z (i:=z(i+1, z (j:=z(j für j i [ r i r i -1] (z := z mit z (0:= z(0+1, z (i:=z(i-1, z (j:=z(j für j i [ goto l ] (z := z mit z (0:= l, z (j=z(j sonst [ if r i = 0 goto l ] (z := z mit z (0:=l, z (j:=z(j sonst, falls z(i = 0 bzw. z (0:=z (0+1, z (j:=z(j sonst, falls z(i 0 19

20 Beispiel Zustandstransformation Sei z : N N mit z(0:=1, z(1:=1, z(2:=4711, z(i:=0 sonst [ r 2 0 ] (z = z' mit z' : N N mit z'(0:=2, z'(1:=1, z'(i:=0 sonst Der Befehl r 2 0 transformiert also den Zustand z = (1, 1, 4711, 0, 0,... in den Zustand z = (2, 1, 0, 0,... 20

21 Einzelschrittfunktion Der Befehlsteil b := β 1,..., β p (p N + bestimmt eine Zustandstransformation δ(b : Z - - -> Z die sogenannte Einzelschrittfunktion von b mit: δ(β 1,..., β p (z := [ β i ] (z falls z(0 = i {1,..., p} undef. z(0 > p 21

22 Iterierte Zustandstransformation Für die iterierte Zustandstransformation [ b ] des Befehlsteils b = (β 1,..., β p gilt: (1 Falls die Berechung abbricht: δ(b (z 0 = z 1 δ(b (z 1 = z 2... δ(b (z s-1 = z s mit z s (0 > p Dann gilt: [ b ] (z 0 := z s (2 Falls die Berechnung nicht abbricht, d.h. für jeden Folgezustand z i+1 gilt: δ(b (z i = z i+1 mit 1 z i+1 (0 p Dann gilt: [ b ] (z 0 := undef. 22

23 Ein-/Ausgabevereinbarung Für die Eingabevereinbarung in (r i1,...,r in gilt: [ in (r i1,...,r in ] : N n Z (x 1,...,x n z 0 (Startzustand mit: z 0 (0 = 1 z 0 (i k = x k (k=1,...,n z 0 (j = 0 sonst Beispiel: [ in(r 1,r 3 ] (5,7 = z 0 mit z 0 (0=1, z 0 (1=5, z 0 (3=7, z 0 (i=0 sonst also z 0 = ( 1, 5, 0,7, 0,... Für die Ausgabevereinbarung out (r i gilt: [ out (r i ] : Z N z z(i Beispiel: [ out (r 1 ] (z 0 = 5 23

24 URM-Programm Definition: Ein URM-Programm besteht aus einer Eingabevereinbarung in(r i1,...,r in (n N, einem Befehlsteil b = (β 1,..., β p (p N + und einer Ausgabevereinbarung out(r i (i N + : P = in (r i1,...,r in ; β 1,..., β p ; out(r i. Dabei berechnet P eine partiell arithmetische Funktion [ P ] : N n ---> N mit [P] := [out (r i ] [ b ] [ in (r i1,...,r in ] 24

25 URM-berechenbar Definition: f : N n - - -> N heißt URM-berechenbar, wenn ein URM-Programm P existiert mit [ P ] = f. [ in (r i1,...,r in ] [ P ] N n > N Z [ b ] [out (r i ] Z [ P ] Eingabewerte - - -> Ausgabewert [ in (r i1,...,r in ] [out (r i ] Startzustand [ b ] Endzustand 25

26 Beispiel (3 Es sollen zwei Zahlen x 1 und x 2 addiert werden. P = in(r 1, r 2 ; b; out(r 3 berechnet die Addition mit [ P ] : N > N, [ P ] (x,y = x+y wobei b= 1: r 3 0 2: if r 1 = 0 goto 6 3: r 1 r 1-1 4: r 3 r : goto 2 6: if r 2 = 0 goto 10 7: r 2 r 2-1 8: r 3 r : goto 6 26

27 Beispiel (3 [ P ] (2,1 = [ out(r3 ] [ b ] [ in(r 1,r 2 ] (2,1 = [ out(r3 ] [ b ] (z 0 mit: z 0 (0=1, z 0 (1=2, z 0 (2=1, z 0 (j=0 sonst [ b ] (z 0 ist definiert als die iterierte Zustandstransformation von b = (β 1,..., β p angewandt auf den Startzustand z 0. In Kurzschreibweise: Startzustand z 0 = (1,2,1,0,0,... 27

28 Beispiel (3 δ(b (1,2,1,0,0,... = [ r 3 0 ] (1,2,1,0,0,... = (2,2,1,0,0,... δ(b (2,2,1,0,0,... = [ if r 1 = 0 goto 6 ] (2,2,1,0,0,... = (3,2,1,0,0... δ(b (3,2,1,0,0... = [ r 1 r 1 1] (3,2,1,0,0... = (4,1,1,0,0... δ(b (4,1,1,0,0... = [ r 3 r ] (4,1,1,0,0... = (5,1,1,1,0,... δ(b (5,1,1,1,0,... = [ goto 2 ] (5,1,1,1,0,... = (2,1,1,1,0,... δ(b (2,1,1,1,0,... = [ if r 1 = 0 goto 6 ] (2,1,1,1,0,... = (3,1,1,1,0,... δ(b (3,1,1,1,0,... = [ r 1 r 1 1] (3,1,1,1,0,... = (4,0,1,1,0,... δ(b (4,0,1,1,0,... = [ r 3 r ] (4,0,1,1,0,... = (5,0,1,2,0,... δ(b (5,0,1,2,0,... = [ goto 2 ] (5,0,1,2,0,... = (2,0,1,2,0,... δ(b (2,0,1,2,0,... = [ if r 1 = 0 goto 6 ] (2,0,1,2,0,...= (6,0,1,2,0,... δ(b (6,0,1,2,0,... = [ if r 2 = 0 goto 10 ] (6,0,1,2,0,... = (7,0,1,2,0,... δ(b (7,0,1,2,0,... = [ r 2 r 2 1](7,0,1,2,0,... = (8,0,0,2,0,... δ(b (8,0,0,2,0,... = [ r 3 r ] (8,0,0,2,0,... = (9,0,0,3,0,... δ(b (9,0,0,3,0,... = [ goto 6 ] (9,0,0,3,0,... = (6,0,0,3,0,... δ(b (6,0,0,3,0,... = [ if r 2 = 0 goto 10 ] (6,0,0,3,0,... = (10,0,0,3,0,... 28

29 Beispiel (3 Die iterierte Zustandstransformation bricht an dieser Stelle ab, so dass gilt: [ b ] (z 0 = (10,0,0,3,0,... (Endzustand Setzen wir dies in die ursprüngliche Berechnung ein, so ergibt sich: [ P ] (2,1 = [ out(r3 ] [ b ] [ in(r 1,r 2 ] (2,1 = [ out(r3 ] [ b ] ((1, 2, 1, 0,... = [out(r3 ] (10, 0, 0, 3, 0,... = 3 29

30 Aufgabe Bestimmen Sie mit Hilfe der iterierten Zustandstransformation die Werte [P](2, 1 und [P](1, 2 für P = in(r1, r2; b; out(r1 mit b = 1: if r 2 = 0 goto 5 2: r 1 r 1-1 3: r 2 r 2-1 4: goto 1 30

ALP I Turing-Maschine

ALP I Turing-Maschine ALP I Turing-Maschine Teil I WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Alonzo Church λ-kalkül Kombinatorische Logik Alan Turing Turing-Maschine Mathematische Präzisierung Effektiv Berechenbare

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

Grundlagen der Theoretischen Informatik: Übung 10 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 07.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 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

Mehr

Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik

Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik Logik, Berechenbarkeit und Komplexität Sommersemester 2008 Fachhochschule Wiesbaden Prof. Dr. Steffen Reith Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik 1 Turingmaschinen - Ein

Mehr

3. RAM als Rechnermodell

3. RAM als Rechnermodell 3. RAM als Rechnermodell Motivation Wir möchten Berechnungsvorschriften (Algorithmen) formal beschreiben und deren Eigenschaften wie Korrektheit und Laufzeit analysieren Rechnermodell abstrahiert vom verwendeten

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

Angewandte Mathematik am Rechner 1

Angewandte Mathematik am Rechner 1 Angewandte Mathematik am Rechner 1 SOMMERSEMESTER 2017 Kapitel 3 [Bildquellen: Wikipedia User David Madore, Inductiveload ] Grundlagen 2: Funktionen, Berechenbarkeit und emergente Komplexität Michael Wand

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einfü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

Mehr

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Hier einige informelle Erklärungen zum Algorithmus P

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 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

Mehr

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.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

Mehr

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

Mehr

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,

Mehr

ALP I Turing-Maschine

ALP I Turing-Maschine ALP I Turing-Maschine Teil I SS 2011 Äquivalenz vieler Berechnungsmodelle Alonzo Church λ-kalkül Kombinatorische Logik Alan Turing Turing-Maschine Mathematische Präzisierung Effektiv Berechenbare Funktionen

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 07.11.2017 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Frage Frage: Ist der

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c

Mehr

Von der Programmiersprache WHILE zum ersten Einstieg in Java

Von der Programmiersprache WHILE zum ersten Einstieg in Java Von der Programmiersprache WHILE zum ersten Einstieg in Java Die Programmiersprache WHILE bildet den Kern jeder imperativen Programmiersprache. Man geht davon aus, dass die Ein- Ausgabe primitiv organisiert

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 4.1

Algorithmen 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

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Teil II: Berechenbarkeit und Komplexität Algorithmen und Komplexität 22. November 2016 Berechenbarkeitstheorie RAM-Maschine 1: M 1 1 2: M 0 1 3: M 0 M 0 M 1 4: M 2 M 2 M 1 5: GOTO 3 IF M 2 > 0. M 2 : M

Mehr

Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität

Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität Algorithmen und Komplexität, Teil II: Berechenbarkeit und Komplexität Ralph Keusch 21. November 2017 Berechenbarkeitstheorie RAM-Maschine 1: M 1 1 2: M 0 1 3: M 0 M 0 M 1 4: M 2 M 2 M 1 5: GOTO 3 IF M

Mehr

Einstieg imperative Programmierung auf Von-Neumann-Rechnern

Einstieg imperative Programmierung auf Von-Neumann-Rechnern Einstieg imperative Programmierung auf Von-Neumann-Rechnern Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung In diesem Kurs werden Sie die Grundlagen der Programmierung mit Java erlernen. Java ist eine imperative

Mehr

11. Übungsblatt. x y(top(push(x, y)) = y)

11. Übungsblatt. x y(top(push(x, y)) = y) Logik, Berechenbarkeit und Komplexität Sommersemester 2012 Hochschule RheinMain Prof. Dr. Steffen Reith 11. Übungsblatt 1. Ein Keller (engl. stack) ist eine bekannte Datenstruktur. Sei die Signatur S =

Mehr

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen, Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen

Mehr

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr 6.4 Entscheidbarkeit Wortproblem Leerheit Äquivalenz Schnittproblem Typ 3 ja ja ja ja DCFL ja ja ja nein (*) Typ 2 ja ja nein (*) nein Typ 1 ja nein (*) nein nein Typ 0 nein (*) nein nein nein (*) Diese

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige

Mehr

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 25. Oktober 2006 Was ist ein Problem? Informelle Umschreibung

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik

Mehr

8. Rekursive und primitiv rekursive Funktionen

8. Rekursive und primitiv rekursive Funktionen 8. Rekursive und primitiv rekursive Funktionen In diesem Abschnitt führen wir eine weitere (letzte) Formalisierung des Berechenbarkeitskonzeptes für Funktionen über den natürlichen Zahlen ein. Hatten wir

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen und rekursive Funktionen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 16. November 2010 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit

Mehr

1 Vom Problem zum Program

1 Vom Problem zum Program Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit E = zulässige Eingaben und

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM

Mehr

1. 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 - 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

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung

Mehr

n 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 - 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

Mehr

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer

Mehr

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus //5 Abstrakte Maschinenmodelle: Turingmaschine (TM) 96 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus einem festen Teil ( "Hardware ) einem variablen Teil ( "Software

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen

Mehr

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:... Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung

Mehr

Definition der Kolmogorov-Komplexität I

Definition der Kolmogorov-Komplexität I Definition der Kolmogorov-Komplexität I Definition: Die Komplexität K A (x) eines Wortes x V + bezüglich des Algorithmus A ist die Länge der kürzesten Eingabe p {0, 1} + mit A(p) = x, d.h. in formalisierter

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssätze der Logik Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie

Mehr

Übersicht. 3.1 Datendarstellung durch Zeichenreihen. 3.2 Syntaxdefinitionen. 3.3 Algorithmen

Übersicht. 3.1 Datendarstellung durch Zeichenreihen. 3.2 Syntaxdefinitionen. 3.3 Algorithmen Übersicht 3.1 Datendarstellung durch Zeichenreihen 3.2 Syntaxdefinitionen Einführung in die Programmierung 3. Daten und Algorithmen 31 Nachdem wir bisher in Kapitel 3 die Eigenschaft eindeutige Datendarstellung

Mehr

Achim Feldmeier, 23. Juni : Penrose nimmt dieses Argument auf in Shadows of the Mind.

Achim Feldmeier, 23. Juni : Penrose nimmt dieses Argument auf in Shadows of the Mind. Können Menschen mehr (Mathematik) als Computer? Turing - Penrose - Searle Achim Feldmeier, 23. Juni 2008 1931: Gödel beweist den Unvollständigkeitssatz. 1937: Turing beweist das Halteproblem. 1961: Lucas

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte

Mehr

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen? Einige Fragen Ziel: Wir suchen Antworten auf die folgenden Fragen: Wie kann man das intuitiv Berechenbare formal fassen? Was ist ein Algorithmus? Welche Indizien hat man dafür, dass ein formaler Algorithmenbegriff

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

Logik und Beweisbarkeit

Logik und Beweisbarkeit Logik und Beweisbarkeit VL 08 Martin Mundhenk Univ. Jena, Institut für Informatik 11. Januar 2019 Teil 3: Berechenbarkeitstheorie 1. Aussagenlogik 2. Arithmetik 3. Berechenbarkeitstheorie VL08: URM-berechenbare

Mehr

1 Algorithmische Grundlagen

1 Algorithmische Grundlagen 1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003

Mehr

Logik und Beweisbarkeit

Logik und Beweisbarkeit Logik und Beweisbarkeit VL 10 Martin Mundhenk Univ. Jena, Institut für Informatik 22. Januar 2019 Vorlesung 11: Beweissysteme 3. Berechenbarkeitstheorie VL08: URM-berechenbare Funktionen und die These

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Gierhardt. Einführung:

Gierhardt. Einführung: Informatik 13: Gierhardt Theoretische Informatik I Einführung: Neben den Problemen und Fragen der praktischen Informatik, wo es in erster Linie um die Wahl der geeigneten Algorithmen und Datenstrukturen

Mehr

Theoretische Informatik

Theoretische Informatik Kapitel 22: Theoretische Informatik Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Minimale Rechnermodelle Maschine mit wahlfreiem Zugriff Turing-Maschine Zeitkomplexität

Mehr

Rekursive Funktionen Basisfunktionen

Rekursive 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

Mehr

Theoretische Informatik. Berechenbarkeit

Theoretische Informatik. Berechenbarkeit Theoretische Informatik Berechenbarkeit 1 Turing Maschine Endlicher Automat mit unendlichem Speicher Ein Modell eines realen Computers Was ein Computer berechnen kann, kann auch eine TM berechnen. Was

Mehr

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure 2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie

Mehr

Halteproblem/Kodierung von Turing-Maschinen

Halteproblem/Kodierung von Turing-Maschinen Halteproblem/Kodierung von Turing-Maschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Frage:

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung

Fakultät Angewandte Informatik Lehrprofessur für Informatik Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 31.10.2011 Prof. Dr. Robert Lorenz Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung Aufgabe 5 * Wenden Sie den in der

Mehr

1 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 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

Mehr

Grundlagen der Programmierung (Vorlesung 24)

Grundlagen der Programmierung (Vorlesung 24) Grundlagen der Programmierung (Vorlesung 24) Ralf Möller, FH-Wedel Vorige Vorlesung Anwendung im Bereich Compilerbau Inhalt dieser Vorlesung Turing-Maschinen Berechenbarkeitstheorie, Halteproblem Lernziele

Mehr

1 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 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

Mehr

Korrektheit imperativer Algorithmen

Korrektheit imperativer Algorithmen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Abschnitt 9 Korrektheit imperativer Algorithmen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester

Mehr

Referat rekursive Mengen vs. rekursiv-aufzählbare Mengen

Referat 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

Mehr

3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welche der folgenden Aussagen zur Verifikation nach Hoare ist richtig? A. Eine Formel, die sowohl vor der Ausführung des Programmes,

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie 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

Mehr

Algorithmentheorie 2. Vorlesung

Algorithmentheorie 2. Vorlesung Algorithmentheorie 2. Vorlesung Martin Dietzfelbinger 13. April 2006 FG KTuEA, TU Ilmenau AT 13.04.2006 Maschinenmodelle Registermaschinen (RAMs) bearbeiten Zahlen Turingmaschinen (TMn) bearbeiten Wörter/Strings/Zeichenfolgen

Mehr

Adventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem

Adventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem -Problem Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Zum Aufwärmen: wir betrachten das sogenannte -Problem, bei dem ein Abenteurer/eine

Mehr