| C. T. Haynes and D. P. Friedman. Abstracting Timed Preemption with Engines. Journal of Computer Languages (Pergamon Press), 12(2):109--121, |
....is the foundation for the sophisticated exception or conditionhandling systems in languages such as Common Lisp, ML, C , EuLisp, and Dylan. Higher order control operators provide a rich array of control metaphors e.g. coroutines, task scheduling, stream processing, and non blind backtracking [24, 25, 26, 27]. In a quantifiable sense, control operators are expressive [18] Neither purely functional languages nor those augmented with an assignment operator can simulate control actions with local syntactic translations. As can be expected, higher order control operators are even more expressive than ....
....manage and to understand. Too 3 often, a heavy price in terms of excessive bookkeeping code and makeshift modularity is paid. For example, it is difficult to keep multiple uses of control idioms from interfering, or to enforce arbitrary patterns of desired interference. Haynes, Friedman and Wand [25, 26, 27] present several sophisticated examples of programming that addresses the problem of constraining control, but because of its ad hoc nature, and its willing sacrifice of the more powerful raw control operator in favor of one of its constrained uses, more satisfactory techniques are needed. 1.3 ....
[Article contains additional citation context not shown here]
C. T. Haynes and D. P. Friedman. Abstracting Timed Preemption with Engines. Journal of Computer Languages (Pergamon Press), 12(2):109--121,
....in these languages, continuations have the same status as numerical values, i.e. they can be passed in argument to or returned by functions, or stored in data structures. First class continuations are useful to program control structures like backtracking, coroutines, engines, or exceptions [6, 8, 9]. Our interest is to design a language that would allow the programmer to build parallel applications easily. In the approach called parallelism by annotations , programming languages are extended with annotations by which the programmer points out the expressions that may be evaluated in ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting Timed Preemption with Engines. Comput. Lang., 12(2):109--121, 1987.
....to denote an evaluation thread created by the constructs for parallelism. Similarly, message passing style primitives [12, 14, 13] or higher level forms of remote function calls [30, 32, 42] may be adopted for distribution. 1 Other names found in the literature for a similar concept are fuel [20], computron [46, p. 102 103] teleclick [27] or metapill [1] primitives : call with group(F; e; e ; t ) j pause(g; p ) j awake(g; e) g 2 Group e 2 Energy F : Group Theta Energy ff e ; t ; p : Group Theta Energy void Figure 1: Abstract Syntax of Quantum Primitives t 1 e ....
....languages, the parallel and distributed systems, and the agents communities. 4.1 Engines and Sponsors Our notion of group is at the intersection of two different ideas: Haynes and Friedman s engines and Kornfeld, Hewitt, and Osborne s sponsors, which we develop below. Haynes and Friedman [19, 20] introduce the engine facility to model timed preemption; variants can also be found in [8, 9, 48] Engines differ from our groups in a number of ways. Engines are defined in a sequential framework and are used to simulate multiprogramming. Since engines do not deal with parallelism, they do not ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting Timed Preemption with Engines. Comput. Lang., 12(2):109-- 121, 1987.
....in several areas e.g. process scheduling in operating systems, heuristic search in AI, simulation. Primarily the ability to preempt a process from running and to be able to resume that process at a later time have been capabilities relegated to an operating system. In 1984 Haynes and Friedman [7, 8] introduced a programming language abstraction termed engines 1 for timed preemption. Engines allow a process to be preempted after a prespecified amount of computation has occurred. They also provide the ability to resume a suspended computation on demand. Engines were first introduced as an ....
Christopher T Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages, 12(2):109--121, 1987.
....demonstrates how control filters and subcontinuations can be used to implement engines. Engines provide the means for a computation SUBCONTINUATIONS 469 to be run for a limited period of time, interrupted if it does not complete in that time, and later restarted from the point of interruption [14]. The procedure make engine creates an engine from a thunk, a procedure of no arguments specifying the computation to be performed by the engine. The computation is run for a limited amount of time by providing the engine with a nonnegative integer representing the number of ticks for which the ....
....directly or indirectly another engine in the same family. The need to nest engines in the same family arises rarely, if ever, in practice, so the added complexity required to relax this restriction does not seem warranted. The style of nesting implemented by the code above is termed fair nesting [14]. With fair nesting, each tick charged to an engine is charged as well to each of its ancestors. Fair nesting results from leaving the timer of a parent engine running while the timer of a child engine is running. Other nesting styles can be implemented by altering the engine implementation or the ....
Haynes, Christopher T. and Friedman, Daniel P. Abstracting timed preemption with engines. Computer Languages, 12, 2 (1987) 109--121.
....is an essential feature in distributed computing. This paper is organised of follows. We present the intuition of Quantum in Section 2 and define its semantics in Section 3. Section 4 contains several applications written in 1 Other names found in the literature for a similar concept are fuel [13] or computron [29, p. 102 103] RR n3147 4 Luc Moreau Christian Queinnec Quantum. In Section 5, we focus on the implementation of the language. Finally, Section 6 discusses related work and is followed by a conclusion. 2 The Language Quantum: Rationale In this section, we introduce the ....
....that the eldest local group is allowed to notify its parent of its exhaustion. 6 Discussion and Related Work Our notion of group is at the intersection of two different ideas: Haynes and Friedman s engines and Kornfeld, Hewitt, and Osborne s sponsors, which we develop below. Haynes and Friedman [12, 13] introduce the engine facility to model timed preemption; variants can also be found in [5, 6, 31] Engines differ from our groups in a number of ways. Engines are defined in a sequential framework and are used to simulate multiprogramming. Since engines do not deal with parallelism, they do not ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting Timed Preemption with Engines. Comput. Lang., 12(2):109--121, 1987.
....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, ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages, 12:109--121, 1987.
....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, ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages, 12:109--121, 1987.
....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 ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Computer Languages, 12(2):109--121, 1987.
....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 ....
Christopher T. Haynes and Daniel P. Friedman, "Abstracting Timed Preemption with Engines," Journal of Computer Languages 12, 2, 1987, 109--121.
....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, ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages, 12:109--121, 1987.
....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 ....
Haynes, C. T., and Friedman, D. P. Abstracting timed preemption with engines. Journal of Computer Languages 12, 2 (1987), 109--121.
....loop) eval tramp input env) loop) 3.3 Engines Our pogo stick scheduler continues a computation until it has completed. We can modify it to contain a bound, so that a computation is only performed for a fixed number of steps. Such a bounded pogo stick would be similar to an engine [11]. Engines are a mechanism for regulating the progress of a computation by feeding it ticks, much as a car is fed gasoline. Our make engine is a simplification that captures the essence of engines. It takes a thread and returns an engine. It returns the engine directly, and is thus assumed to be ....
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Computer Languages, 12(2):109--121, 1987.
No context found.
Haynes, C., and Friedman, D. Abstracting timed preemption with engines. Journal of Computer Languages (Pergamon Press) 12, 2 (1987) 109--121.
No context found.
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages 12(2):109--121, 1987.
No context found.
Chris T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Computer Languages, Vol. 12, No. 2 (1987), 109--121..
No context found.
Christopher T. Haynes, Daniel P. Friedman, Abstracting Timed Preemption with Engines, Computer Languages, Volume 12, # 2, 1987, pp 109--121.
No context found.
Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Journal of Computer Languages, 12:109--121, 1987.
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