Skip to main content

Fast strictness analysis via symbolic fixpoint iteration

  • Invited Talk
  • Conference paper
  • First Online:
Static Analysis (SAS 1994)

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

Included in the following conference series:

  • 130 Accesses

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.

Most of this research was done while the author was at Yale University. The work was supported in part by NSF and DARPA grants CCR-8809919 and N00014-88-K-0573, respectively.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Abramsky and C. Hankin, editors. Abstract Interpretation of Declarative Languages. Ellis Horwood, 1987.

    Google Scholar 

  2. A. D. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.

    Google Scholar 

  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. A. Bloss, P. Hudak, and J. Young. Code optimizations for lazy evaluation. Lisp and Symbolic Computation, 1:147–164, 1988.

    Article  Google Scholar 

  5. R. M. Burstall, and J. Darlington. A transformational system for developing recursive programs. Journal of ACM, 24(1):44–67, 1977.

    Article  Google Scholar 

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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Baudouin Le Charlier

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Consel, C. (1994). Fast strictness analysis via symbolic fixpoint iteration. In: Le Charlier, B. (eds) Static Analysis. SAS 1994. Lecture Notes in Computer Science, vol 864. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58485-4_56

Download citation

  • DOI: https://doi.org/10.1007/3-540-58485-4_56

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58485-8

  • Online ISBN: 978-3-540-49005-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics