funktionale Programmiersprachen Drucken E-Mail
Allgemeines
Geschrieben von: cos   

Funktionale Programmiersprachen betonen Regeln- und Mustervergleich. Während sie für diejenigen, welche ausschließlich Erfahrung mit prozeduralen Sprachen haben, weniger intuitiv erscheinen, ermöglichen sie es denen, die damit vertraut sind, kurze und präzise natürliche Programmstrukturen zu erstellen. Funktionales Programmieren ist gerade bei mathematischen Arbeiten besonders praktisch, da die Schreibweise als "Funktion" bereits ein etabliertes Konzept wieder aufgreift.

Mathematica ist im wesentlichen eine funktionale Programmiersprache die als "term rewriting system" implementiert wurde und intensiv von ihren Mustervergliechsfähigkeiten gebrauch macht. Man kann in Mathematica jedoch auch im prozeduralen Stil programmieren (z.B. Do loop), aber es sollte definitiv der funktionale oder regelbasierte Stil vorgezogen werden.

Es mag sein, daß funktionale Programme normalerweise langsamer laufen als prozedurale. Aber die Laufzeit macht oft nur einen kleinen Teil der gesamten Arbeit aus und braucht meist keine Betreuung. Die Zeit, welche benötigt wird um den Code zu schreiben oder Programme zu verändern ist jedoch bei funktionalen Sprachen meist wesentlich kürzer als bei prozeduralen. Dies ist besonders wichtig, wenn es darum geht Prototypen zu erstellen und individuelle Versuchsergebnisse auszuwerten; aber auch bei maschinengenauen Berechnungen mit Listen, Matrizen und Tensoren. Der Geschwindigkeitsunterschied zwischen Matlab, Maple und Mathematica wurde mittlerweile wegprogrammiert. Mathematica benutzt packed arrays um die Geschwindigkeit (manche Funktionen sind intern als Matrizenrechnung umgesetzt) und die Kapazität (es passen auch größere Matrizen in den Arbeitsspeicher) zu erhöhen.

Ein weiterer Faktor den man in betracht ziehen muß, wenn man die Effektivität einer Programmiersprache für Computersimulation und -algebra betrachtet, ist die Art der Aufgabe die ausgeführt werden soll. Der größte Teil der Arbeit ist nicht nur das Erstellen und die Ausführung eines Programms, sondern auch die anschließende Analyse der Ergebnisse - numerisch und mit visuellen Darstellungen. Natürlich sollte man anschließend eine Dokumentation oder einen Bericht zur Veröffentlichung oder Präsentation erstellen. Dabei hat es viele Vorteile ein Computeralgebra-System wie Mathematica, Maple, Macsyma (Maxima) oder Axiom zu verwenden; sie bieten eine einheitliche Umgebung, um all diese Aufgaben zu erledigen.

Zuletzt aktualisiert am Sonntag, den 21. September 2008 um 13:51 Uhr