Abstract:
A trampolined program is organized as a single loop in which computations are scheduled and their execution allowed to proceed in discrete steps. Writing programs in trampolined style supports primitives for multithreading without language support for continuations. Various forms of trampolining allow for different degrees of interaction between threads. We present two architectures based on an only mildly intrusive trampolined style. Concurrency can be supported at multiple levels of granularity by performing the trampolining transformation multiple times. 1 Introduction Trampolined style is a way of writing programs such that a single "scheduler" loop, called trampoline, manages all transfers of control. 1 Computations are executed in discrete steps. Whenever a computation performs a unit of work, the remaining work is returned to the scheduler. Trampolining has been applied to interpreters for reflection [2] as well as for process abstractions [6]. A form of trampolining has be...
Citations
|
554
|
Notions of computation and monads
– Moggi
- 1991
|
|
506
|
Introduction to Metamathematics
– KLEENE
- 1952
|
|
385
|
Comprehending monads
– WADLER
- 1992
|
|
345
|
Computational lambda-calculus and monads
– Moggi
- 1989
|
|
53
|
Abstract continuations: A mathematical semantics for handling full functional jumps
– Felleisen, Wand, et al.
- 1988
|
|
40
|
Danvy and Andrzej Filinski. Abstracting control
– Olivier
|
|
37
|
A Model and Stack Implementation of Multiple Environments, Harvard University Center for Research in Computing Technology, Report 7-72
– Bobrow, Wegbreit
- 1972
|
|
27
|
Definitional interpreters for higher order programming languages
– Reynolds
- 1972
|
|
23
|
Abstracting timed preemption with engines
– Haynes, Friedman
- 1987
|
|
21
|
De Roure. Design of a Concurrent and Distributed Language
– Queinnec, David
- 1993
|
|
16
|
Reification without evaluation
– Bawden
- 1988
|
|
13
|
Continuations and threads: Expressing machine concurrency directly in advanced languages
– Shivers
- 1997
|
|
11
|
Dybvig and Robert Hieb. Engines from Continuations
– Kent
- 1989
|
|
11
|
Recursive definition of syntax and semantics
– Wijngaarden
- 1966
|
|
7
|
Bohm and Jacopini's reduction of flow charts
– Cooper
- 1967
|
|
6
|
CONS Should not CONS its Arguments
– Baker
- 1995
|
|
6
|
Dybvig. Threads yield continuations
– Kumar, Bruggeman, et al.
- 1998
|
|
5
|
An indeterminate constructor for applicative programming
– Friedman, Wise
- 1980
|
|
5
|
Value Transforming Style
– Queinnec
- 1992
|
|
4
|
Lambda-calculus schemata. Lisp and Symbolic Computation, 6(3/4):259--288
– Fischer
- 1993
|
|
3
|
QPL3---continuations, concurrency and communication
– Roure
- 1990
|
|
3
|
Continuation-based multiprocessing. Higher-Order and Symbolic Computation
– Wand
- 1999
|
|
1
|
Morrisett and Andrew Tolmach. A portable multiprocessor interface for Standard ML of New Jersey
– Gregory
- 1992
|
|
1
|
Anurag Acharya. No assembly required: A standard ML to C compiler
– Tarditi, Lee
- 1992
|