Summary: Selective Memoization
Umut A. Acar Guy E. Blelloch Robert Harper
16 January 2003
CMU-CS-04-155
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Abstract
We present a framework for applying memoization selectively. The framework pro-
vides programmer control over equality, space usage, and identication of precise de-
pendences so that memoization can be applied according to the needs of an application.
Two key properties of the framework are that it is e∆cient and yields programs whose
performance can be analyzed using standard techniques.
We describe the framework in the context of a functional language and an imple-
mentation 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 exe-
cuted. The SML implementation cannot support this modal type system statically, but
instead employs run-time checks to ensure correct usage of primitives.
This research was supported in part by NSF grants CCR-9706572, CCR-0085982, and CCR-0122581.
1