www.wikidata.de-de.nina.az
Dieser Artikel behandelt das Konzept Zum Jazzalbum von Sun Ra siehe Continuation Album Die Continuation ist ein abstraktes Konzept hoherer insbesondere funktionaler Programmiersprachen Er bezeichnet den Kontrollzustand eines Programms zu einem bestimmten Zeitpunkt zu dessen Laufzeit Der Begriff Continuation entspricht daher naherungsweise dem Konzept des Prozesskontexts allerdings schliesst der Prozesskontext den aktuellen Zustand der Programmdaten also z B die Werte lokaler und globaler Variablen mit ein Zugriff auf Continuations ermoglicht es den Kontrollfluss eines Programmes beliebig zu beeinflussen So wird es moglich ein Programm zu einem beliebigen Zeitpunkt anzuhalten und spater fortzusetzen oder das Programm an einer bestimmten Stelle in einen fruheren Zustand zuruckzuversetzen Diese Eigenschaft kommt auch im Namen Continuation zu deutsch Fortsetzung zum Ausdruck Unter Verwendung von Continuations ist jede Art von Schleife simulierbar Der uneingeschrankte Zugriff auf die Continuation sowie eine Form einer bedingten Anweisung reichen bereits aus um beliebige berechenbare Probleme zu losen Diese Fahigkeit ermoglicht einen eigenen Programmierstil den sog continuation passing style Verschiedene Programmiersprachen unterstutzen den Umgang mit Continuations die bekanntesten Vertreter dabei sind verschiedene Lispdialekte wie Scheme Moderne objektorientierte Sprachen bieten mit Konzepten wie Ausnahmebehandlung eingeschrankte Moglichkeiten auf die Continuation eines Programms zuzugreifen Inhaltsverzeichnis 1 Beispiele 1 1 Endliche Automaten 1 2 Moderne Mikroprozessoren 1 3 Continuations in Scheme 2 Siehe auch 3 LiteraturBeispiele BearbeitenEndliche Automaten Bearbeiten In der Automatentheorie einem Teilbereich der theoretischen Informatik ist ein wesentliches theoretisches Konstrukt der endliche Automat Dieser befindet sich zu jedem Zeitpunkt in einem aus einer endlichen Menge moglicher Zustande Dieser Zustand kann als die Continuation zum jeweiligen Zeitpunkt interpretiert werden Moderne Mikroprozessoren Bearbeiten Moderne Mikroprozessoren sind meist Registermaschinen Auf einer solchen Registermaschine stellt der Inhalt bestimmter Register zu einem gegebenen Zeitpunkt die Continuation des ausgefuhrten Prozesses zum jeweiligen Zeitpunkt dar Moderne Prozessoren machen sich dies zunutze um zwischen mehreren Prozessen hin und herzuschalten und so den Eindruck zu erwecken dass diese gleichzeitig ausgefuhrt werden Steht ein solcher Kontextwechsel an so sichert der Prozessor den Inhalt aller Register Anschliessend fullt er die Register mit Inhalten die zu einem fruheren Zeitpunkt aus den Registern gesichert wurden Damit wird der Prozess der zum Zeitpunkt des Sicherns aktiv war an genau der Stelle fortgesetzt an welcher er sich zum Zeitpunkt der Sicherung befand Die Continuation wird hierbei durch den Befehlszahler zusammen mit dem Inhalt des Aufrufstapels bzw den Inhalt des Stapelzeigers reprasentiert Continuations in Scheme Bearbeiten Scheme behandelt Continuations als First Class Objekte d h Scheme macht es nicht nur moglich auf die aktuelle Continuation zuzugreifen sondern auch diese Continuation in beliebigen Variablen abzulegen und Funktionen als Parameter zu ubergeben Scheme bietet dazu die Funktion call cc Der folgende Code implementiert die Fakultat mittels Continuations define fac lambda x let a 1 cont f call cc lambda k set cont k t cond lt x 2 a else set a a x set x x 1 cont Hierbei wird der Funktion call cc eine anonyme Funktion ubergeben call cc ruft diese Funktion mit der aktuellen Continuation auf die anonyme Funktion speichert diese Continuation in der Variablen cont In der letzten Zeile wird mittels cont die Continuation aufgerufen der Programmfluss springt daher zu der Anweisung hinter dem Aufruf von call cc Siehe auch BearbeitenContinuation Passing StyleLiteratur BearbeitenChristian Queinnec Lisp in Small Pieces Cambridge University Press 1994 ISBN 0 521 54566 8 Abgerufen von https de wikipedia org w index php title Continuation amp oldid 225507425