Strictness computation using special λ-expressions

  • Dieter Maurer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 217)


In order to exploit implicit parallelism in demand driven functional programs the inference of information about the strictness of user defined functions is helpful. This article extends results of Mycroft [Myc80] about strictness detection in first order programs to higher order programs. Information about the strictness of higher order functions is represented by special λ-expressions, so called need expressions. A program over λ-expressions is translated into a program over need expressions by interpreting the constants as closed need expressions. After a suitable approximation — essentially a partial typing — expressions are computed by an iterative method allowing to derive strictness information for the functions defined in the original program.


Free Variable Safe Information Continuous Lattice Denotational Semantic Semantic Domain 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abr85.
    Samson Abramsky, “Strictness Analysis and Polymorphic Invariance”, these proceedings, 1985.Google Scholar
  2. Apt81.
    K. Apt and G. Plotkin, “A Cook's Tour of Countable Nondeterminism”, ICALP 81, p. 479–494, 1981.Google Scholar
  3. Bar81.
    H.P. Barendregt, “The Lambda Calculus: Its Syntax and Semantics”, in Studies in Logic and the Foundations of Mathematics, North-Holland, 1981.Google Scholar
  4. Bur85.
    G. L. Burn, C. L. Hankin and S. Abramsky, “The Theory and Practice of Strictness Analysis for Higher Order Functions”, these proceedings, 1985.Google Scholar
  5. Bur84.
    F. Warren Burton, Controlling Speculative Computation in a Parallel Functional Programming Language, Feb. 84., unpublishedGoogle Scholar
  6. Cla85.
    Chris Clack and Simon Peyton Jones, “Strictness Analysis — A Practical Approach”, Proc. Functional Programming Languages and Computer Architecture, p. 35–49, Sept. 1985.Google Scholar
  7. Dam82.
    L. Damas and R. Milner, “Principal type schemes for functional programs.”, 9th ACM Symp. on Principles of programming languages, 1982.Google Scholar
  8. Ilud85.
    P. Hudak and J. Young, “A Set-Theoretic Characterization of Function Strictness in the Lambda Calculus”, Research Report YALEU/DCS/RR-391, Yale University, Department of Computer Science, Jan. 1985.Google Scholar
  9. Ilug85.
    R.J.M. Hughes, “Why Functional Programming Matters”, Internal report, Programming Methodology Group, Chalmers Institute of Technology, Gothenburg, Sweden, 1985.Google Scholar
  10. Ker84.
    W. H. Kersjes, A Reduction Strategy for Efficient Parallel Evaluation of Functional Programs Using Program Analysis, 1984., RWTH AachenGoogle Scholar
  11. Mau86.
    Dieter Maurer, Strictness Analysis for Higher Order Programs, 1986., to appearGoogle Scholar
  12. Myc80.
    A. Mycroft, “The Theory and Practice of Transforming Call-by-Need into Call-by-Value.”, Proc. 4th Int. Symp. on Prgramming: Lecture Notes in Computer Science, number 83, Paris, pp. 269–281, 1980.Google Scholar
  13. Sco72.
    D. S. Scott, “Continous lattices”, in Toposes, Algebraic Geometry and Logic, ed. F. W. Lawvere, p. 97–136, LNM 274, 1972.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Dieter Maurer
    • 1
  1. 1.Universität des SaarlandesSaarbrücken

Personalised recommendations