Gliederung. Programmierparadigmen. Mathematische Funktionen: Mathematische Funktionen: Lambda-Kalkül
|
|
- Anton Langenberg
- vor 6 Jahren
- Abrufe
Transkript
1 Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2013, 9. Juli 2013, c D.Rösner 1 Einführung Arithmetik Boolesche Operationen Datenstrukturen Kontrollstrukturen D. Rösner PGP D. Rösner PGP Mathematische Funktionen: Mathematische Funktionen: math.: Funktion ist (eindeutige) Abbildung einer Menge (Urbild, domain) in eine andere Menge (Bildbereich, range) z.b. sqrt: R R plus: [R R] R totale Funktion: alle Elemente des Urbildbereiches besitzen ein Bild andernfalls: partielle Funktion Beispiel: Sei f die Funktion, die jeder natürlichen Zahl a die kleinste natürliche Zahl b zuordnet, für die gilt, dass die Ziffern von a in dezimaler Repräsentation in der dezimalen Expansion von π zum ersten Mal nach b Ziffern rechts vom Dezimalpunkt auftauchen z.b. a = 59, π = 3,14159, f (59) = 4 Frage: Ist f total oder partiell? D. Rösner PGP D. Rösner PGP
2 Funktionen als Mengen: Funktionen sind math. Objekte: Funktionen sind Teilmengen des kartesischen Produkts aus Urbild- und Bildbereich z.b. sqrt [R R] plus [R R R] in Mengennotation: sqrt {(x, y) R R y = x 2 } plus {(x, y, z) R R R z = x + y} beachte: dies sind intensionale Darstellungen, aber keine Berechnungsvorschriften Wenn f Funktion von A nach B, dann ist f Teilmenge von A B, m.a.w.: f ist Element der Potenzmenge von A B, d.h. der Menge aller Teilmengen von A B, kurz: 2 A B wegen der geforderten Eindeutigkeit sind nicht alle Elemente von 2 A B Funktionen von A nach B D. Rösner PGP D. Rösner PGP Funktionen sind math. Objekte: Funktionsraum A B: diejenigen Elemente von 2 A B, bei denen in jedem Paar die erste Komponente eindeutig (A B) 2 A B höhere Funktionen in Mengennotation, z.b. compose {(f, g, h) x R : h(x) = f (g(x))} compose [(R R) (R R)] (R R) Lambda-Ausdruck: rekursive Definition Lambda-Ausdruck ist entweder 1 Name 2 Lambda-Abstraktion aus λ, Name, Punkt und Lambda-Ausdruck 3 Funktionsanwendung aus zwei nebeneinander stehenden n 4 geklammerter Lambda-Ausdruck D. Rösner PGP D. Rösner PGP
3 meist zusätzliche Vorrangregeln: Funktionsanwendung linksassoziativ, d.h. f A B interpretiert als (f A) B (und nicht f (A B)) Anwendung hat höhere Präzedenz als Abstraktion, d.h. λ x.ab interpretiert als λ x.(a B) (und nicht (λ x.a)b) kontextfreie Grammatik (CFG) für mit minimaler Klammernzahl expr name number λ name. expr func arg func name (λ name. expr) func arg arg name number (λ name. expr) (func arg) Bemerkung: es wird unterschieden zwischen n, die als Funktionen (s. func), und solchen, die als Argumente verwendet werden (s. arg). D. Rösner PGP D. Rösner PGP mit λ werden formale Parameter eingeführt der mit λ eingeführte Name wird im nachfolgenden Ausdruck als gebunden bezeichnet und der Ausdruck ist der Gültigkeitsbereich (Skopus) für diesen Namen eine nicht gebundene Variable heißt frei freie Variable müssen in einem umgebenden Skopus gebunden sein Beispiel: in λ x.λ y. times x y ist x gebunden, in λ y. times x y ist x frei Ein Name < name > ist frei in einem λ-ausdruck, wenn einer der drei Fälle zutrifft: < name > ist frei in < name >. < name > ist frei in λ < name 1 >. < exp >, wenn der Identifikator < name > < name 1 > und < name > ist frei in < exp > < name > ist frei in E 1 E 2 wenn < name > ist frei in E 1 oder < name > ist frei in E 2 s.a. [Roj98] D. Rösner PGP D. Rösner PGP
4 Ein Name < name > ist gebunden in einem λ-ausdruck, wenn einer der zwei Fälle zutrifft: < name > ist gebunden in λ < name 1 >. < exp >, wenn der Identifikator < name >=< name 1 > oder < name > ist gebunden in < exp > < name > ist gebunden in E 1 E 2 wenn < name > ist gebunden in E 1 oder < name > ist gebunden in E 2 ein Identifikator kann in einem Ausdruck sowohl frei als auch gebunden vorkommen Beispiel: (λx.xy)(λy.y) s.a. [Roj98] zur vereinfachten Referenz können Ausdrücken Namen (im Sinne von Synonymen oder Kurzschreibweisen) gegeben werden z.b. square λx.times x x identity λx.x const7 λx.7 hypot λx.λy. sqrt (plus (square x) (square y)) lies: ist Abkürzung für D. Rösner PGP D. Rösner PGP Rechnen mit dem Rechnen mit dem Zum Rechnen mit dem genügen im wesentlichen drei : β-reduktion α-konversion η-reduktion β-reduktion: Für jede λ-abstraktion λx.e und jeden Ausdruck M: (λx.e)m β E[M \ x] Dabei bezeichnet E[M \ x] den Ausdruck E mit allen freien Vorkommen von x ersetzt durch M. Anwendungsbedingung: β-reduktion ist nicht erlaubt, wenn irgendwelche in M freien Variablen in E[M \ x] gebunden würden. D. Rösner PGP D. Rösner PGP
5 Rechnen mit dem Rechnen mit dem Anwendungsbedingung der β-reduktion: verhindert sog. Variablenergreifen (engl. variable capture) Beispiel: würde der Ausdruck (λx.(λy.xy))y ohne Beachtung der Anwendungsbedingung β-reduziert, so ergäbe sich (λy.yy) das korrekte Resultat ergibt sich, wenn zunächst eine Umbenennung vorgenommen wird (λx.(λy.xy))y (λx.(λt.xt))y (λt.yt) s.a. [Roj98] α-konversion: Für jede λ-abstraktion λx.e und jede Variable y, die keine freien Vorkommen in E hat: λx.e α λy.e[y \ x] η-reduktion: Für jede λ-abstraktion λx.e, wobei E von der Form F x und x hat keine freien Vorkommen in F: λx.fx η F (überflüssige λ-abstraktionen eliminieren) D. Rösner PGP D. Rösner PGP Bemerkungen zu den : Rechnen mit dem β-reduktion: ähnelt Parameterübergabe durch call-by-name; unbeabsichtigtes Ergreifen (capture) einer Variable wird durch die Anwendungsbedingung verhindert α-konversion: Umbenennungen, damit β-reduktion möglich η-reduktion: von geringerer Bedeutung wenn square wie oben definiert, dann mit η-reduktion erlaubt: λx.square x η square zusätzlich für Arithmetik (falls nicht direkt innerhalb des Kalküls behandelt) : δ-reduktion ein Ausdruck der Form op x y mit x, y numerische Literale und op aus kleiner Menge von Standardfunktionen kann durch arithmetischen Wert ersetzt werden Beispiele: plus 2 3 δ 5 minus 5 2 δ 3 times 2 3 δ 6 D. Rösner PGP D. Rösner PGP
6 Rechnen mit dem Rechnen mit dem β-reduktion und α-konversion (und ggf. η-reduktion) werden wiederholt angewendet, bis keine weitere Reduktion möglich ist und der λ-ausdruck sich in seiner einfachsten Form befindet Church-Rosser [1936]: einfachste Formen sind eindeutig jede Folge von Reduktionen, die in einem nicht weiter reduzierbaren Ausdruck endet, produziert das gleiche Resultat beachte: Termination ist nicht garantiert Beispiel: (λx.xx)(λx.xx) β... Reduktion in Normalordnung: wenn mehr als eine β-reduktion möglich, wird hierbei diejenige gewählt, deren λ am weitesten links im gesamten Ausdruck steht Beispiel: (λf.λg.λh.fg(hh))(λx.λy.x)h(λx.xx) β... D. Rösner PGP D. Rösner PGP Rechnen mit dem Rechnen mit dem Arithmetik mit natürlichen Zahlen lässt sich wie folgt im λ-kalkül darstellen: benötigt wird eine Darstellung für Null sowie eine Darstellung für Nachfolger-Funktion (engl. successor) n-fache Anwendung der Nachfolger-Funktion auf Null repräsentiert dann die jeweilige Zahl n die so dargestellten Zahlen werden auch als Church-Numerale bezeichnet eine Darstellung für natürliche Zahlen im λ-kalkül 0 λs.(λz.z) auch geschrieben als: λsz.z die Definitionen weiterer Zahlen: 1 λsz.s(z) 2 λsz.s(s(z)) 3 λsz.s(s(s(z)))... D. Rösner PGP D. Rösner PGP
7 Rechnen mit dem Rechnen mit dem die Nachfolger-Funktion lässt sich durch folgenden Kombinator darstellen: S λwyx.y(wyx) Bemerkung: als Kombinatoren werden λ-ausdrücke ohne freie Variable bezeichnet Frage: Was ergibt die Anwendung von S auf 0, 1,...? die Addition zweier Zahlen m und n wird zurückgeführt auf die m-fach wiederholte Anwendung der Nachfolger-Funktion auf die Zahl n Beispiel: wird berechnet durch die Reduktion von (λsz.s(s(z)))(λwyx.y(wyx))(λuv.u(u(u(v)))) D. Rösner PGP D. Rösner PGP Rechnen mit dem Rechnen mit dem die Multiplikation zweier Zahlen m und n wird realisiert durch die Anwendung der Funktion λxyz.x(yz) auf die Zahlen m und n Beispiel: 2 2 wird berechnet durch die Reduktion von (λxyz.x(yz))2 2 Beispiel: 2 2 wird berechnet durch die Reduktion (hier in Normalordnung) von (λxyz.x(yz))2 2 β λz.2 (2 z) Def.2 λz.(λst.s(s t))(2 z) β λz.λt.(2 z)(2 z t) Def.2 λz.λt.((λuv.u(u v))z)(2 z t) β λz.λt.(λv.z(z v))(2 z t)... D. Rösner PGP D. Rösner PGP
8 Rechnen mit dem Rechnen mit dem Beispiel: cont.... β λz.λt.z(z (2 z t))) Def.2 λz.λt.z(z ((λuv.u(u v)) z t)) β λz.λt.z(z ((λv.z (z v)) t)) β λz.λt.z(z (z (z t))) Def.4 4 auch die booleschen Werte T und F werden durch Funktionen repräsentiert T λxy.x F λxy.y als Funktionen werden die beiden Wahrheitswerte auch als select_first bzw. select_second bezeichnet, [Sco00] D. Rösner PGP D. Rösner PGP Rechnen mit dem Rechnen mit dem die logischen Verknüpfungen lassen sich dann wie folgt definieren: λxy.xy(λuv.v) λxy.xyf λxy.x(λuv.u)y λxy.xty Negation eines Arguments ergibt sich mit λx.x(λuv.v)(λab.a) λx.xft Negation angewendet auf T ergibt T λx.x(λuv.v)(λab.a) (λcd.c) reduzierbar zu: D. Rösner PGP D. Rösner PGP
9 Rechnen mit dem Rechnen mit dem Paare (a, b) lassen sich als Funktion wie folgt darstellen: λz.zab die Selektion des ersten bzw. zweiten Elements des Paares erfolgt dann durch Anwendung dieser Funktion auf T bzw. F (λz.zab)t =... (λz.zab)f =... mit Paaren lassen sich weitere nützliche Funktionen definieren Beispiel: Vorgängerfunktion (engl. predecessor) Grundidee: kreiere Paare der Form (n, n 1) und selektiere das zweite Element Umsetzung: die folgende Funktion ordnet einem Paar (n, n 1) das Paar (n + 1, n) zu: Φ (λpz.z(s(pt))(pt)) D. Rösner PGP D. Rösner PGP Rechnen mit dem Rechnen mit dem die Vorgängerfunktion P gewinnen wir dann mit folgendem Vorgehen: wende Φ n-mal auf das Paar λz.z00 an und selektiere dann das zweite Element des entstandenen Paares im λ-kalkül: P λn.nφ(λz.z00)f eine bedingte Verzweigung lässt sich als Funktion wie folgt darstellen: if λc.λt.λe.cte D. Rösner PGP D. Rösner PGP
10 Rechnen mit dem Literatur: I das erstaunlichste Ergebnis über den λ-kalkül ist die Darstellbarkeit rekursiver Funktionen eine zentrale Rolle dabei spielt der Operator Y, definiert durch: Y λh.(λx.h(xx))(λx.h(xx)) eine besonders detaillierte Herleitung von Y liefert [Gab01] Chris Barker. Lambda Tutorial, interactive tutorial. cb125/lambda/. Henk Barendregt and Erik Barendsen. Introduction to Lambda Calculus, revised; Kostas Chatzikokolakis. LCI - A lambda calculus interpreter, an open source interpreter. D. Rösner PGP D. Rösner PGP Literatur: II Literatur: III Richard P. Gabriel. The Why of Y, Achim Jung. A short introduction to the Lambda Calculus, axj/pub/papers/lambdacalculus.pdf. Raul Rojas. A Tutorial Introduction to the Lambda Calculus, 1997/1998. tutorial notes; Michael Lee Scott. Programming Language Pragmatics. Academic Press, San Diego, CA, USA, ISBN D. Rösner PGP D. Rösner PGP
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
MehrInterpreter (Hilfsfunktionen)
Interpreter (Hilfsfunktionen) -- Berechnet die Liste der gebundenen Variablen boundlist :: Expr -> [String] boundlist (Var x) = [] boundlist (Lambda x e) = x : (boundlist e) boundlist (App e1 e2) = (boundlist
MehrTheoretische 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
MehrFunktionale 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.......................
MehrFunktionale 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
Mehr1 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
MehrDer 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
MehrLambda-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
Mehr3 Exkurs: Der λ-kalkül
3 Exkurs: Der λ-kalkül Alonso Churchs λ-kalkül (ca. 1940) ist der formale Kern jeder funktionalen Programmiersprache. Der λ-kalkül ist eine einfache Sprache, mit nur wenigen syntaktischen Konstrukten und
MehrAlgorithmen und Datenstrukturen I
Algorithmen und Datenstrukturen I Einführung in Haskell (I) D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2009/10, 12. Oktober
MehrDer 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.....................................
MehrProgrammierparadigmen
Programmierparadigmen in Scheme D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2013, 17. Juni 2013, c 2011-13 D.Rösner D.
MehrEinführung in das λ-kalkül
Einführung in das λ-kalkül Max Wagner IPD Snelting 1 3.11.2017 Max Wagner - Einführung in das λ-kalkül IPD KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Syntax Abstrakte Syntax:
MehrTheoretische Informatik II
Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Wintersemester 2007/2008 B. Beckert Theoretischen Informatik II: WS 2007/08 1 / 179 Dank Diese Vorlesungsmaterialien basieren
MehrÜbung zur Vorlesung Automatisierte Logik und Programmierung I
Übung zur Vorlesung Automatisierte Logik und Programmierung I Prof. Chr. Kreitz Universität Potsdam, Theoretische Informatik Wintersemester 2008/09 Blatt 3 Abgabetermin: 26.11.08 nach der Übung Das dritte
MehrProgrammierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 22. Juni 2009, c 2009 D.Rösner D. Rösner PGP 2009...
MehrGliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme
Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,
MehrGliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen
Gliederung Programmierparadigmen Programmieren in Prolog D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 26. April
MehrProgrammierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...
MehrLINCOS Lingua Cosmica. December 14 nd, 2011 Wolfgang Sakuler
Lingua Cosmica December 14 nd, 2011 Wolfgang Sakuler Einleitung lat. Lingua Cosmica : eine auf mathematischer Basis konstruierte Sprache vom holländ. Mathematiker Hans Freudenthal (1905-1990) 1960 entwickelt,
MehrUniversitä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
MehrFormale 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
MehrFunktionale 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,...
MehrGTI. Hannes Diener. 18. Juni. ENC B-0123,
GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.
MehrProgrammierparadigmen
in Haskell Programmierparadigmen in Haskell D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 4. April 2011, c 2011 D.Rösner
MehrEinfü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Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Semantische Modelle nebenläufiger Programmiersprachen. Einleitung
Stand der Folien: 24. Januar 2012 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Semantische Modelle nebenläufiger Programmiersprachen 1 2 Call-by-Name
MehrVortrag. Vortrag im Rahmen der Master-Vorlesung Semantik von Programmiersprachen an der FH München, Fachbereich Informatik
Vortrag β- and η-conversion Vortrag im Rahmen der Master-Vorlesung Semantik von Programmiersprachen an der FH München, Fachbereich Informatik von Stefan Hertel (sh_ccbiker@gmx.de Thomas Wöllert (thomas@woellert.net
MehrFunktionen 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
MehrLambda-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
MehrGliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension
Gliederung Algorithmen und Datenstrukturen I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10, 16. Oktober 2009, c
MehrDer 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
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
MehrWS 2012/2013. Robert Giegerich. 21. November 2012
WS 2012/2013 Robert AG Praktische Informatik 21. November 2012 Funktionen als Bürger erster Klasse Funktionen definieren kann man in jeder Programmiersprache. Eine funktionalen Programmiersprache erlaubt
MehrGliederung. Funktionale Programmierung. Pattern matching in Haskell. Pattern matching in ERLANG. Materialien zur Vorlesung
Gliederung Funktionale Programmierung Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 7.
Mehr3.4 Struktur von Programmen
3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*
MehrGliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest
Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,
Mehr3.1 Reservierte Wörter
3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der
MehrGrundlagen der Programmierung 2. Operationale Semantik
Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung
MehrWS 2013/2014. Robert Giegerich. 11. Dezember 2013
WS 2013/2014 Robert AG Praktische Informatik 11. Dezember 2013 höherer Ordnung Worum geht es heute? In Haskell gibt es, die als Argument haben oder als Ergebnis liefern. Diese nennt man höherer Ordnung.
MehrMathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16
Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16 15. Oktober 2015 Zu der Vorlesung gibt es ein Skript, welches auf meiner Homepage veröffentlicht
MehrObjektorientierte Programmierung mit C++ (WS 2016/2017)
Institut für Numerische Mathematik Dr. Andreas F. Borchert und Dr. Michael C. Lehn 26. Januar 2017 Blatt 12 Objektorientierte Programmierung mit C++ (WS 2016/2017) Abgabe bis zum 2. Februar 2017, 16:00
MehrAusdrücke (1) Grundlegende Eigenschaften
Ausdrücke () Grundlegende Eigenschaften bestehen aus Literalen, Konstanten, Variablen und Operatoren einfachster Ausdruck ist das Semikolon, es bewirkt nichts. Ausdrücke werden mit einem Semikolon abgeschlossen.
MehrWS 2013/2014. Robert Giegerich. 11. Dezember 2013
WS 2013/2014 Robert AG Praktische Informatik 11. Dezember 2013 höherer Ordnung Worum geht es heute? In Haskell gibt es, die als Argument haben oder als Ergebnis liefern. Diese nennt man höherer Ordnung.
MehrGrundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
MehrInferenzmethoden. 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
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Boolsche Algebra 3.3 Induktion und Rekursion Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 46 / 708 Überblick
MehrEinfü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,
MehrFormale Methoden 1. Gerhard Jäger 7. November Uni Bielefeld, WS 2007/2008 1/18
1/18 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 7. November 2007 2/18 Geordnete Paare Mengen sind ungeordnet: {a, b} = {b, a} für viele Anwendungen braucht
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 26. März 2009, c 2009 D.Rösner D.
MehrMathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18
Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18 19. Oktober 2017 1/27 Zu der Vorlesung gibt es ein Skript, welches auf meiner Homepage
MehrÜberblick. Ausdrücke. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Ausdrücke
Überblick 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Ausdrücke 3 Mathematische Grundlagen 3 Ausdrücke Einf. Progr. (WS 08/09) 148 Ausdrücke Betrachten wir folgende
MehrAnalysis für Informatiker
Analysis für Informatiker Wintersemester 2017/2018 Carsten.Schneider@risc.jku.at 1 Bemerkung: Dies ist kein Skript, welches den gesamten Inhalt der Vorlesung abdeckt. Es soll den Studierenden aber während
MehrSeminar Mathematische Logik L-Strukturen und Syntax der Prädikatenlogik
Seminar Mathematische Logik L-Strukturen und Syntax der Prädikatenlogik Linda Raabe 7. März 2012 1 L-Strukturen Definition 1.1 (Struktur) Eine Struktur A ist eine nichtleere Trägermenge A zusammen mit
MehrDie Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.
4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit
MehrKapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität
MehrSatzsemantik. Semantik und Pragmatik. Satzsemantik. Satzsemantik
Satzsemantik 8. Mai 2007 Gerhard Jäger Erklärungsanspruch der Satzsemantik Wahrheitsbedingungen von Aussagensätzen Bedeutungsbeziehungen zwischen (Aussage-)Sätzen Kompositionale Berechnung von Satzbedeutungen
MehrSemantik und Pragmatik
1/17 Semantik und Pragmatik 15. Mai 2006 Gerhard Jäger Satzsemantik 2/17 Erklärungsanspruch der Satzsemantik Wahrheitsbedingungen von Aussagensätzen Bedeutungsbeziehungen zwischen (Aussage-)Sätzen Kompositionale
Mehr4. Induktives Definieren - Themenübersicht
Induktives Definieren 4. Induktives Definieren - Themenübersicht Induktives Definieren Natürliche Zahlen Operationen auf natürlichen Zahlen Induktive Algorithmen Induktiv definierte Mengen Binärbäume Boolesche
MehrAlgorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 22 Exkurs: Formale Sprachen Im Kapitel
MehrInformatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
MehrKapitel 3: Boolsche Algebra
Kapitel 3: Boolsche Algebra 1. Mengen 2. Relationen und Abbildungen 3. Boolsche Algebra 4. Induktion und Rekursion Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 2: Mathematische Grundlagen 3. Boolsche Algebra
MehrAlgorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale
MehrElemente in Φ werden Wurzeln genannt. Bemerkung 3.2. (a) Zu einem Wurzelsystem können wir immer eine Spiegelungsgruppe definieren
3. Wurzelsysteme Als erstes führen wir den Begriff eines Wurzelsystems ein. Definition 3.1 (Wurzelsystem). Eine endliche Teilmenge Φ V {0} heißt Wurzelsystem falls gilt: (R1) Φ Rα = {±α} für α Φ, (R2)
MehrEinführung in Berechenbarkeit, Komplexität und Formale Sprachen
Einführung in Berechenbarkeit, Komplexität und Formale Sprachen V8, 5.11.09 Willkommen zur Vorlesung Einführung in Berechenbarkeit, Komplexität und Formale Sprachen Friedhelm Meyer auf der Heide 1 Rückblick
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick
MehrKapitel 15 Lineare Gleichungssysteme
Kapitel 15 Lineare Gleichungssysteme Kapitel 15 Lineare Gleichungssysteme Mathematischer Vorkurs TU Dortmund Seite 1 / 27 Kapitel 15 Lineare Gleichungssysteme Definition 15.1 (Lineares Gleichungssystem
Mehr4. Zahlendarstellungen
121 4. Zahlendarstellungen Wertebereich der Typen int, float und double Gemischte Ausdrücke und Konversionen; Löcher im Wertebereich; Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik;
Mehr2. Ganze Zahlen int unsigned int
88 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp
MehrVorlesung Objektorientierte Programmierung Klausur
Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe
MehrZentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)
WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 30. Oktober 2013 ZÜ DS ZÜ
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Mengen)
WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
MehrHöhere Programmiersprachen
Höhere Programmiersprachen Prof. Dr. Dr. h.c. Gerhard Goos Dipl.-Inform. Sebastian Hack (ggoos hack)@ipd.info.uni-karlsruhe.de Institut für Programmstrukturen und Datenorganisation Universität Karlsruhe
Mehr1 Formen und äußeres Differential
1 Formen und äußeres Differential Wir betrachten den n-dimensionalen reellen Raum R n = { x = x 1,...,x n ) : x i R für i = 1,...,n }. Definition 1.1 Ein Tangentialvektor an R n im Punkt x R n ist ein
Mehr2. Ganze Zahlen int unsigned int
99 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp
Mehr1 Erste Schritte in Scheme
1 Erste Schritte in Scheme Die Programmiersprache Scheme geboren 1975 Eltern: Gerald Jay Sussman and Guy Lewis Steele Jr. Ort: Massachusetts Institute of Technology aktuelle Beschreibung: R6RS (September
MehrAnalysis I - Notizen 1. Daniel Lenz Jena - Wintersemester 2016
Analysis I - Notizen 1 Daniel Lenz Jena - Wintersemester 2016 1 Es handelt sich nicht um ein Skriptum zur Vorlesung. Besten Dank an alle, die zu Verbesserungen früherer Notizen zur Analysis I beigetragen
MehrDer untypisierte Lambda-Kalkül als Programmiersprache
Proseminar: Programmiersprachen bei Prof. Tobias Nipkow Der untypisierte Lambda-Kalkül als Programmiersprache von Benjamin Peherstorfer betreut von Prof. Tobias Nipkow 23. November 2006 Inhaltsverzeichnis
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Ausdrücke 3 Mathematische Grundlagen Einf. Progr. (WS 08/09) 102 Überblick 3.
Mehr3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
Mehr3. Ganze Zahlen int unsigned int
110 3. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp
MehrEinführung in die mathematische Logik
Prof. Dr. H. Brenner Osnabrück SS 2014 Einführung in die mathematische Logik Vorlesung 12 Wir haben bisher nur Axiomensysteme in Sinne einer beliebigen Ausdrucksmenge Γ L S gesprochen, die im Allgemeinen
Mehr2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int
74 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit 75 // Program: fahrenheit.cpp
MehrProgrammierparadigmen
Programmierparadigmen Teil 1: Funktionale Programmierung Kapitel 3 Lambda Kalkül (Dieses Kapitel orientiert sich an Material von Prof. Dr.-Ing. Snelting, KIT) http://www.tu-ilmenau.de/fakia/functional.html
MehrMünchner Volkshochschule. Planung. Tag 08
Planung Tag 08 Prof.Dr. Nils Mahnke Mathematischer Vorkurs Folie: 181 Vektoren Analytische Darstellung: Jedem Punkt im Raum kann ein Ortsvektor zugeordnet werden. P: (6; 5) R 2 P(6; 5) a = OP = 6 5 a Vektoren
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Woche 4 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Modus Ponens A B B A MP Axiome für
MehrWir haben eine Beziehung zwischen entscheidbar und rekursiv aufzählbar hergeleitet.
Rückschau 12.11.04 Wir haben eine Beziehung zwischen entscheidbar und rekursiv aufzählbar hergeleitet. Wir haben das Prinzip der Diagonalisierung eingeführt und mit DIAG eine erste nicht rek. aufz. Sprache
MehrBeschreibung von Werten: Beschreibung von Werten: (2) Begriffsklärung: (Ausdruck, expression) (2) Begriffsklärung: (Ausdruck, expression)
Beschreibung von Werten: Beschreibung von Werten: (2) mittels Konstanten oder Bezeichnern für Werte: 23 " Ich bin eine Zeichenreihe" True x durch direkte Anwendung von Funktionen: abs (-28382) "Urin" ++
MehrKapitel 1. Aussagenlogik
Kapitel 1 Aussagenlogik Einführung Mathematische Logik (WS 2012/13) Kapitel 1: Aussagenlogik 1/17 Übersicht Teil I: Syntax und Semantik der Aussagenlogik (1.0) Junktoren und Wahrheitsfunktionen (1.1) Syntax
Mehr$Id: matrix.tex,v /12/02 21:08:55 hk Exp $ $Id: vektor.tex,v /12/05 11:27:45 hk Exp hk $
$Id: matrixtex,v 14 2008/12/02 21:08:55 hk Exp $ $Id: vektortex,v 12 2008/12/05 11:27:45 hk Exp hk $ II Lineare Algebra 6 Die Matrixmultiplikation 63 Inverse Matrizen und reguläre lineare Gleichungssysteme
Mehr5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:
MehrWS 20013/14. Diskrete Strukturen
WS 20013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
MehrMengen, Funktionen und Logik
Wirtschaftswissenschaftliches Zentrum Universität Basel Mathematik für Ökonomen 1 Dr. Thomas Zehrt Mengen, Funktionen und Logik Literatur Referenz: Gauglhofer, M. und Müller, H.: Mathematik für Ökonomen,
Mehr3 Syntax von Programmiersprachen
3 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 Programmiersprache Festlegung, wie Programme
MehrLogische Grundlagen der Mathematik, WS 2014/15
Logische Grundlagen der Mathematik, WS 2014/15 Thomas Timmermann 12. November 2014 Darstellung natürlicher Zahlen durch Mengen 1. Wie können wir natürliche Zahlen durch Mengen darstellen? Idee 0 = und
Mehr3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
Mehr