- Continuation
-
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 mit, die inhaltlichen Mängel dieses Artikels zu beseitigen und beteilige dich an der Diskussion! (+)
Begründung: Ebenfalls sehr holprig und teils merkwürdig geschrieben - klingt teilweise wie eine wörtliche Übersetzung bzw. extrem merkwürdig („aktuelle Continuation in die Hosentasche (sic!) schieben“, „Kenner warnen...“). Wo ist der Unterschied zu Ko-Routinen? --Mark Nowiasz 18:16, 20. Feb. 2009 (CET)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
undlongjmp
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, denn wenn selbiger die Zurück-Funktion des Browsers benutzt, wird die Handhabung kompliziert.
Inhaltsverzeichnis
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
Siehe auch
Einzelnachweise
Weblinks
- C:
Wikimedia Foundation.