Iterative Programmierung - LinkFang.de





Iterative Programmierung


Die iterative Programmierung (von lat. iterare = wiederholen) verwendet im Gegensatz zur rekursiven Programmierung keine Selbstaufrufe, sondern Schleifen (Wiederholungen von Anweisungen oder Anweisungsfolgen). Prinzipiell lassen sich rekursive Algorithmen auch iterativ implementieren und umgekehrt.

Gegenüberstellung

In der Literatur werden Funktionen gerne im rekursiven Programmierstil vorgestellt. Der Anwender hat aber mehrere Vorteile davon, wenn der Implementierer die vom Aufschreiben her eleganten Rekursionen durch simple Iterationen ersetzt:

  • Bei iterativer Programmierung kann der Speicherbedarf schärfer durch den Programmierer zugeschnitten und kontrolliert werden, wogegen bei rekursiver bei jedem Selbstaufruf unvermeidlich viel Prozedurkontext gerettet wird.
  • Darüber hinaus ist der Speicherbedarf für den Programm-Stapelspeicher programmiersprachlich schwer oder gar nicht kontrollierbar, wovon die berüchtigten Stapelüberläufe eine Folge sind.
  • Im rekursiven Programmierstil lassen sich manche Szenarien nur durch eine sog. Rückruffunktion (englisch callback function) realisieren. Beispielsweise wird bei einer rekursiv programmierten Traversierfunktion eines Binärbaums dieser stets in seiner Gänze durchlaufen und die Nutzfunktion in einem Rückruf implementiert.
    Im Gegensatz dazu kann bei iterativer Programmierung das zu bearbeitende Segment des Baums durch eine Suchfunktion angesteuert, die Nutzfunktion nach Belieben als flache Anweisungsfolge bzw. als Unterprogramm implementiert und nach einem (iterativen) Querschritt beim nächsten Element wiederholt werden.[1]

Beispiel

Ein Beispiel für die iterative Programmierung ist ein Datenbankdurchlauf (Pascal):

 procedure Durchlauf;
 begin
  while not Dataset.Eof do
  begin
   Befehl_1;
   Befehl_2;
   Befehl_3;
   Dataset.Next;
  end;
 end;

Dabei werden Befehl_1, _2 und _3 solange wiederholt, bis alle Datensätze durchlaufen wurden.

Anmerkungen und Einzelnachweise

  1. Siehe dazu Traversierung (mit Codebeispielen) und Ben Pfaff: An Introduction to Binary Search Trees and Balanced Trees. Free Software Foundation, Inc. Boston 2004, S. 47 „4.9.2 Traversal by Iteration“.


Kategorien: Programmierung | Programmierparadigma

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Iterative Programmierung (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.