MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Trampolined Style (1999)

by Steven Ganz Indiana ,  Steven E. Ganz ,  Daniel P. Friedman
In International Conference on Functional Programming
Add To MetaCart

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