Graph explorer

Selective Memoization

This paper presents language techniques for applying memoization selectively. The techniques provide 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 approach are that it accepts and efficient implementation and yields programs whose performance can be analyzed using standard analysis techniques. We describe our approach in the context of a functional language called MFL and an implementation as a Standard ML library. The MFL language employs a modal type system to enable the programmer to express programs that reveal their true data dependences when executed. We prove that the MFL language is sound by showing that that MFL programs yield the same result as they would with respect to a standard, non-memoizing semantics. The SML implementation cannot support the modal type system of MFL statically but instead employs run-time checks to ensure correct usage of primitives.

5 nodes4 linksoverview previewSelective Memoization
5 nodes4 links
Selective Memoization5 visible / 5 total nodes / 7 links
Co-authorshipCo-authorshipCo-authorshipAuthorshipAuthorshipAuthorshipTopic signalWSelective Memoizationpreprint / 2011AUmut A. AcarResearcherAGuy E. BlellochResearcherARobert HarperResearcherTProgramming Languages1239 works
PaperSignal 104 links

Selective Memoization

preprint / 2011

Open