Trampolined Style, Steven E. Ganz, Daniel P. Friedman, and Mitchell Wand, ICFP 1999.
I was sure this paper was linked here before, but I can't seem to find it.
Since two of my students recently needed this paper for projects they are doing, I decided it may be of interests to loyal LtU readers.
A trampolined program is organised as a single loop in which computations are sechduled and their execution allowed to proceed in discrete steps.
Trampolining can be used as a way to avoid stack-overflow in interpreters written in languages not supporting proper tail-calls. More interesting uses are for debugging (stepping, breakpoints etc.) and multithreading. These can be based on trampoilining the interpreter, or the program itself.
Posted to implementation by Ehud Lamm on 1/8/02; 11:00:54 AM