Advertisement

Fast strictness analysis via symbolic fixpoint iteration

  • Charles Consel
Invited Talk
Part of the Lecture Notes in Computer Science book series (LNCS, volume 864)

Abstract

Strictness analysis (at least for flat domains) is well understood. For a few years the main concern was efficiency, since the standard analysis was shown to be exponential in the worst case [9]. Thus lots of research evolved to find efficient average-case algorithms. In Yale Haskell we have implemented a strictness analyzer that computes fixpoints via symbolic manipulation of boolean functions. This extremely simple approach also is extremely fast — the strictness analysis phase of our compiler typically takes about 1% of the overall compilation time.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Abramsky and C. Hankin, editors. Abstract Interpretation of Declarative Languages. Ellis Horwood, 1987.Google Scholar
  2. 2.
    A. D. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.Google Scholar
  3. 3.
    J. M. Ashley and C. Consel. Fixpoint computation for polyvariant static analyses of higher-order applicative programs. ACM Transactions on Programming Languages and Systems, 1994. To appear.Google Scholar
  4. 4.
    A. Bloss, P. Hudak, and J. Young. Code optimizations for lazy evaluation. Lisp and Symbolic Computation, 1:147–164, 1988.CrossRefGoogle Scholar
  5. 5.
    R. M. Burstall, and J. Darlington. A transformational system for developing recursive programs. Journal of ACM, 24(1):44–67, 1977.CrossRefGoogle Scholar
  6. 6.
    W. N. Chin. Automatic Methods for Program Transformation. PhD thesis, University of London, Imperial College of Science, Technology and Medecine, London, UK, 1990.Google Scholar
  7. 7.
    T-R. Chuang and B. Goldberg. A syntactic approach to fixed point computation on finite domains. In ACM Conference on Lisp and Functional Programming, pages 109–118, 1992.Google Scholar
  8. 8.
    C. Hankin and D. Le Métayer. Deriving algorithms from type inference systems: application to strictness analysis. In ACM Symposium on Principles of Programming Languages, pages 202–212, 1994.Google Scholar
  9. 9.
    P. Hudak and J. Young. Higher-order strictness analysis in untyped lambda calculus. In ACM Symposium on Principles of Programming Languages, pages 97–109, 1986.Google Scholar
  10. 10.
    N. D. Jones and A. Mycroft. Data flow analysis of applicative programs using minimal function graphs. In ACM Symposium on Principles of Programming Languages, 1986.Google Scholar
  11. 11.
    S. L. Peyton Jones and Jon Salkild. The spineless tagless G-machine. In FPCA'89, 4th International Conference on Functional Programming Languages and Computer Architecture, pages 184–201, 1989.Google Scholar
  12. 12.
    P. Wadler and R. J. M. Hughes. Projections for strictness analysis. In FPCA'87, 2th International Conference on Functional Programming Languages and Computer Architecture, 1987.Google Scholar
  13. 13.
    J. Young, and P. Hudak. Finding Fixpoints on Function Spaces. Technical Report YALEU/DCS/RR-505, Yale University, New Haven, Connecticut, USA, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Charles Consel
    • 1
  1. 1.Université de Rennes/IrisaRennes CedexFrance

Personalised recommendations