Abstract
A requirement of lazy evaluation is that the value of any subexpression in the program is calculated no more than once. This is achieved by updating an expression with its value, once computed. The problem is that updating is a costly operation, and experimentation has shown that it is only necessary in about 30% of cases (that is, 70% of expressions represent values that are only ever required once during execution). The aim of the analysis presented in this paper is to discover expressions that do not need to be updated, and thus reduce the execution time of the program. The analysis has been implemented in the Glasgow Haskell Compiler, and results are given.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
J. Launchbury. A natural semantics for lazy evaluation. In Symposium on Principles of Programming Languages. Springer-Verlag, 1993.
J. Launchbury, A. Gill, J. Hughes, S. Marlow, S. Peyton Jones, and P. Wadler. Avoiding unnecessary updates. In Launchbury and Sansom [Par92].
Will Partain. The nofib benchmark suite of Haskell programs. In J. Launchbury and P. M. Sansom, editors, Functional Proramming, Glasgow 1992, Ayr, Scotland, 1992. Springer Verlag, Workshops in Computing.
S. L. Peyton Jones. Implementing lazy functional languages on stock hardware: The Spineless Tagless G-machine. Journal of Functional Programming, 2(2):127–202, April 1992.
Will Partain and Simon Peyton Jones. On the effectiveness of a simple strictness analyser. In Functional Proramming, Glasgow 1993, Ayr, Scotland, 1993.
Andre Santos. Tuning a compiler’s allocation policy. In Functional Proramming, Glasgow 1993, Ayr, Scotland, 1993.
P. Sansom and S. L. Peyton Jones. Generational garbage collection for Haskell. In Functional Programming Languages and Computer Architecture, pages 106–116, Copenhagen, Denmark, 1993.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 British Computer Society
About this chapter
Cite this chapter
Marlow, S. (1994). Update Avoidance Analysis by Abstract Interpretation. In: O’Donnell, J.T., Hammond, K. (eds) Functional Programming, Glasgow 1993. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3236-3_14
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3236-3_14
Publisher Name: Springer, London
Print ISBN: 978-3-540-19879-6
Online ISBN: 978-1-4471-3236-3
eBook Packages: Springer Book Archive