Continuation
Eine Fortsetzung (engl. Continuation) repräsentiert in der Programmierung einen bestimmten Punkt in der Ausführung eines Programms. Klassisch bestünde sie aus dem Befehlszähler und dem aktuellen Stack frame. Viele Programmiersprachen erlauben es, zur Laufzeit eine Continuation zu erzeugen und den Programmablauf später an diesem Punkt wieder aufzunehmen. Der Ausdruck wurde von Christopher Strachey, C. P. Wadsworth und John Reynolds geprägt.
Continuations gibt es in verschiedenen Ausprägungen: In der flexibelsten Form kann eine Continuation später mehrfach aufgerufen werden. Häufiger angeboten werden Continuations, die nur einmal aufgerufen werden können, beispielsweise in Ruby. Eine sehr beschränkte Form sind sogenannte escape continuations, die es nur erlauben den aktuellen Kontext zu verlassen und in einen umgebenden zu springen. Hierzu zählen Exceptions in Sprachen wie Java und nochmals einfacher auch setjmp
und longjmp
in C.
Continuations erlangen in der Webprogrammierung zunehmend Bedeutung, da mit ihrer Hilfe der asynchrone Request/Response-Zyklus, wie er bei HTTP üblich ist, in einen linearen Ablauf umgebogen werden kann. Es lässt sich dabei eine Methode schreiben, die eine Seite an den Benutzer schickt und dann die aktuelle Continuation in die Hosentasche schiebt, um bei der nächsten Aktion des Benutzers hinter dieser Methode mit dem Programm fortzufahren. Kenner warnen allerdings davor den Benutzer solcherart als „Peripheriegerät“ zu behandeln.
Inhaltsverzeichnis
Übrigens: Die PlusPedia ist NICHT die Wikipedia. Wir sind ein gemeinnütziger Verein, PlusPedia ist werbefrei. Wir freuen uns daher über eine kleine Spende! |
1 Continuations in verschiedenen Programmiersprachen
- C:
setcontext
et al. (UNIX System V and GNU libc) - Ruby:
callcc
- Haskell:
callCC
(im ModulControl.Monad.Cont
) - Java: Das Web-Framework RIFE
- Standard ML:
SMLofNJ.Cont.callcc
- Python:
yield
[1] - Rhino:
Continuation
- Scheme:
call/cc
(kurz fürcall-with-current-continuation
) - Smalltalk:
Continuation currentDo:
- Icon (Programmiersprache):
suspend
- Common Lisp:
handler-bind, cerror, continue
2 Siehe auch
3 Einzelnachweise
4 Weblinks
5 Andere Wikipedia Sprachen
- WPSprache{cs}: Continuation
- WPSprache{en}: Continuation
- WPSprache{fr}: Continuation
- WPSprache{it}: Continuazione
- WPSprache{ja}: 継続
- WPSprache{ru}: Продолжение
- WPSprache{uk}: Продовження (програмування)
6 Init-Quelle
Entnommen aus der:
Erster Autor: D , Alle Autoren: Nowiasz Mark Nowiasz, D, STBR, Boemmels, Chiccodoro, Zwobot, Bota47, ThePeritus, Fomafix, DodekBot, Klausikm , Eskimbot, DanielSHaischt, RobotQuistnix, Schaengel89, Flominator, ErikDunsing, Hydro, DustyDingo, Hubi
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular
PlusPedia Impressum
Bitte Beachte:
Sämtliche Aussagen auf dieser Seite sind ohne Gewähr.
Für die Richtigkeit der Aussagen übernimmt die Betreiberin keine Verantwortung.
Nach Kenntnissnahme von Fehlern und Rechtsverstößens ist die Betreiberin selbstverständlich bereit,
diese zu beheben.
Verantwortlich für jede einzelne Aussage ist der jeweilige Erstautor dieser Aussage.
Mit dem Ergänzen und Weiterschreiben eines Artikels durch einen anderen Autor
werden die vorhergehenden Aussagen und Inhalte nicht zu eigenen.
Die Weiternutzung und Glaubhaftigkeit der Inhalte ist selbst gegenzurecherchieren.