Skip to main content

Strictness analysis — a practical approach

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 201))

Abstract

Significant improvements in performance arise if we can arrange for parallel execution of programs. The absence of side effects in functional languages allows concurrent evaluation of the program, but in lazy implementations this risks wasting work by evaluating expressions which are subsequently discarded. We discuss the use of strictness analysis to determine at compile time which parts of program evaluation can safely be carried out concurrently. We give a practical explanation of this technique, concentrating particularly on the problem of finding fixed points.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Burn G, Hankin C, and Abramsky S, "Strictness analysis of higher order functions", Dept of Computer Science, Imperial College, Lone, June 1985.

    Google Scholar 

  2. Cousot P and Cousot R, "Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixed points", in Proc 4th ACM Symposium on Principles of Programming Languages, Los Angeles, 1977.

    Google Scholar 

  3. Hudak P and Kranz D, "A combinator-based compiler for a functional language", 11th Annual symposium on Principles of Programming Languages, January 1984.

    Google Scholar 

  4. Hudak P and Young J, "A set theoretic characterisation of function strictness", Proc Aspenas Workshop on Implementations of Functional Languages, Chalmers Inst, Goteborg, Sweden, Jan 1985.

    Google Scholar 

  5. Hughes RJM "Graph reduction with supercombinators", PRG-25, Programming Research Group, Oxford, June 1982.

    Google Scholar 

  6. Johnsson T, "Detecting when call by value can be used instead of call by need", LPM MEMO 14, Department of Computer Science, Chalmers University of Technology, Sweden, October 1981.

    Google Scholar 

  7. Johnsson T, "Lambda lifting", Proc Aspenas Workshop on Implementations of Functional Languages, Chalmers Inst, Goteborg, Sweden, Jan 1985.

    Google Scholar 

  8. Kornfeld W, "Combinatorially implosive algorithms", Computer Lab, MIT, 1979.

    Google Scholar 

  9. Meira SL, "Optimised combinatoric code for applicative language implementation", Proc 6th International Symposium on Programming, Springer Verlag, 1984.

    Google Scholar 

  10. Mishra P and Keller RM "Static inference of properties of applicative programs", 11th Annual Symposium on Principles of Programming Languages, January 1984.

    Google Scholar 

  11. Mycroft A, "Abstract interpretation and optimising transformations for applicative programs", Department of Computer Science, University of Edinburgh, December 1983.

    Google Scholar 

  12. Wray SC, "A new strictness detection algorithm", Proc Aspenas Workshop on Implementations of Functional Languages, Chalmers Inst, Goteborg, Sweden, Jan 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jean-Pierre Jouannaud

Rights and permissions

Reprints and permissions

Copyright information

© 1985 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Clack, C., Peyton Jones, S.L. (1985). Strictness analysis — a practical approach. In: Jouannaud, JP. (eds) Functional Programming Languages and Computer Architecture. FPCA 1985. Lecture Notes in Computer Science, vol 201. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15975-4_28

Download citation

  • DOI: https://doi.org/10.1007/3-540-15975-4_28

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-15975-9

  • Online ISBN: 978-3-540-39677-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics