MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Structures General Terms

Download:
pdf
by Umut A. Acar, Guy E. Blelloch, Robert Harper
http://www-2.cs.cmu.edu/~rwh/papers/memoization/popl.pdf
Add To MetaCart

Abstract:

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.

Citations

5825 Introduction to Algorithms – Cormen, Leiserson, et al. - 1992
2005 The Design and Analysis of Computer Algorithms – Aho, Hopcroft, et al. - 1974
1399 Dynamic Programming – Bellman - 1957
496 S.: The Implementation of Functional Programming Languages – Jones - 1987
147 A Basis for a Mathematical Theory of Computation – McCarthy - 1963
110 A judgmental reconstruction of modal logic – Pfenning, Davies - 1999
72 memo’ functions and machine learning – Michie - 1968
68 Tabulation Techniques for Recursive Programs – Bird - 1980
57 Lazy memo-functions – Hughes - 1985
52 Incremental computation via function caching – Pugh, Teitelbaum - 1989
51 Analysis and caching of dependencies – Abadi, Lampson, et al. - 1996
45 Hash-consing garbage collection – Appel, Gonçalves - 1993
44 Structural cut elimination – Pfenning - 1994
39 Automating derivation of incremental programs – Zhang, Liu - 1998
34 Anatomy of LISP – Allen - 1978
32 Natural deduction for intuitionistic non-commutative linear logic – Polakow, Pfenning - 1999
31 Static caching for incremental computation – Liu, Stoller, et al. - 1998
29 Selective memoization – Acar, Blelloch, et al.
29 Incremental evaluation of attribute grammars with application to syntax directed editors – Demers, Reps, et al. - 1981
27 Eliminating Redundant Recursive Calls – Cohen - 1983
26 Adaptive functional programming – Acar, Blelloch, et al. - 2002
23 Incremental reduction in the lambda calculus – Field, Teitelbaum - 1990
23 Dynamic programming via static incrementalization – Liu, Stoller - 1999
19 Caching function calls using precise dependencies – Heydon, Levin, et al.
19 The Vesta Approach to Software Configuration Management – Heydon, Levin, et al. - 2001
18 Techniques for automatic memoization with applications to context-free parsing – Norvig - 1991
15 incremental computation as a programming abstraction – Alphonse - 1992
14 Speci and Transformation of Programs|A Formal Approach to Software Development – Partsch - 1990
13 Using cached functions and constructors for incremental attribute evaluation – Pennings, Swierstra, et al. - 1992
10 Generating Incremental Attribute Evaluators – Pennings - 1994
10 An Example of Hierarchical Design and Proof – Spitzen, Levitt, et al. - 1978
9 Automating program speedup by deciding what to cache – Mostow, Cohen - 1985
8 An improved replacement strategy for function caching – Pugh - 1988
8 Incremental compilation via partial evaluation – Sundaresh, Hudak - 1991
5 Hashing lemmas on time complexities with applications to formula manipulation – Goto, Kanada - 1976
5 The wizard of TILT: Efficient(?), convenient and abstract type representations – Murphy, Harper, et al. - 2002
3 Elimination of recursive calls using a small table of randomly selected function values – Hilden - 1976
3 Improving software performance with automatic memoization – Hall, McName - 1997
2 Using automatic memoization as a software engineering tool in real-world ai systems – Mayfield, Finin, et al.