Theoretische Informatik II

Größe: px
Ab Seite anzeigen:

Download "Theoretische Informatik II"

Transkript

1 Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Wintersemester 2007/2008 B. Beckert Theoretischen Informatik II: WS 2007/08 1 / 179

2 Dank Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal) Christoph Kreitz (gehalten an der Universität Potsdam) Ihnen gilt mein herzlicher Dank. Bernhard Beckert, Oktober 2007 B. Beckert Theoretischen Informatik II: WS 2007/08 2 / 179

3 Teil IV Der λ-kalkül B. Beckert Theoretischen Informatik II: WS 2007/ / 179

4 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

5 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

6 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

7 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

8 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

9 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

10 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

11 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

12 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

13 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

14 Die Idee Zweck Formale Definition von Funktionen Untersuchung und Anwendung von Funktionsdefinitionen Berechnungsmodell Grundlage funktionaler Programmiersprachen Einfach und doch mächtig Grundlegende Eigenschaften Funktion identifiziert mit λ-ausdrücken, die sie beschreiben Funktionen angewendet auf Funktionen Nichts außer Funktionen (keine anderen Datentypen) Entwickelt von Alonzo Church und Stephen Kleene in den 1930er Jahren B. Beckert Theoretischen Informatik II: WS 2007/ / 179

15 Syntax Definition 14.1 (λ-ausdruck) Variable Jede Variable x ist ein λ-ausdruck Abstraktion Ist x eine Variable und e ein λ-ausdruck, dann ist λx.e ein λ-ausdruck Anwendung Sind e 1,e 2 λ-ausdrücke, dann ist e 1 e 2 ein λ-ausdruck B. Beckert Theoretischen Informatik II: WS 2007/ / 179

16 Syntax Definition 14.1 (λ-ausdruck) Variable Jede Variable x ist ein λ-ausdruck Abstraktion Ist x eine Variable und e ein λ-ausdruck, dann ist λx.e ein λ-ausdruck Anwendung Sind e 1,e 2 λ-ausdrücke, dann ist e 1 e 2 ein λ-ausdruck B. Beckert Theoretischen Informatik II: WS 2007/ / 179

17 Syntax Definition 14.1 (λ-ausdruck) Variable Jede Variable x ist ein λ-ausdruck Abstraktion Ist x eine Variable und e ein λ-ausdruck, dann ist λx.e ein λ-ausdruck Anwendung Sind e 1,e 2 λ-ausdrücke, dann ist e 1 e 2 ein λ-ausdruck B. Beckert Theoretischen Informatik II: WS 2007/ / 179

18 Syntax Assoziativität und Bindungsstärke Anwendungen sind linksassoziativ: e 1 e 2 e 3 = (e 1 e 2 ) e 3 Anwendung bindet stärker als Abstraktion: λx.e 1 e 2 = λx.(e 1 e 2 ) WICHTIG! Dies muss man wissen, um λ-ausdrücke verstehen zu können! B. Beckert Theoretischen Informatik II: WS 2007/ / 179

19 Syntax Assoziativität und Bindungsstärke Anwendungen sind linksassoziativ: e 1 e 2 e 3 = (e 1 e 2 ) e 3 Anwendung bindet stärker als Abstraktion: λx.e 1 e 2 = λx.(e 1 e 2 ) WICHTIG! Dies muss man wissen, um λ-ausdrücke verstehen zu können! B. Beckert Theoretischen Informatik II: WS 2007/ / 179

20 Syntax Assoziativität und Bindungsstärke Anwendungen sind linksassoziativ: e 1 e 2 e 3 = (e 1 e 2 ) e 3 Anwendung bindet stärker als Abstraktion: λx.e 1 e 2 = λx.(e 1 e 2 ) WICHTIG! Dies muss man wissen, um λ-ausdrücke verstehen zu können! B. Beckert Theoretischen Informatik II: WS 2007/ / 179

21 Syntax Assoziativität und Bindungsstärke Anwendungen sind linksassoziativ: e 1 e 2 e 3 = (e 1 e 2 ) e 3 Anwendung bindet stärker als Abstraktion: λx.e 1 e 2 = λx.(e 1 e 2 ) WICHTIG! Dies muss man wissen, um λ-ausdrücke verstehen zu können! B. Beckert Theoretischen Informatik II: WS 2007/ / 179

22 Beispiele Einige wichtige λ-ausdrücke Indentitätsfunktion: I = λx.x Selbstanwendung: D = λx.x x Auslassen des 2. Argumentes: K = λx.λy.x B. Beckert Theoretischen Informatik II: WS 2007/ / 179

23 Beispiele Einige wichtige λ-ausdrücke Indentitätsfunktion: I = λx.x Selbstanwendung: D = λx.x x Auslassen des 2. Argumentes: K = λx.λy.x B. Beckert Theoretischen Informatik II: WS 2007/ / 179

24 Beispiele Einige wichtige λ-ausdrücke Indentitätsfunktion: I = λx.x Selbstanwendung: D = λx.x x Auslassen des 2. Argumentes: K = λx.λy.x B. Beckert Theoretischen Informatik II: WS 2007/ / 179

25 α-konversion Definition 14.2 Ein Vorkommen einer Variablen x ist gebunden, wenn es im Skopus von λx ist. Andernfalls ist es frei. α-konversion λ-ausdrücke, die gleich sind bis auf Umbenennen gebundener Variablen werden identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

26 α-konversion Definition 14.2 Ein Vorkommen einer Variablen x ist gebunden, wenn es im Skopus von λx ist. Andernfalls ist es frei. α-konversion λ-ausdrücke, die gleich sind bis auf Umbenennen gebundener Variablen werden identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

27 α-konversion Definition 14.2 Ein Vorkommen einer Variablen x ist gebunden, wenn es im Skopus von λx ist. Andernfalls ist es frei. α-konversion λ-ausdrücke, die gleich sind bis auf Umbenennen gebundener Variablen werden identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

28 α-konversion Definition 14.2 Ein Vorkommen einer Variablen x ist gebunden, wenn es im Skopus von λx ist. Andernfalls ist es frei. α-konversion λ-ausdrücke, die gleich sind bis auf Umbenennen gebundener Variablen werden identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

29 Substitution Definition 14.3 Das Ergebnis der Substitution von x in e durch e in Zeichen: [e /x]e entsteht dadurch, dass 1 gebundene Variablen so umbenannt werden, dass sie nur einmal vorkommen 2 x in e syntaktisch durch e ersetzt wird B. Beckert Theoretischen Informatik II: WS 2007/ / 179

30 Substitution Definition 14.3 Das Ergebnis der Substitution von x in e durch e in Zeichen: [e /x]e entsteht dadurch, dass 1 gebundene Variablen so umbenannt werden, dass sie nur einmal vorkommen 2 x in e syntaktisch durch e ersetzt wird B. Beckert Theoretischen Informatik II: WS 2007/ / 179

31 Substitution Definition 14.3 Das Ergebnis der Substitution von x in e durch e in Zeichen: [e /x]e entsteht dadurch, dass 1 gebundene Variablen so umbenannt werden, dass sie nur einmal vorkommen 2 x in e syntaktisch durch e ersetzt wird B. Beckert Theoretischen Informatik II: WS 2007/ / 179

32 β-reduktion β-reduktion Der λ-ausdruck (λx.e) e kann durch β-reduktion zu dem Ausdruck [e /x]e reduziert werden In Zeichen: (λx.e) e β [e /x]e Wenn e β e, dann werden e,e identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

33 β-reduktion β-reduktion Der λ-ausdruck (λx.e) e kann durch β-reduktion zu dem Ausdruck [e /x]e reduziert werden In Zeichen: (λx.e) e β [e /x]e Wenn e β e, dann werden e,e identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

34 β-reduktion β-reduktion Der λ-ausdruck (λx.e) e kann durch β-reduktion zu dem Ausdruck [e /x]e reduziert werden In Zeichen: (λx.e) e β [e /x]e Wenn e β e, dann werden e,e identifiziert beschreiben dieselbe Funktion B. Beckert Theoretischen Informatik II: WS 2007/ / 179

35 β-reduktion Beispiel 14.4 (λf.f (λx.x)) (λx.x) β (λy.y) Beispiel 14.5 Der Ausdruck (λx.x x) (λx.x x) kann nicht weiter reduziert werden B. Beckert Theoretischen Informatik II: WS 2007/ / 179

36 β-reduktion Beispiel 14.4 (λf.f (λx.x)) (λx.x) β (λy.y) Beispiel 14.5 Der Ausdruck (λx.x x) (λx.x x) kann nicht weiter reduziert werden B. Beckert Theoretischen Informatik II: WS 2007/ / 179

37 Eigenschaften der Reduktion Eigenschaften der Reduktion mittels α- und β-reduktion β-reduktion terminiert nicht immer β-reduktion ist nicht deterministisch Jedoch: β ist konfluent (hat die Church-Rosser-Eigenschaft): Gilt e β e 1 und e β e 2 dann gibt es ein e mit e 1 β e und e 2 β e Darum: Normalformen sind eindeutig B. Beckert Theoretischen Informatik II: WS 2007/ / 179

38 Eigenschaften der Reduktion Eigenschaften der Reduktion mittels α- und β-reduktion β-reduktion terminiert nicht immer β-reduktion ist nicht deterministisch Jedoch: β ist konfluent (hat die Church-Rosser-Eigenschaft): Gilt e β e 1 und e β e 2 dann gibt es ein e mit e 1 β e und e 2 β e Darum: Normalformen sind eindeutig B. Beckert Theoretischen Informatik II: WS 2007/ / 179

39 Eigenschaften der Reduktion Eigenschaften der Reduktion mittels α- und β-reduktion β-reduktion terminiert nicht immer β-reduktion ist nicht deterministisch Jedoch: β ist konfluent (hat die Church-Rosser-Eigenschaft): Gilt e β e 1 und e β e 2 dann gibt es ein e mit e 1 β e und e 2 β e Darum: Normalformen sind eindeutig B. Beckert Theoretischen Informatik II: WS 2007/ / 179

40 Eigenschaften der Reduktion Eigenschaften der Reduktion mittels α- und β-reduktion β-reduktion terminiert nicht immer β-reduktion ist nicht deterministisch Jedoch: β ist konfluent (hat die Church-Rosser-Eigenschaft): Gilt e β e 1 und e β e 2 dann gibt es ein e mit e 1 β e und e 2 β e Darum: Normalformen sind eindeutig B. Beckert Theoretischen Informatik II: WS 2007/ / 179

41 Eigenschaften der Reduktion Eigenschaften der Reduktion mittels α- und β-reduktion β-reduktion terminiert nicht immer β-reduktion ist nicht deterministisch Jedoch: β ist konfluent (hat die Church-Rosser-Eigenschaft): Gilt e β e 1 und e β e 2 dann gibt es ein e mit e 1 β e und e 2 β e Darum: Normalformen sind eindeutig B. Beckert Theoretischen Informatik II: WS 2007/ / 179

42 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

43 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

44 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

45 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

46 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

47 Mächtigkeit des λ-kalküls Ausdrucksstärke Im λ-kalkül kann man ausdrücken: Datentypen wie Integer, Boolean, Listen, Bäume,... Verzweigung Rekursion Turing-Mächtigkeit Der λ-kalkül kann Turing-Maschinen simulieren Unentscheidbarkeit Es ist unentscheidbar, ob für beliebig gegebene e,e gilt, dass e β e B. Beckert Theoretischen Informatik II: WS 2007/ / 179

Funktionale Programmierung Einführung

Funktionale Programmierung Einführung Einführung Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 13.09.2017 15:29 Inhaltsverzeichnis Was ist imperative Programmierung.......................

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

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

Der untypisierte Lambda-Kalkül als Programmiersprache

Der untypisierte Lambda-Kalkül als Programmiersprache Der untypisierte Lambda-Kalkül als Programmiersprache November 29, 2006 betreut von Prof. Tobias Nipkow Einführung In den 1930er Jahren von Alonzo Church und Stephen Kleene eingeführt Der Lambda-Kalkül

Mehr

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

Funktionale Programmierung ALP I. λ Kalkül. Teil 2 WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I λ Kalkül Teil 2 WS 2012/2013 Lokale Variablennamen Haskell: let x = exp1 in exp2 Lambda: λ exp1. exp2 Einfache Regel: Der Geltungsbereich eines Lambda-Ausdrucks erstreckt sich soweit wie möglich

Mehr

Einführung in die funktionale Programmierung

Einführung in die funktionale Programmierung Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 17. Oktober 2006 Einführung in Haskell: Syntax, Reduktionen, Kernsprachen Haskell,

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep 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

Mehr

Funktionale Programmierung - Grundlagen -

Funktionale Programmierung - Grundlagen - Funktionale Programmierung - Grundlagen - λ Logische und funktionale Programmierung - Universität Potsdam - M. Thomas - Funkt. Programmierung Gundlagen - IX.1 λ-ausdrücke 1) Variablen: x, y, z,...v,v 1,...

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

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

Mehr

Lambda-Kalkül. Philipp Meyer. 28. April 2009

Lambda-Kalkül. Philipp Meyer. 28. April 2009 Lambda-Kalkül Philipp Meyer 28. April 2009 1 Einleitung Der λ-kalkül ist eine von Alonzo Church und Stephen Kleene in den 1930er Jahren eingeführtes Modell zur Beschreibung berechenbarer Funktionen. Es

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver 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

Mehr

Einführung in die funktionale Programmierung

Einführung in die funktionale Programmierung Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 28. Oktober 2008 Einführung in Haskell: Syntax, Reduktionen, Kernsprachen Haskell,

Mehr

Lambda-Kalkül. Dr. Eva Richter. 27.April 2012

Lambda-Kalkül. Dr. Eva Richter. 27.April 2012 Lambda-Kalkül Dr. Eva Richter 27.April 2012 1 / 32 Historisches um 1200 Einführung des Zahlensystems in Europa u.a. durch Fibonacci; ist charakterisiert durch ein kleine Menge von Ziffern, deren Wert von

Mehr

Der untypisierte Lambda-Kalkül

Der untypisierte Lambda-Kalkül Der untypisierte Lambda-Kalkül Fabian Immler 08.05.2008 1 Motivation und Einführung Der Lambda-Kalkül ist ein formales System zur Beschreibung von Funktionen, welches Funktionsdefinition sowie das Auswerten

Mehr

Funktionen und sprachliche Bedeutungen

Funktionen und sprachliche Bedeutungen Einführung in die Semantik,4. Sitzung Mehr zu Funktionen / Mengen, Relationen, Göttingen 1. November 2006 Mengen und sprachliche Bedeutungen Abstraktion und Konversion Rekursion Charakteristische Funktionen

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Dr. Eva Richter / Holger Arnold Universität Potsdam, Theoretische Informatik, Sommersemester 2008 Übungsblatt 3 (Version 4) Abgabetermin: 13.5.2008, 12.00 Uhr Der λ-kalkül Da

Mehr

Der untypisierte Lambda-Kalkül

Der untypisierte Lambda-Kalkül Der untypisierte Lambda-Kalkül Kern einer minimalen Programmiersprache Sabine Rieder Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen des Lambda-Kalküls 2 2.1 Syntax.....................................

Mehr

Der einfach getypter Lambda-Kalkül

Der einfach getypter Lambda-Kalkül Der einfach getypter Lambda-Kalkül Typprüfung und Typinferenz Tobias Nipkow und Steffen Smolka Technische Universität München 1 Einleitung 2 Explizit getypter λ-kalkül 3 Implizit getypter λ-kalkül Statische

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. Ackermannfunktion Malte Helmert Gabriele Röger Universität Basel 28. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale Sprachen III. Berechenbarkeitstheorie

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reduktion. Komplexitätsklassen.

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reduktion. Komplexitätsklassen. 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

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs) ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit 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

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Berechenbarkeitstheorie 1. Vorlesung

Berechenbarkeitstheorie 1. Vorlesung Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 15/16 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Zentrale Themen

Mehr

1 Geschichte. 2 Syntax und Konzepte. Lamdba-Kalkül

1 Geschichte. 2 Syntax und Konzepte. Lamdba-Kalkül 1 Geschichte 1673 Gottfried Wilhelm Leibniz entwickelt eine mechanische Rechenmaschine, beginnt zu träumen: Gibt es eine universelle Sprache, in der alle Probleme dargestellt werden können? Gibt es eine

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 13. LOOP-, WHILE- und GOTO-Berechenbarkeit Malte Helmert Gabriele Röger Universität Basel 9. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Erzeugende Grammatiken akzeptierende Automaten.

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Erzeugende Grammatiken akzeptierende Automaten. 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

Mehr

Inferenzmethoden. Einheit 18. Logik höherer Stufe

Inferenzmethoden. Einheit 18. Logik höherer Stufe Inferenzmethoden Einheit 18 Logik höherer Stufe 1. Syntax und Semantik 2. Simulation mathematischer Konstrukte 3. Beweisführung in Logik höherer Stufe Logik höherer Stufe Logik erster Stufe hat nur einfache

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Übungsblatt 3. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 3. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 3 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 21. November 2017 Abgabe 5. Dezember 2017, 11:00 Uhr

Mehr

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger 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: http://algo.rwth-aachen.de/lehre/ws1718/buk.php

Mehr

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,

Mehr

Das Halteproblem für Turingmaschinen

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

Mehr

Reduktionssysteme und Termersetzungssysteme

Reduktionssysteme und Termersetzungssysteme Reduktionssysteme und Termersetzungssysteme Untersuchung von Berechnungen mittels Reduktionsregeln Simplifikation von: Datenstrukturen / Termen usw. Erkennen von gleichen Objekten durch Normalisierung

Mehr

Abschluss unter Operationen

Abschluss unter Operationen Abschluss unter Operationen Definition Definition: Es seien L eine Menge von Sprachen und τ eine n-stellige Operation, die über Sprachen definiert ist. Dann heißt L abgeschlossen unter τ, wenn für beliebige

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Präsenzübung Berechenbarkeit und Komplexität

Präsenzübung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 2013/14 Prof. Dr. Berthold Vöcking 28.01.2014 Kamal Al-Bawani Benjamin Ries Präsenzübung Berechenbarkeit und Komplexität Musterlösung Name:...................................

Mehr

Berechenbarkeit und Komplexität Vorlesung 10

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

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer, Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen

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

Das Postsche Korrespondenzproblem

Das Postsche Korrespondenzproblem Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik von Dirk Hoffmann 2., aktualisierte Auflage Hanser München 2011 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 42639 9 Zu Leseprobe schnell und portofrei erhältlich bei

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im

Mehr

Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Theoretische Informatik. Thema: von. Paul Krüger

Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Theoretische Informatik. Thema: von. Paul Krüger 1 Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Theoretische Informatik Thema: - Kalkül von Paul Krüger Betreuer: Prof. Dr. Heribert Vollmer Das Rahmenthema ist " Berechenbarkeit

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

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle smethoden der Informatik Kapitel 2: Logikkalküle Prädikatenlogik 1. Stufe Norbert Fuhr Gudrun Fischer 29.11.2005 Organisatorisches Organisatorisches Klausur Termin: 20.2.2006, 13-15 Uhr, Audimax Anmeldung

Mehr

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 5. Aussagenlogik Normalformen Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Normalformen Definition: Literal Atom (aussagenlogische

Mehr

Kapitel 5: Applikative Programmierung

Kapitel 5: Applikative Programmierung Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht

Mehr

Beweisen mit Semantischen Tableaux

Beweisen mit Semantischen Tableaux Beweisen mit Semantischen Tableaux Semantische Tableaux geben ein Beweisverfahren, mit dem ähnlich wie mit Resolution eine Formel dadurch bewiesen wird, dass ihre Negation als widersprüchlich abgeleitet

Mehr

Syntax von Programmiersprachen

Syntax 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

Mehr

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle smethoden der Informatik Kapitel 2: Logikkalküle Prädikatenlogik 1. Stufe Norbert Fuhr Gudrun Fischer 29.11.2005 Organisatorisches Organisatorisches Klausur Termin: 20.2.2006, 13-15 Uhr, Audimax Anmeldung

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

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 10. Prädikatenlogik Substitutionen und Unifikation Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Substitutionen Definition:

Mehr

Syntax von Programmiersprachen

Syntax 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

Mehr

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung Theoretische Informatik und Logik Übungsblatt (26S) en Aufgabe. Sei L = {w#w r w {, } }. Geben Sie eine deterministische Turingmaschine M an, welche die Sprache L akzeptiert. Wählen Sie mindestens einen

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Formale Semantik. λ Typenlogik. Tutorium WiSe 2013/ November Sitzung: Folien freundlicherweise bereitgestellt von Andreas Bischoff

Formale Semantik. λ Typenlogik. Tutorium WiSe 2013/ November Sitzung: Folien freundlicherweise bereitgestellt von Andreas Bischoff Formale Semantik Tutorium WiSe 2013/14 20. November 2013 3. Sitzung: λ Typenlogik Folien freundlicherweise bereitgestellt von Andreas Bischoff Grenzen der Typenlogik Das letzte Mal: lesen(duden*) ( Eigenschaft

Mehr