Applicative caching: Programmer control of object sharing and lifetime in distributed implementations of applicative languages

R. M. Keller, M. R. Sleep

Research output: Contribution to journalArticle

3 Citations (Scopus)


The “referential transparency” of applicative language expressions demands that all occurrences of an expression in a given context yield the same value. In principle, that value therefore needs to be computed only once. However, in recursive programming, a context usually unfolds dynamically, precluding textual recognition of multiple occurrences, so that such occurrences are recomputed. To remedy the lack, in applicative languages, of an ability to store and retrieve a computed value under programmer control, “caching functionals” are proposed which allow the programmer to selectively avoid recomputation without overt use of assignment. The uses and implementation of such mechanisms are discussed, including reasons and techniques for purging the underlying cache. Our approach is an extension of the early notion of “memo function”, enabling improved space utilization and a “building-block” approach.
Original languageEnglish
Pages (from-to)88-108
Number of pages21
JournalACM Transactions on Programming Languages and Systems
Issue number1
Publication statusPublished - 1986

Cite this