A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Tabulation Techniques for Recursive Programs
ACM Computing Surveys (CSUR)
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Communications of the ACM
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Characterization and elimination of redundancy in recursive programs
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
The Theory and Practice of Transforming Call-by-need into Call-by-value
Proceedings of the Fourth 'Colloque International sur la Programmation' on International Symposium on Programming
Recursive programming through table look-up
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
The semantic elegance of applicative languages
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
LISP 1.5 Programmer's Manual
The Illinois functional programming interpreter
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
An improved replacement strategy for function caching
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
SPARE: A Development Environment for Program Analysis Algorithms
IEEE Transactions on Software Engineering
The Boyer Benchmark at warp speed
ACM SIGPLAN Lisp Pointers
The Gabriel “Triangle” Benchmark at warp speed
ACM SIGPLAN Lisp Pointers
ACM SIGPLAN Lisp Pointers
Caching intermediate results for program improvement
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Static caching for incremental computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimizing memory usage in the polyhedral model
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic Programming via Static Incrementalization
Higher-Order and Symbolic Computation
Dynamic Programming via Static Incrementalization
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Conspiracy numbers and caching for searching and/or trees and theorem-proving
IJCAI'89 Proceedings of the 11th international joint conference on Artificial intelligence - Volume 1
Hi-index | 0.00 |
The “referential transparency” principle of applicative language expressions stipulates that a single value exists for all occurrences of an expression in a given context (where a context is a set of bindings of variables to values). In principle, each such value therefore need to be computed only once. However, in applicative language systems supporting recursive programming or tasking notions, the bindings are not all precomputed and explicit. As a result, textual recognition of all multipleoccurrences is precluded, with the unfortunate consequence that such occurrences are recomputed. We elaborate upon the early notion of “memo function” for solving this problem. We suggest syntactic and semantic constructs providing programmer control for avoiding recomputation, which is incorporated into a “building-block” approach.