Fast strictness analysis via symbolic fixpoint iteration
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 . 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.
Unable to display preview. Download preview PDF.
- 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
- 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