Prompts, Delimited Continuations, and Barriers
A prompt is a special kind of continuation frame that is annotated with a specific prompt tag (essentially a continuation mark). Various operations
allow the capture of frames in the continuation from the redex position out to the nearest enclosing prompt with a particular prompt tag; such a continuation
is sometimes called a delimited continuation. Other operations allow the current continuation to be extended with a captured continuation (specifically,
a composable continuation). Yet other operations abort the computation to the nearest enclosing prompt with a particular tag, or replace the continuation
to the nearest enclosing prompt with another one. When a delimited continuation is captured, the marks associated with the relevant frames are also captured.
A continuation barrier is another kind of continuation frame that prohibits certain replacements of the current continuation with another. Specifically,
while an abort is allowed to remove a portion of the continuation containing a prompt, the continuation can be replaced by another only when the replacement
also includes the continuation barrier. Certain operations install barriers automatically; in particular, when an exception handler is called, a continuation
barrier prohibits the continuation of the handler from capturing the continuation past the exception point.
A escape continuation is essentially a derived concept. It combines a prompt for escape purposes with a continuation for mark-gathering purposes. as the name
implies, escape continuations are used only to abort to the point of capture, which means that escape-continuation aborts can cross continuation barriers.
July 10th Friday (七月 十日 金曜日)
最新推荐文章于 2009-07-16 16:23:00 发布