Delimited Continuations in Operating Systems
Source: Rutgers University
Delimited continuations are the meanings of delimited evaluation contexts in programming languages. The authors show they offer a uniform view of many scenarios that arise in systems programming, such as a request for a system service, an event handler for input/output, a snapshot of a process, a file system being read and updated, and a Web page. Explicitly recognizing these uses of delimited continuations helps one design a system of concurrent, isolated transactions where desirable features such as snapshots, undo, copy-on-write, reconciliation, and interposition fall out by default. It also lets one take advantage of efficient implementation techniques from programming-language research. The Zipper File System prototypes these ideas.