Skip to main content

Update Avoidance Analysis by Abstract Interpretation

  • Chapter
Functional Programming, Glasgow 1993

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Launchbury. A natural semantics for lazy evaluation. In Symposium on Principles of Programming Languages. Springer-Verlag, 1993.

    Google Scholar 

  2. J. Launchbury, A. Gill, J. Hughes, S. Marlow, S. Peyton Jones, and P. Wadler. Avoiding unnecessary updates. In Launchbury and Sansom [Par92].

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Article  MATH  Google Scholar 

  5. Will Partain and Simon Peyton Jones. On the effectiveness of a simple strictness analyser. In Functional Proramming, Glasgow 1993, Ayr, Scotland, 1993.

    Google Scholar 

  6. Andre Santos. Tuning a compiler’s allocation policy. In Functional Proramming, Glasgow 1993, Ayr, Scotland, 1993.

    Google Scholar 

  7. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics