Eliminating Redundant Recursive Calls.
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proc. of a conference on Functional programming languages and computer architecture
An improved replacement strategy for function caching
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Incremental computation via function caching
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Introduction to algorithms
Incremental reduction in the lambda calculus
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A theory of incremental computation and its application
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Alphonse: incremental computation as a programming abstraction
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Analysis and caching of dependencies
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Automating derivation of incremental programs
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Static caching for incremental computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Caching function calls using precise dependencies
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Tabulation Techniques for Recursive Programs
ACM Computing Surveys (CSUR)
An example of hierarchical design and proof
Communications of the ACM
Adaptive functional programming
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Anatomy of LISP
Incremental evaluation for attribute grammars with application to syntax-directed editors
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Using Cached Functions and Constructors for Incremental Attribute Evaluation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
Hashing LEMMAs on time complexities with applications to formula manipulation
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
Dynamic Programming
A judgmental reconstruction of modal logic
Mathematical Structures in Computer Science
Techniques for automatic memoization with applications to context-free parsing
Computational Linguistics
Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Staged simulation: A general technique for improving simulation scale and performance
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Transformation by interpreter specialisation
Science of Computer Programming - Special issue on program transformation
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
An experimental analysis of self-adjusting computation
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Adaptive functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Dynamic purity analysis for java programs
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Kinetic algorithms via self-adjusting computation
ESA'06 Proceedings of the 14th conference on Annual European Symposium - Volume 14
A novel SoC design methodology combining adaptive software and reconfigurable hardware
Proceedings of the 2007 IEEE/ACM international conference on Computer-aided design
Imperative self-adjusting computation
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphism*
Journal of Functional Programming
Compiling self-adjusting programs with continuations
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
An experimental analysis of self-adjusting computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial memoization of concurrency and communication
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Selective Memoization with Box Types
Electronic Notes in Theoretical Computer Science (ENTCS)
A Short Cut to Optimal Sequences
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A Library for Self-Adjusting Computation
Electronic Notes in Theoretical Computer Science (ENTCS)
A consistent semantics of self-adjusting computation
ESOP'07 Proceedings of the 16th European conference on Programming
Provenance as dependency analysis
DBPL'07 Proceedings of the 11th international conference on Database programming languages
Self-adjusting computation with Delta ML
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Automated selective caching for reference attribute grammars
SLE'10 Proceedings of the Third international conference on Software language engineering
Coalescing executions for fast uncertainty analysis
Proceedings of the 33rd International Conference on Software Engineering
Two for the price of one: a model for parallel and incremental computation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Provenance as dependency analysis
Mathematical Structures in Computer Science - Programming Language Interference and Dependence
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Pruning with improving sequences in lazy functional programs
Higher-Order and Symbolic Computation
Tool support for software lookup table optimization
Scientific Programming
Hi-index | 0.00 |
We present a framework for applying memoization selectively. The framework provides programmer control over equality, space usage, and identification of precise dependences so that memoization can be applied according to the needs of an application. Two key properties of the framework are that it is efficient and yields programs whose performance can be analyzed using standard techniques.We describe the framework in the context of a functional language and an implementation as an SML library. The language is based on a modal type system and allows the programmer to express programs that reveal their true data dependences when executed. The SML implementation cannot support this modal type system statically, but instead employs run-time checks to ensure correct usage of primitives.