Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Introduction to algorithms
Partial evaluation is fuller laziness
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Notions of computation and monads
Information and Computation
Automatic online partial evaluation
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Two-level functional languages
Two-level functional languages
Improving binding times without explicit CPS-conversion
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
Type specialisation for imperative languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A fast Fourier transform compiler
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
From recursion to iteration: what are the optimizations?
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
DSL implementation using staging and monads
Proceedings of the 2nd conference on Domain-specific languages
Science of Computer Programming - Special issue on mathematics of program construction
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic Programming via Static Incrementalization
Higher-Order and Symbolic Computation
For a Better Support of Static Data Flow
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Dynamic Specialisation of XC6200 FPGAs by Parial Evaluation
FPL '98 Proceedings of the 8th International Workshop on Field-Programmable Logic and Applications, From FPGAs to Computing Paradigm
Fast partial evaluation of pattern matching in strings
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Modular Compilers Based on Monad Transformers
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
‘Semantics, Applications, and Implementation of Program Generation’
Journal of Functional Programming
Journal of Functional Programming
Closed types for a safe imperative MetaML
Journal of Functional Programming
Imperative program optimization by partial evaluation
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A methodology for generating verified combinatorial circuits
Proceedings of the 4th ACM international conference on Embedded software
Normalization by evaluation for the computational lambda-calculus
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Continuation-based partial evaluation without continuations
SAS'03 Proceedings of the 10th international conference on Static analysis
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Implicitly heterogeneous multi-stage programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Experiences with an object-oriented, multi-stage language
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Closing the stage: from staged code to typed closures
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Implicitly heterogeneous multi-stage programming
New Generation Computing
Shifting the stage: staging with delimited control
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Partial memoization of concurrency and communication
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code
Science of Computer Programming
Shifting the stage: Staging with delimited control
Journal of Functional Programming
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
Communications of the ACM
Reasoning about multi-stage programs
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Explicitly heterogeneous metaprogramming with MetaHaskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Combinators for impure yet hygienic code generation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.02 |
Building program generators that do not duplicate generated code can be challenging. At the same time, code duplication can easily increase both generation time and runtime of generated programs by an exponential factor. We identify an instance of this problem that can arise when memoized functions are staged. Without addressing this problem, it would be impossible to effectively stage dynamic programming algorithms. Intuitively, direct staging undoes the effect of memoization. To solve this problem once and for all, and for any function that uses memoization, we propose a staged monadic combinator library. Experimental results confirm that the library works as expected. Preliminary results also indicate that the library is useful even when memoization is not used.