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.
Preview
Unable to display preview. Download preview PDF.
References
S. Abramsky and C. Hankin, editors. Abstract Interpretation of Declarative Languages. Ellis Horwood, 1987.
A. D. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.
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.
A. Bloss, P. Hudak, and J. Young. Code optimizations for lazy evaluation. Lisp and Symbolic Computation, 1:147–164, 1988.
R. M. Burstall, and J. Darlington. A transformational system for developing recursive programs. Journal of ACM, 24(1):44–67, 1977.
W. N. Chin. Automatic Methods for Program Transformation. PhD thesis, University of London, Imperial College of Science, Technology and Medecine, London, UK, 1990.
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.
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.
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.
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.
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.
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.
J. Young, and P. Hudak. Finding Fixpoints on Function Spaces. Technical Report YALEU/DCS/RR-505, Yale University, New Haven, Connecticut, USA, 1986.
Author information
Authors and Affiliations
Editor information
Rights 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