Caching function calls using precise dependencies

  • Authors:
  • Allan Heydon;Roy Levin;Yuan Yu

  • Affiliations:
  • Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA;Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA;Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA

  • Venue:
  • PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes the implementation of a purely functionalprogramming language for building software systems. In this language,external tools like compilers and linkers are invoked by function calls. Because some function calls are extremely expensive, it is obviously important to reuse the results of previous function calls whenever possible. Caching a function call requires the language interpreter to record all values on which the function call depends. For optimal caching, it is important to record precise dependencies that are both dynamic and fine-grained. The paper sketches how we compute such dependencies, describes the implementation of an efficient function cache, and evaluates our implementation's performance.