Prinzipien der funktionalen Programmierung
III.1 Prinzipien der funktionalen Programmierung - 1 -Christoph Santschi – dipl...
Kenntnis verschiedener Sprachen
 Eigene Ideen bei der Software-Entwicklung
können besser ausgedrückt werden
 Nötig, um i...
Übersicht
III.1 Prinzipien der funktionalen Programmierung - 3 -Christoph Santschi – dipl. natw. ETHZ
Imperative Sprachen ...
Wichtige Programmiersprachen
prozedural objektorientiert funktional logisch
PL/1
1970
C
ML
Ada1980
C++
EiffelModula-3
1990...
Imperative Programmierung (Java)
Eingabe: Eine Liste x
Ausgabe: Länge der Liste x
Algorithmus:
1. Setze n = 0.
2. Falls x ...
Kennzeichen imperativer Programmierung
 Programm besteht aus einzelnen Anweisungen,
die nacheinander abgearbeitet werden....
FunktionaleProgrammierung(Haskell)
A. Falls die Liste x leer ist, so ist len(x) = 0.
B. Falls die Liste x nicht leer ist u...
Ausführung funktionaler Programme
len [] = 0
len (kopf : rest) = 1 + len rest
len [15, 70, 36]
= 1 + len [70, 36]
= 1 + 1 ...
Kennzeichen funktionaler Programme
 Rekursion statt Schleifen
 Keine Seiteneffekte (referentielle Transparenz)
 Funktio...
FunktionaleProgrammierung(Haskell)
 Haskell-Interpreter Hugs
 Eingabe: Auszuwertender Ausdruck
 Ausgabe: Ergebnis des a...
Nächste SlideShare
Wird geladen in …5
×

Prinzipien funktionaler programmierung

345 Aufrufe

Veröffentlicht am

Prinzipien funktionaler Programmierung. Vergleich deklarative versus imperative Sprachen. Rekursionen statt Schleifen. Funktionen als gleichberechtigte Datenobjekte. Führt zu kürzere, klareren und zuverlässigeren Programmen, die einfacher zu warten sind.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
345
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Prinzipien funktionaler programmierung

  1. 1. Prinzipien der funktionalen Programmierung III.1 Prinzipien der funktionalen Programmierung - 1 -Christoph Santschi – dipl. natw. ETHZ
  2. 2. Kenntnis verschiedener Sprachen  Eigene Ideen bei der Software-Entwicklung können besser ausgedrückt werden  Nötig, um in konkreten Projekten geeignete Sprache auszuwählen  Erleichtert das Erlernen weiterer Programmiersprachen  Nötig für den Entwurf neuer Programmiersprachen III.1 Prinzipien der funktionalen Programmierung - 2 -Christoph Santschi – dipl. natw. ETHZ
  3. 3. Übersicht III.1 Prinzipien der funktionalen Programmierung - 3 -Christoph Santschi – dipl. natw. ETHZ Imperative Sprachen Deklarative Sprachen Folge von nacheinander ausgeführten Anweisungen • Spezifikation dessen, was berechnet werden soll • Compiler legt fest, wie Berechnung verläuft Prozedurale Sprachen • Variablen, Zuweisungen Kontrollstrukturen Funktionale Sprachen • keine Seiteneffekte Rekursion • Objektorientierte Sprachen • Objekte und Klassen • ADT und Vererbung Logische Sprachen • Regeln zur Definition von Relationen
  4. 4. Wichtige Programmiersprachen prozedural objektorientiert funktional logisch PL/1 1970 C ML Ada1980 C++ EiffelModula-3 1990 Java Pascal Algol 68 Ada 95 Smalltalk Simula Scheme Miranda Haskell Prolog 1950 Fortran Cobol1960 Algol 60 Lisp III.1 Prinzipien der funktionalen Programmierung - 4 -Christoph Santschi – dipl. natw. ETHZ
  5. 5. Imperative Programmierung (Java) Eingabe: Eine Liste x Ausgabe: Länge der Liste x Algorithmus: 1. Setze n = 0. 2. Falls x nicht die leere Liste ist, dann: a. Lösche das erste Element von x. a. Erhöhe n um 1. b. Gehe zu Schritt 2. 3. Liefere n zurück. class Element { Vergleichbar wert; Element next; ... } public class Liste { Element kopf; ... static int len (Liste x) { int n = 0; while (x.kopf != null) { x.kopf = x.kopf.next; n = n + 1; } return n; } III.1 Prinzipien der funktionalen Programmierung - 5 -Christoph Santschi – dipl. natw. ETHZ
  6. 6. Kennzeichen imperativer Programmierung  Programm besteht aus einzelnen Anweisungen, die nacheinander abgearbeitet werden.  Verschiedene Kontrollstrukturen, um Programmablauf zu steuern.  Abarbeitung einer Anweisung ändert Werte der Variablen.  Seiteneffekte  Programmierer muss Speicherorganisation bedenken III.1 Prinzipien der funktionalen Programmierung - 6 -Christoph Santschi – dipl. natw. ETHZ
  7. 7. FunktionaleProgrammierung(Haskell) A. Falls die Liste x leer ist, so ist len(x) = 0. B. Falls die Liste x nicht leer ist und "rest" die Liste x ohne ihr erstes Element ist, so ist len(x) = 1 + len(rest). Programm in Haskell: len [] = 0 len (kopf : rest) = 1 + len rest III.1 Prinzipien der funktionalen Programmierung - 7 -Christoph Santschi – dipl. natw. ETHZ
  8. 8. Ausführung funktionaler Programme len [] = 0 len (kopf : rest) = 1 + len rest len [15, 70, 36] = 1 + len [70, 36] = 1 + 1 + len [36] = 1 + 1 + 1 + len [] = 1 + 1 + 1 + 0 = 3 III.1 Prinzipien der funktionalen Programmierung - 8 -
  9. 9. Kennzeichen funktionaler Programme  Rekursion statt Schleifen  Keine Seiteneffekte (referentielle Transparenz)  Funktionen als gleichberechtigte Datenobjekte (Funktionen höherer Ordnung)  Verwendung von einer Funktions-Implementie- rung für verschiedene Typen (Polymorphismus)  Programme sind kürzer, klarer, besser zu warten, zuverlässiger, schneller zu erstellen III.1 Prinzipien der funktionalen Programmierung - 9 -Christoph Santschi – dipl. natw. ETHZ
  10. 10. FunktionaleProgrammierung(Haskell)  Haskell-Interpreter Hugs  Eingabe: Auszuwertender Ausdruck  Ausgabe: Ergebnis des ausgewerteten Ausdrucks  Bsp:  Eingabe: len [15, 36, 70]  Ausgabe: 3  Interpreter  führen jede Zeile des Programms nacheinander aus.  Vorteil: Keine vorherige Übersetzung nötig, gut zur Programmentwicklung geeignet.  Nachteil: Ineffizienter als Compiler. III.1 Prinzipien der funktionalen Programmierung - 10 -Christoph Santschi – dipl. natw. ETHZ

×