1999 · 87 citations · 19 references
ComputingComputer ScienceComputer ArchitectureProgramming LanguagesSchedulingConcurrency AnalysisConcurrent ProgrammingSynchronization PrimitivesThread ProgrammingConcurrency PrimitivesConcurrent ComputationMultithreading
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.
19
Notions of computation and monads
Eugenio Moggi · Information and Computation · 1991 · 1.7K citations
Computational lambda-calculus and monads
Eugenio Moggi · 2003 · 858 citations
Computing, Computer Science, Algebra +13
Definitional interpreters for higher-order programming languages
John Reynolds · 1972 · 668 citations
Philip Wadler · 1990 · 575 citations · Full text
Olivier Danvy, Andrzej Filinski · 1990 · 403 citations · Full text