Results 1 -
2 of
2
Representing Control in the Presence of One-Shot Continuations
, 1996
"... Traditional first-class continuation mechanisms allow a captured continuation to be invoked multiple times. Many continuations, however, are invoked only once. This paper introduces one-shot continuations, shows how they interact with traditional multi-shot continuations, and describes a stack-base ..."
Abstract
-
Cited by 41 (3 self)
- Add to MetaCart
Traditional first-class continuation mechanisms allow a captured continuation to be invoked multiple times. Many continuations, however, are invoked only once. This paper introduces one-shot continuations, shows how they interact with traditional multi-shot continuations, and describes a stack-based implementation of control that handles both one-shot and multi-shot continuations. The implementation eliminates the copying overhead for one-shot continuations that is inherent in multi-shot continuations. 1 Introduction Scheme [5] and some implementations of ML [17] provide continuations 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 ...
Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization
, 1997
"... Syntax Possible Dynamic Input Value-Specific Optimizations Register Allocation Coarse Scheduling Code Generation AMMA G Possible Dynamic Input Peephole Optimization Code Layout Branch Prediction Assembly ELTA D Possible Dynamic Input Peephole Optimization Code Layout Branch Prediction Assembly ELT ..."
Abstract
-
Cited by 26 (1 self)
- Add to MetaCart
Syntax Possible Dynamic Input Value-Specific Optimizations Register Allocation Coarse Scheduling Code Generation AMMA G Possible Dynamic Input Peephole Optimization Code Layout Branch Prediction Assembly ELTA D Possible Dynamic Input Peephole Optimization Code Layout Branch Prediction Assembly ELTA D Possible Dynamic Input Dynamic Input Dynamically Optimizing Native Code PSILON E Create Specialized Code Generators Java VM Code LPHA A High-Level IR Mid-Level IR Low-Level IR Native Code Program Analysis Code Improvements Figure 2: Staged Compiler Architecture ffl Dynamic method dispatch and higher-order procedures can make it impossible to determine a program's control flow graph until run time; ffl Dynamically allocated data structures can make static loop transformations difficult, e.g., array bounds may not be known at compile time; ffl Separate compilation makes it difficult to optimize data representations across module boundaries. It is therefore possible to postpone part...

