skip to main content

kiesler.at

Einf�hrung Funktionale Programmierung
updated by rck, 2006-03-26

Ich habe mir erlaubt, an dieser Stelle die Folien von Prof. Knoop respektive Prof. Puntigam in einen Online-Artikel umzuformen und zu erg�nzen.

Funktionale Programmierung ist ein interessantes Gebiet der Programmierkunst, bei dem das "was" im Vordergrund steht und nicht etwa das "wie", wie bei der imperativen Programmierung.
                     
1 | 2 | 3 | 4

Motivation

Im Rahmen der Softwarekrise des vorigen Jahrhunderts (Zusammenfassung: Kosten explodieren, Wartung von Programmen kostet doppelt so viel wie Neuentwicklung) entstanden einige innovative Konzepte.

W�rend UML eher eine Metavorgehensweise ist und in bestehende Softwarekonzepte umgesetzt wird, ist funktionale Programmierung, beispielsweise mit Haskell, etwas v�llig neues.

Richtig angewandt, und in der richtigen Umgebung, k�nnen funktionale Programme viel schneller und effizienter entwickelt werden. Gleichzeitig ist funktionale Programmierung aus meiner Sicht sehr spezialisiert und f�r Datenbankanbindungen oder GUI-Programmierung beispielsweise g�nzlich ungeeignet.

Eigenschaften der Funktionalen Programmierung

weniger Grundkonzepte

keine Zuweisungen, Schleifen, Spr�nge. Einerseits vorteilhaft f�r "Neueinsteiger", die noch nie programmiert haben.

Andererseits aus meiner Sicht selbst dann kein besonders gro�er Vorteil, da moderne objektorientierte Frameworks von Haus aus sehr viel abstrahieren und Schleifen immer mehr in den Hintergrund geraten. Spr�nge / Labels verwendet sowieso kaum noch wer (au�er Lowlevel Programmierer).


h�here Produktivit�t?

Funktionale Programme sind sehr kurz, verglichen mit vielen Imperativen Programmiersprachen. Ob sie dadurch verst�ndlicher (und in weiterer Folge wartbarer - wieder ein Tribut an die Softwarekrise) werden, stelle ich in Frage. Es gibt auch moderne imperative Programmiersprachen, welche sehr kurzen, fast schon kryptischen Code erm�glichen. Als Beispiel sei hier Python angef�hrt.


einfacherer Korrektheitsbeweis

und somit implizit h�hrere Zuverl�ssigkeit. Ein klarer Punkt f�r funktionale Programmierung. W�rend �bliche imperative Programme eher "maschinennah" sind, sind funktionale Programme eher "aufgabennah". Somit ist der Korrektheitsbeweis eines Programmes im wesentlichen mit dem Korrektheitsbeweis des dahinterliegenden Algorithmus gleichzusetzen.
                     
1 | 2 | 3 | 4



RSSComments
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004