Selective memoization

被引:22
作者
Acar, UA [1 ]
Blelloch, GE [1 ]
Harper, R [1 ]
机构
[1] Carnegie Mellon Univ, Sch Comp Sci, Pittsburgh, PA 15213 USA
关键词
languages; performance; algorithms; memoization; selective; programmer controlled;
D O I
10.1145/640128.604133
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:14 / 25
页数:12
相关论文
共 37 条
[1]  
Aho A.V., 1974, The Design and Analysis of Computer Algorithms
[2]  
ALLEN J, 1978, ANATOMY LISP
[3]  
[Anonymous], 1987, IMPLEMENTATION FUNCT
[4]  
[Anonymous], 1990, SPECIFICATION TRANSF
[5]  
Bellman R., 1957, DYNAMIC PROGRAMMING
[6]   ELIMINATING REDUNDANT RECURSIVE CALLS [J].
COHEN, NH .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1983, 5 (03) :265-299
[7]  
Cormen T. H., 1990, INTRO ALGORITHMS
[8]  
FIELD J, 1990, PROCEEDINGS OF THE 1990 ACM CONFERENCE ON LISP AND FUNCTIONAL PROGRAMMING, P307, DOI 10.1145/91556.91679
[9]  
GOTO E, 1976, P 3 ACM S SYMB ALG C, P154, DOI DOI 10.1145/800205.806334
[10]   Caching function calls using precise dependencies [J].
Heydon, A ;
Levin, R ;
Yu, Y .
ACM SIGPLAN NOTICES, 2000, 35 (05) :311-320