Anonyme Subroutine

Anonyme Subroutine beschreibt eine Funktion eines Computerprogramms, die nicht über ihren Namen, sondern ausschließlich über Verweise (Referenzen, Zeiger, etc.) angesprochen werden kann.

Das Konzept benannter Funktionen ist aus praktisch jeder verbreiteten Programmiersprache bekannt: Eine Funktion erhält bei ihrer Definition einen eindeutigen Namen, über den man sie anschließend aufruft.

Beispiel in Perl:

# Definition und Deklaration der Funktion named.
sub named ( foo, bar )
 {
    // Tue dies. Tue das.
 }

# Aufruf der Funktion. 
named( ... );

Der Name der Funktion wird vom Laufzeitsystem dazu verwendet, mit Hilfe der Symboltabelle oder eines dynamischen Verfahrens die Funktionsdefinition zu identifizieren und dort hinterlegten Code auszuführen, in kompilierten Sprachen löst prinzipiell ähnlich bereits der Linker die Namen nichtvirtueller Funktionen auf.

Mit dem Konzept der anonymen Subroutine wird es nun möglich, neben solchen benannten auch unbenannte Funktionen zu definieren.

Beispiel in Perl:

# Definition und Deklaration der Funktion.
my $subref=sub {...}

# Aufruf der Funktion.
$subref->(...);

Da die Funktion keinen Namen mehr hat, ist ein symbolischer Aufruf nicht mehr möglich, die Routine wird vielmehr über eine Referenz, also einen Verweis auf die Definition, indirekt gestartet.

Anonyme Subroutinen können die Programmierung kontextabhängiger Funktionsaufrufe sehr stark vereinfachen. Darüber hinaus ermöglichen sie die einfache Verwendung von Funktionsreferenzen als Funktionsparameter (Übergabe eines Rückrufs (callback)) und die Speicherung in Datenstrukturen.

Beispiele in Perl:

# Führe einen Rückruf aus.
doSomething(callback => sub {...}, ...);

# Speichere Referenzen in einer Hashtabelle.
my calls=(
          quick => sub {...},
          clean => sub {...},
          dirty => sub {...},
          ...
         );

Das verwandte Konzept der Funktionszeiger in C oder C++ bietet prinzipiell ähnliche Möglichkeiten, ist aber aufgrund seiner Syntax und verschiedener Sonderregeln sehr viel komplizierter in der Anwendung und alles andere als intuitiv. Darüber hinaus bleiben die eigentlichen Funktionen dabei weiterhin benannt, man legt lediglich zusätzliche Verweise darauf an.

Java verwendet für diesen Zweck so genannte anonyme Inline-Klassen, oft vom Typ Runnable.

Anonyme Subroutinen werden von den meisten Skriptsprachen unterstützt, zum Beispiel Perl, Python, Lisp und - in neueren Versionen - JavaScript und JScript.


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Anonyme Funktion — Eine anonyme Funktion oder anonyme Subroutine ist eine Funktion in einem Computerprogramm, die nicht über ihren Namen, sondern nur über Verweise wie Referenzen oder Zeiger angesprochen werden kann. Inhaltsverzeichnis 1 Benannte Funktionen 2… …   Deutsch Wikipedia

  • Funktionsabschluss — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Call back Funktion — Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem… …   Deutsch Wikipedia

  • Callback-Funktion — Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem… …   Deutsch Wikipedia

  • Prädikatsfunktion — Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem… …   Deutsch Wikipedia

  • Rückruf-Funktion — Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem… …   Deutsch Wikipedia

  • Iterator — Der Begriff Iterator stammt aus dem Bereich der Softwareentwicklung und bezeichnet einen Zeiger, mit dem über die Elemente einer Liste bzw. durch die Elemente einer Menge iteriert werden kann. Der Iterator wird insbesondere im Bereich der… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”