23 citations found. Retrieving documents...
R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages, 14(2):109--123, 1989.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Distributed and Multi-Type Resource - Management Luc Moreau   (Correct)

....3 and our previous work focused on a single type of resource, namely processor time. In particular, in [9] we introduced an abstract notion of energy to denote a quantity of resources; we defined its meaning as processor time using a notion of tick reminiscent of the one used in Scheme engines [3]. In this Section, we step backward and study the primitives manipulating energy. We then show that they may be extended to cope with various (and multiple as well) types of energies. Some design considerations are also addressed in this Section. 4.1 Operations on energy From an energy system ....

R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages, 14(2):109--123, 1989.


Distributed and Multi-Type Resource Management - Moreau, Queinnec (2002)   (1 citation)  (Correct)

....and our previous work focused on a single type of resource, namely processor time. In particular, in [9] we introduced an abstract notion of energy to denote a quantity of resources; we defined its meaning as processor time using a notion of tick reminiscent of the 9 one used in Scheme engines [3]. In this Section, we step backward and study the primitives manipulating energy. We then show that they may be extended to cope with various (and multiple as well) types of energies. Some design considerations are also addressed in this Section. 4.1 Operations on energy From an energy system ....

R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages, 14(2):109--123, 1989.


Models of Control and Their Implications for Programming Language .. - Sitaram (1994)   (2 citations)  (Correct)

....in the program reinstates the captured context in place of the current one, and fills it with the continuation s argument. This ability to substitute the current context by a previously stored context is simple and powerful, as attested by the several elegant programming metaphors that it allows [10, 13, 22, 24, 26, 27, 46]. The stepping rule for call cc is: E[ call=cc M ) E[ M (lambda (v) abort E[v] Thus, the reduction language supports abort expressions even if PS call cc itself does not. A syntactically cleaner approach would be to use call cc 0 , a call cc variant [20] as the control primitive, with ....

....delimiters for true higher order continuations can be created in an ad hoc fashion by employing additional higherorder continuations. 7 Keeping track of several such continuations with their respective quasi delimiters requires sophisticated bookkeeping effort even for a single control metaphor [10, 26], not to mention simultaneous uses of different control abstractions. Thus it is useful to seek a higher order generalization of the first order prompt. A straightforward extrapolation of the first order delimiter suggests that higherorder prompts delimit the extent of evaluation context captured ....

[Article contains additional citation context not shown here]

R. K. Dybvig and R. Hieb. Engines from Continuations. Journal of Computer Languages (Pergamon Press), 14(2):109--124, 1989.


Continuations and threads: Expressing machine concurrency.. - Olin Shivers Mit (1997)   (4 citations)  (Correct)

....paper [Wand] showed means of modeling OS concurrency in Scheme. However, Wand s model was intended more as an explicative aid than a practical tool for use in an actual operating system. Dybvig has reported on nested engines, a similar concept for providing preemptable schedulers in Scheme [Engines]. A recent release of Scheme 48 [S48] uses a variant of these engines for its thread package. Reppy s doctoral work on Concurrent ML [CML] provided a concurrency mechanism based on synchronous sequential processes, although Reppy did not consider problems of virtualisation. Reppy has also ....

R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages 14(2):109--123, 1989.


Proof Theoretic Approach To Specification Languages - Chirimar (1995)   (37 citations)  (Correct)

....provide language constructs which allow the programmer to take control of the continuation of the program during the computation and manipulate it, e:g : callcc in SML of New Jersey, and call with current continuation in scheme. Programming with continuations introduces a rich programming style. [Fri88, DH89, Wan80] implemented coroutines and process schedulers using scheme style call with current continuation. Rep91] implemented CML, a concurrent higher order functional language with concurrency primitives, using callcc in SML of New Jersey. Continuations are not a part of the core SML [HMT89] The ....

....only one of the processes can compute at a given time. Given this basic understanding, it is natural that callcc in SML of New Jersey was the basis of the CML implementation in SML of New Jersey [Rep91] and call with current continuation was used to implement co routines and process schedulers [Fri88, DH89, Wan80]. I would like to define when a term M evaluates to a value V . When computation starts, there may be continuation processes defined in the environment in which M is to be evaluated. As the computation of M proceeds, new continuation processes may be created. Hence, the value V will have a ....

R.K. Dybvig and R. Heib. Engines from continuations. In Computing Languages, volume 14(2), pages 109--123, 1989.


Trampolined Style - Ganz, Friedman, Wand (1999)   (3 citations)  (Correct)

....other coroutines to yield only to the scheduler, passing a dummy value. At the other extreme are preemptive systems where threads are interrupted by the scheduler. We can implement this using a trampolined interpreter. Dybvig and Hieb have shown that engines can be implemented using call cc [7]. Conversely, Kumar, Bruggeman, and Dybvig have demonstrated that continuations, and in particular partial, composable continuations, can be implemented using threads [15] Shivers has presented an implementation of threads using multicontinuation CPS [22] The benefits of the precision gained ....

R. Kent Dybvig and Robert Hieb. Engines from continuations. Computer Languages, 14(2):109--123, 1989.


Handling Control - Sitaram (1993)   (9 citations)  (Correct)

....be transferred to it after the jump to the first continuation has accomplished its purpose. In the presence of several continuations with their respective quasi handlers, keeping track of the various jump off points and avoiding clashes between them requires sophisticated bookkeeping strategies [5, 12]. It is therefore useful to explore options that tackle this problem without sacrificing the programming power of higherorder control. Here we show that the historical duality of first order throwing and handling is useful even for higher order control. In earlier work [21, 22] we showed that ....

....We shall henceforth usurp the name run and fcontrol for the tagged operators. The previous untagged uses can be considered as having either a default or catch all tag, say false. 3 Nestable engines Our first larger example involving intensive control manipulation is the engine. An engine [5, 11] is an abstraction of computation subject to timed preemption. It forms a tractable building block for realizing a variety of communicating concurrent processes. An engine s underlying computation is a thunk that can be run as a preemptable process. The engine is applied to three arguments: 1) a ....

[Article contains additional citation context not shown here]

R.K. Dybvig and R. Hieb. Engines from Continuations. Journal of Computer Languages (Pergamon Press), 14(2):109--124, 1989.


Higher-order Concurrency - Reppy (1992)   (67 citations)  (Correct)

.... in SML NJ via an abstract type and two primitive functions [DHM91] type a cont val callcc : 1a cont 1a) 1a val throw : a cont a b These can be used to implement loops, back tracking, exceptions and various concurrency mechanisms, such ascoroutines [Wan80] and engines [DH89] For example, the following is a continuation based version (from [DHM91] of the product function given in the previous section: fun product l = callcc ( fn exit = let fun loop ( n) n loop (0: throw exit 0 loop (i: r, n) loop (r, i n) in loop (l, 1) end) This function uses ....

Dybvig, R. K. and R. Hieb. Engines from continuations. Computing Languages, 14(2), 1989, pp. 109--123.


Typing First-Class Continuations in ML - Harper, Duba, MacQueen (1992)   (17 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higher level constructs such as coroutines [22] exceptions [41] and logic variables [8, 19] for supporting multiple threads of control [6, 20, 28, 40], for providing asynchronous signal handlers [29] and for implementing non blind backtracking [15] and dynamic barriers such as unwind protect [21] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, ....

R. Kent Dybvig and Bob Hieb. Engines from continuations. Journal of Computer Languages, 14(2):109-- 124, 1989.


Representing Control in Parallel Applicative Programming - Yao (1994)   (Correct)

....tool to programmers. Therefore, with first class continuations provided, programs become more expressive because any control point can be captured in the form of a continuation. Various control facilities such as non local escape, J operator [48] label values [56] coroutines [32] and engines [14] can hence be implemented. It is known that continuations provide a general control mechanism in applicative languages with acceptable performances (close to high order languages without continuations) However, continuations also decrease the readability of programs written in applicative ....

R.K. Dybvig and R. Hieb. Engines from continuations. Computer Languages, 14(2), 1989.


A Security Kernel Based on the Lambda-Calculus - Rees (1996)   (10 citations)  (Correct)

....continuations or coroutines, sufficient for constructing a scheduler that simulates multiple hardware processing elements in software. One particularly elegant design for a timed preemption facility is a mechanism known as engines, of which Dybvig and Hieb have published a general implementation [11, 9]. Engines abstract over timed preemption by providing a way to run a computation for a specified amount of time. They are sufficient to construct a user mode task scheduler. Dybvig and Hieb s engine implementation has two problems for a system in which caller and callee are mutually suspicious: 1. ....

R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages 14(2):109--123, 1989.


Typing First-Class Continuations in ML - Duba, Harper, MacQueen (1991)   (52 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higherlevel constructs such as coroutines [16] exceptions [42] and logic variables [8, 19] for supporting multiple threads of control [41, 18, 29, 6], for providing asynchronous signal handlers [30] and for implementing non blind backtracking [14] and dynamic barriers such as unwind protect [17] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [9, ....

R. Kent Dybvig and Bob Hieb. Engines from continuations. Journal of Computer Languages, 14(2):109--124, 1989.


Extensible Denotational Language Specifications - Cartwright, Felleisen (1994)   (13 citations)  (Correct)

....of Core Scheme. The resulting meaning function and the 7 With first class continuations objects it is easy to simulate many other control constructs and patterns, e.g. loop exits, blind and non blind backtracking [14] coroutines [16] light weight threads [39] and time preempted computations [8]. 14 Robert Cartwright, Matthias Felleisen administrator would be identical to the ones we just described. In general, the addition of new orthogonal linguistic constructs is as straightforward as the extension of Pure Scheme to Control Scheme or of State Scheme to Core Scheme. It requires the ....

Dybvig, R. K. and R. Hieb. Engines from continuations. Journal of Computer Languages (Pergamon Press) 14(2), 1989, 109--124.


Reasoning with Continuations II: Full Abstraction for.. - Sitaram, Felleisen (1990)   (30 citations)  (Correct)

....object that can be called anywhere in the program, just like any other procedure. When it is invoked, evaluation reinstates the captured context in place of the current one, and fills it with the continuation s argument. It is easy to simulate other non local control actions in terms of K [5, 12, 14, 15, 26]. A K expression can occur anywhere inside a program; thus it can have any type s. Also, the program can invoke the continuation anywhere, but the latter s argument must be of the same type as the K expression. Further, the K subexpression returns a value of the type of the K expression. Given ....

R.K. Dybvig and R. Hieb. Engines from continuations. Journal of Computer Languages (Pergamon Press), 14(2):109--124, 1989.


Typing First-Class Continuations in ML - Robert Harper   (17 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higher level constructs such as coroutines [22] exceptions [41] and logic variables [8, 19] for supporting multiple threads of control [6, 20, 28, 40], for providing asynchronous signal handlers [29] and for implementing non blind backtracking [15] and dynamic barriers such as unwind protect [21] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, ....

R. Kent Dybvig and Bob Hieb. Engines from continuations. Journal of Computer Languages, 14(2):109-- 124, 1989.


Typing First-Class Continuations in ML - Duba, Harper, MacQueen (1991)   (52 citations)  (Correct)

....natural way to provide access to the flow of evaluation in functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higherlevel constructs such as coroutines [15] exceptions [41] and engines [6], for writing interpreters and compilers [30, 34] and for organizing run time support for multiple threads of control [40, 27] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [8, 9, 38] Recent ....

R. Kent Dybvig and Bob Hieb. Engines from continuations. Journal of Computer Languages, 14(2):109--124, 1989.


Merging Interactive, Modular, And Object-Oriented Programming - Tung   (Correct)

....after the point. In Scheme, continuations can be obtained explicitly, stored in data structures, and later invoked to return to the computation. First class continuations are particularly useful for implementing coroutines, processes, exception handling mechanisms, and nonblind backtracking [32, 22, 31, 30]. The richness of Scheme is supported only by a small number of core syntactic forms. However, Scheme is not confined by the core forms: additional syntactic forms may be defined using syntactic definitions. Syntactic definitions allow programmers to define new syntactic forms in terms of existing ....

Dybvig, R. K., and Hieb, R. Engines from continuations. Journal of Computer Languages 14, 2 (1989), 109--123.


Advanced Programming Techniques Using Scheme - Moreau, Ribbens, Gribomont (1998)   (Correct)

....an advanced programming course should include more difficult topics. Scheme offers a range of advanced programming concepts like continuations, lazy evaluation via delay, engines, or macros. As soon as they are grasped by students, they can be used quickly to program an operating system kernel [7, 25] or an object oriented extension to a language [21, 1] It is still an educational challenge to present difficult programming examples. First, there are few such examples published in the literature: most of them appear as research articles (like the widely cited references mentioned above) and ....

....of forms containing assignments, and problems where mutable data are the natural choice are solved. Delayed evaluation is revised by describing the implementation of delay using assignment. At this point, students are ready for more advanced examples, like engines, an operating system kernel [7, 25], or the example given below. By adopting the language Scheme, we are able to reach advanced topics rather quickly, using a single programming framework that allows us to concentrate on concepts. 3. Example The program that we present in this section is an interactive reducer for lambda terms. It ....

R. Kent Dybvig and Robert Hieb. Engines from Continuations. Computer Languages, 14(2):109--123, 1989.


Subcontinuations - Hieb, Dybvig, Anderson (1993)   Self-citation (Dybvig)   (Correct)

....such distinctions with call cc. Continuation operations must affect either the entire process tree or single branches of the process tree; there is no way to designate subtrees. Problems also arise when continuations are used for modeling process abstractions, such as coroutines [13] and engines [8, 6]. In such cases, continuations must be saved so that processes can be resumed. Again, it is difficult to specify how much of the process tree is to be affected, but another problem also arises. Such applications typically involve a two part operation: first, the current continuation is captured, ....

.... the value of the first to complete: define amb (lambda (t0 t1 ) let loop ( e0 (make engine t0 ) e1 (make engine t1 ) e0 1 (lambda (value ticks) value) lambda (new e0 ) loop e1 new e0 ) In an earlier article, we showed that engines may be implemented using traditional continuations[8]. The article cites several problems inherent in the interaction between engines and traditional continuations. These problems are exactly those present in the interaction between tree structured concurrency and traditional continuations. Subcontinuations solve these problems and simplify the ....

[Article contains additional citation context not shown here]

Dybvig, R. Kent and Hieb, Robert. Engines from continuations. Computer Languages, 14, 2 (1989) 109--123.


Representing Control in the Presence of One-Shot.. - Bruggeman, Waddell, Dybvig (1996)   (21 citations)  Self-citation (Dybvig)   (Correct)

....as first class data objects. Continuations can be used to implement, at the source level, a number of interesting control features, such as loops, nonlocal exits, nonblind backtracking [22] nondeterministic computations [10, 14] and coroutines [7] Source level implementations of thread systems [9, 15, 21], especially in the area of graphical user interfaces (GUIs) 12, 13, 20, 23] are an important and rapidly growing application area for first class continuations. Continuations represent the remainder of a computation from a given point in the computation. When a continuation is invoked, control ....

R. Kent Dybvig and Robert Hieb. Engines from continuations. Computer Languages, 14(2):109--123, 1989.


Revised^4 Report on the Algorithmic Language Scheme - Clinger, (ed.), Rees.. (1991)   (242 citations)  Self-citation (Dybvig)   (Correct)

No context found.

R. Kent Dybvig and Robert Hieb. Engines from continuations. Journal of Computer Languages 14(2), pages 109--123, 1989.


Representing Control in the Presence of First-Class.. - Hieb, Dybvig, Bruggeman (1990)   (57 citations)  Self-citation (Dybvig Hieb)   (Correct)

....to call cc, the continuation may still be invoked, but the result is to restart the computation at a point from which the system has already returned. This feature may be used to implement many interesting control structures, including loops, nonblind backtracking [16] coroutines [8] and engines [10, 7]. The continuation of a procedure call is nothing more than the control stack of procedure activation records. If continuations were used only for nonlocal exits, as in Common Lisp [15] then the essence of a continuation object would be a pointer into the control stack. However, because ....

R. Kent Dybvig and Robert Hieb, "Engines from Continuations," Indiana University Computer Science Department Technical Report No. 254, July 1988.


Threads Yield Continuations - Kumar, Bruggeman, Dybvig (1997)   Self-citation (Dybvig)   (Correct)

....nonlocal exits, exceptions, nonblind backtracking [28] This material is based on work supported in part by the National Science Foundation under grant numbers CDA 9312614 and CDA 93 03189. 2 KUMAR, BRUGGEMAN, AND DYBVIG nondeterministic computations [8, 14] coroutines [12] and multitasking [7, 15, 30], at the source level. Subcontinuations are more expressive than traditional continuations and may be used to implement similar control structures in the presence of tree structured concurrency [16, 17] This article describes a thread based implementation of one shot subcontinuations that has ....

....capture mechanism from the continuation abort mechanism. Gunter, et al. 13] describe how support for multiple prompts may be added to statically typed languages. On a uniprocessor, both traditional and functional continuations are sufficient to implement multitasked threads at the source level [7, 15, 30]. Thus, many systems that support continuations provide no primitive support for threads. Continuations have also been used to implement threads on multiprocessors. MP [29] is a low level interface designed to provide a portable multiprocessing platform. It provides an abstraction of a physical ....

Dybvig, R. Kent and Hieb, Robert. Engines from continuations. Computer Languages, 14, 2 (1989) 109--123.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC