News

F# - Übergang zur funktionalen Programmierung

28.09.2009 | 16:07 Uhr

Mit F# bereichert Microsoft die .NET-Sprachenfamilie um ein neues Mitglied. Bei VS 2008 muss sie noch nachträglich installiert werden, beim kommenden VS 2010 wird sie von Anfang an fest dabei sein. Das F steht für „Funktional“, das # deutet die sprachliche Nähe zu C# an. Als Hybridsprache soll F# die Welt der funktionalen Programmierung mit der traditionellen Welt der imperativen (prozeduralen) Sprachen vereinigen. Vorschusslorbeeren hat F# bereits reichlich erhalten.

Nach objektorientiert und dynamisch scheint funktional das neue Modewort der Programmiersprachenszene zu sein. Tatsächlich wäre „Wiederentdeckung“ die etwas bessere Umschreibung, denn die Idee, Programmschritte ausschließlich durch Funktionen zu beschreiben, die nicht gezielt aufgerufen, sondern bei der Programmausführung angewendet werden ist natürlich nicht neu. Die Programmiersprache LISP, die bereits aus den 50er Jahren des letzten Jahrhunderts stammt, kann als die Ur-Mutter der funktionalen Sprachen betrachtet werden. In den 90er Jahren wurde das Konzept von Programmiersprachen wie Erlang (die vom Telekommunikationsunternehmen Ericsson sehr erfolgreich eingesetzt wird) und Haskell wieder aufgegriffen (als das direkte Vorbild für die Syntax von F# gilt die Sprache Ocaml). Auch wenn es von Haskell bereits sehr früh eine .NET-Implementierung gab, erst mit dem F#-Projekt, das bei Microsoft Research im "Forschungslabor" seinen Anfang nahm, gelangte die funktionale Programmierung auf den Radarschirm vieler Entwickler.

Funktional = effektiver?

Die zentrale Frage ist natürlich, welche Vorteile F# gegen über C# bringt. Funktionale Programmierung erscheint zunächst deutlich anspruchsvoller als die traditionelle imperative Programmierung, wo ein Computerprogramm aus einer Folge von Schritten besteht, die der Reihe nach abgearbeitet werden. Diese Herangehensweise wird seit Jahrzehnten angewendet und erschließt sich auch ohne, dass man einen mathematischen Background benötigt.

Bei der funktionalen Programmierung wird ein Problem dadurch gelöst, dass es durch Funktionen beschrieben wird, die sehr viel mehr mathematischen Funktionen ähneln, als es bei einer Funktion in einer imperativen Sprache wie C# der Fall ist (Listing 1, das eine Funktion zeigt, die die Quadratzahlen der Zahlen von 1 bis 10 ausgibt, gibt davon einen kleinen Vorgeschmack). Aus diesem Ansatz resultieren gleich mehrere Vorteile:

1. Der Programmcode wird deutlich kürzer und kompakter.

2. Der Programmablauf wird bezüglich seiner Korrektheit beweisbar (was bei imperativen Sprachen bezüglich ihrer „unendlichen“ Fülle an Variationsmöglichkeiten, die durch Typenvielfalt und Seiteneffekte bedingt werden, im Allgemeinen nicht möglich ist). Klar, dass sich F# damit für Einsatzbereiche empfiehlt, in denen an die Sicherheit sehr hohe Ansprüche gestellt wird.

3. Ein funktionales Programm lässt sich deutlich leichter parallelisieren als ein Programm, das in einer nicht funktionalen Sprache geschrieben ist. Es ist vor allem der letzte Aspekt, der F# gegenüber C# attraktiv macht.

Listing 1: Ein „Hallo, Welt“-Programm für F# - es gibt die Quadratzahlen aus

let Quadrat x = x * x
let Zahlen = [1 .. 10]
let QuadratZahlen = List.map Quadrat Zahlen
printfn "N^2 = %A"QuadratZahlen
open System
Console.ReadKey(true)

  Seite 1 von 4 Nächste Seite »


anzeige


anzeige

EMC PARTNERZONE
EMC PARTNERZONE
Hier finden Sie Strategiepapiere und Informationen von EMC zum Thema Backup & Recovery...

» zur Partnerzone
SWISS-IT-INDEX
SWISS-IT-INDEX
Wie investieren Sie in Ihre Zukunft? Die grosse Umfrage. iPhone 4 zu gewinnen!

» zum Artikel
» zur Umfrage
UMFRAGE
Was tun Sie, wenn es bei Ihrem Handy-Provider keine Daten-Flatrate mehr gibt?
Ich wechsle sofort den Provider
Ist mir sehr recht, ich will nur zahlen, was ich verbrauche
Ist mir egal, das zahlt sowieso die Firma
Spielt keine Rolle, ich telefoniere nur
abstimmen
8 Windows-Tricks
8 Windows-Tricks
Richten Sie Windows so ein, dass Ihre Aufgaben im Nullkommanichts erledigt sind.

» zum Artikel
Alles nur geklaut
Alles nur geklaut
Computerworld.ch zeigt, wo Windows von Apple geklaut hat - und umgekehrt.

» zum Artikel
Beliebte iPhone-Apps
Beliebte iPhone-Apps
Hier kommt eine Auswahl der beliebtesten iPhone-Apps

» zum Artikel
Geheimes Windows 7
Geheimes Windows 7
Computerworld stellt 15 geheime Programme und Extras des neuen Betriebssystems vor.

» zum Artikel
Raffinierte Tipps
Raffinierte Tipps
Windows 7 total: Wir haben besonders raffinierte Tricks zusammengestellt...

» zum Artikel
NEWSLETTER
Abonnieren Sie jetzt!
» Infos zum Newsletter
PROMOTION


FCO2 - die kleinste Serienvideokamera der Welt.

» CHF 99.90
ICT-PRESSETICKER