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.
References
Burn G, Hankin C, and Abramsky S, "Strictness analysis of higher order functions", Dept of Computer Science, Imperial College, Lone, June 1985.
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.
Hudak P and Kranz D, "A combinator-based compiler for a functional language", 11th Annual symposium on Principles of Programming Languages, January 1984.
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.
Hughes RJM "Graph reduction with supercombinators", PRG-25, Programming Research Group, Oxford, June 1982.
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.
Johnsson T, "Lambda lifting", Proc Aspenas Workshop on Implementations of Functional Languages, Chalmers Inst, Goteborg, Sweden, Jan 1985.
Kornfeld W, "Combinatorially implosive algorithms", Computer Lab, MIT, 1979.
Meira SL, "Optimised combinatoric code for applicative language implementation", Proc 6th International Symposium on Programming, Springer Verlag, 1984.
Mishra P and Keller RM "Static inference of properties of applicative programs", 11th Annual Symposium on Principles of Programming Languages, January 1984.
Mycroft A, "Abstract interpretation and optimising transformations for applicative programs", Department of Computer Science, University of Edinburgh, December 1983.
Wray SC, "A new strictness detection algorithm", Proc Aspenas Workshop on Implementations of Functional Languages, Chalmers Inst, Goteborg, Sweden, Jan 1985.
Author information
Authors and Affiliations
Editor information
Rights 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