Summary: Selective Memoization
Umut A. Acar Guy E. Blelloch Robert Harper
16 January 2003
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213-3890
We present a framework for applying memoization selectively. The framework pro-
vides programmer control over equality, space usage, and identification 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 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 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.