article

Eine Funktion ist in der Informatik die Bezeichnung eines Programmierkonzeptes. Die genaue Bedeutung hängt von der Art der verwendeten Programmiersprache ab:

Funktionen in der imperativen Programmierung


In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. Oft benötigter Code kann in Funktionen zusammengefasst werden und über den Namen der Funktion nach Bedarf aufgerufen werden. In der Regel erzeugt der Compiler für jeden Funktionsaufruf einen neuen Bereich auf dem Stack. Dort werden die Parameter, die lokalen Variablen der Funktion sowie der Rückgabewert abgelegt.

Funktionen können einen oder mehrere Aufrufparameter haben und liefern nach ihrem Ende einen Funktionswert zurück. Funktionen werden typischerweise in Bibliotheken thematisch gebündelt. Neben Standardfunktionen, mit denen man zum Beispiel an die Schnittstellen des Betriebssystems ankoppeln kann, gibt es auch eigenständige Funktionen, die lediglich Daten verarbeiten und wiederkehrende Aufgaben, wie das Suchen einer Zeichenkette in einem Text, übernehmen.

Je nach Programmiersprache werden für Funktionen unterschiedliche Bezeichnungen verwendet. So werden Funktionen in Java als Methoden bezeichnet, um ihre Zugehörigkeit zu einem Objekt (siehe Objektorientierte Programmierung) zu betonen. Andere Bezeichnungen sind sub (von Subroutine) in Perl oder allgemein Routine. In einigen Programmiersprachen unterscheidet man zwischen Funktionen, die einen Wert als Ergebnis einer Berechnung zurückliefern, und Routinen, die nur Code ausführen.

Funktionen können, je nach Art der Parameterübergabe, auch Parameterwerte verändern, z. B. wenn inc(x) das Argument um eins erhöht (Inkrement). Funktionen, deren Aufruf ihre Argumente und ihre Umgebung niemals verändert, heißen nebeneffektfreie Funktionen.

Beispiele

Beispiel einer Funktionsvereinbarung in C:

int Summe(int a, int b) { return a + b; }

Beispiel eines Funktionsaufrufs in C:

ergebnis = Summe(1, 2);

Beispiel einer Funktionsvereinbarung in Pascal:

FUNCTION Summe(a:Integer, b:Integer):Integer; BEGIN Summe := a + b; END;

Beispiel eines Funktionsaufrufs in Pascal:

ergebnis := Summe(1, 2);

Beispiel eines Funktionsaufrufs in Powerbasic:

Function Summe(a AS Integer, b AS Integer) AS Integer Summe=a+b end function

Beispiel eines Funktionsaufrufs in Powerbasic:

ergebnis = Summe(1, 2)

Funktionen in der funktionalen Programmierung


In der funktionalen Programmierung stellen Funktionen Abbildungsvorschriften dar. Eine Funktion besteht dann aus einer Reihe von Definitionen, die diese Vorschrift beschreiben. Im Gegensatz zur imperativen Programmierung sind Funktionen also keine zusammengefassten Codeblöcke. Viel mehr entspricht die Funktion hier eher der mathematischen Definition einer Funktion.

Beispiele

In Haskell würde man z. B. schreiben Summe :: Int -> Int -> Int Summe a b = a + b

Eine weitere Funktion wäre max :: Int -> Int -> Int max a b | a > b = a | otherwise = b Diese Schreibweise erinnert an die mathematische Definition des Maximums zweier Zahlen.

Ein funktionales Programm besteht ausschließlich aus Funktionsdefinitionen und besitzt keine Kontrollstrukturen wie Schleifen. Wichtigstes Hilfsmittel für die funktionale Programmierung ist daher die Rekursion.

Funktionen sind in funktionalen Programmiersprachen Objekte, mit denen wie mit Variablen gearbeitet werden kann. Insbesondere können Funktionen also als Argument oder Rückgabewert einer anderen Funktion auftreten. Man spricht dann von Funktionen höherer Ordnung

Siehe auch


Programmiersprachelement

Podrutina | Funkce (programování) | Funktion (programmering) | Subroutine | Subrutina | Funktsioon (programmeerimine) | زیرروال | Aliohjelma | Fonction (informatique) | פונקציה (תכנות) | Undirforrit | Funzione (informatica) | 関数 (プログラミング) | Subprogramma | Podprogram | Subrotina | Функция (программирование) | Funktion (programmering) | Підпрограма | 子程序

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Funktion (Programmierung)".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld