POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Notions of computation and monads
Information and Computation
Automatic autoprojection of recursive equations with global variable and abstract data types
Science of Computer Programming
For a better support of static data flow
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Improving binding times without explicit CPS-conversion
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Polyvariant constructor specialisation
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Foundations of programming languages
Foundations of programming languages
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
Principles of Program Analysis
Principles of Program Analysis
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Sound Specialization in the Presence of Computational Effects
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
A Unified Framework for Binding-Time Analysis
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Evolution of Partial Evaluators: Removing Inherited Limits
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
Combinators for program generation
Journal of Functional Programming
Normalization by evaluation for the computational lambda-calculus
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
A monadic approach for avoiding code duplication when staging memoized functions
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
Continuation-based partial evaluation is an implementation technique for program specializers that allows generated code contexts to commute with specialization-time values. Thus it enables additional specialization-time computations. Its most general implementation known to date is based on the manipulation of continuations. We show that a substitution monad provides an alternative implementation of the context manipulation performed by continuation-based partial evaluation. We prove its equivalence to the original continuation-based implementation. A type-based binding-time analysis that is augmented with effects provides static information about the generated code contexts. We prove the soundness of the resulting type and effect system with respect to our implementation and point out how a binding-time analysis extended with this effect information may avoid code duplication and enable the generation of more efficient generating extensions.