Advertisement

On strictness and totality

  • Mario Coppo
  • Ferruccio Damiani
  • Paola Giannini
Invited Talk 2
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1281)

Abstract

In this paper we present a revised and extended version of the strictness and totality type assignment system introduced by Solberg, Nielson and Nielson in the Static Analysis Symposium '94. Our main result is that (w.r.t. the possibility of replacing safely a lazy application by a strict one) the strictness and totality information given by this system is equivalent to the information given by two separate systems: one for strictness, and one for totality. This result is interesting from both a theoretical (understanding of the relations between strictness and totality) and a practical (more efficient checking and inference algorithms) point of view. Moreover we prove that both the system for strictness and the system for totality have a sound and complete inclusion relation between types w.r.t. the semantics induced by the term model of a language including a convergence to weak head normal form test at higher types.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Abramsky. Abstract interpretation, logical relations and Kan extensions. Journal of Logic and Computation, 1(1):5–39, 1990.Google Scholar
  2. 2.
    P. N. Benton. Strictness Analysis of Lazy Functional Programs. PhD thesis. University of Cambridge, Pembroke College, 1992.Google Scholar
  3. 3.
    G. L. Burn, C. Hankin, and S. Abramsky. Strictness Analysis for Higher-Order Functions. Science of Computer Programming, 7:249–278, 1986.Google Scholar
  4. 4.
    M. Coppo, F. Damiani, and P. Giannini. Refinement Types for Program Analysis. In SAS'96, LNCS 1145, pages 143–158. Springer, 1996.Google Scholar
  5. 5.
    M. Coppo and A. Ferrari. Type inference, abstract interpretation and srictness analysis. Theoretical Computer Science, 121:113–145, 1993.Google Scholar
  6. 6.
    D. Dussart and F. Henglein and C. Mossin. Polymorphic Recursion and Subtype Qualifications: Polymorphic Binding-Time Analysis in Polynomial Time. In SAS'95, LNCS 983, pages 118–135. Springer, 1995.Google Scholar
  7. 7.
    F. Damiani and P. Giannini. An Inference Algorithm for Strictness. In TLCA'97, LNCS 1210, pages 129–146. Springer, 1997.Google Scholar
  8. 8.
    C. Hankin and D. Le Métayer. Deriving algorithms for type inference systems: Applications to strictness analysis. In POPL'94, pages 202–212. ACM, 1994.Google Scholar
  9. 9.
    T. P. Jensen. Abstract Interpretation in Logical Form. PhD thesis, University of London, Imperial College, 1992.Google Scholar
  10. 10.
    G. Kahn. Natural semantics. In K. Fuchi and M. Nivat, editors, Programming Of Future Generation Computer. Elsevier Sciences B.V. (North-Holland), 1988.Google Scholar
  11. 11.
    T. M. Kuo and P. Mishra. Strictness analysis: a new perspective based on type inference. In Functional Programming Languages and Computer Architecture, pages 260–272. ACM, 1989.Google Scholar
  12. 12.
    A. Mycroft. The theory and practice of transforming call-by-need into call-byvalue. In International Symposium on Programming, LNCS 83, pages 269–281. Springer, 1980.Google Scholar
  13. 13.
    A. Mycroft. Abstract Interpretation and Optimizing Transforming for Applicative programs. PhD thesis, University of Edinburgh, Scotland, 1981.Google Scholar
  14. 14.
    A. M. Pitts. Operationally-based theories of program equivalence. In A. M. Pitts and P. Dybjer, editors, Semantics and Logics of Computation, pages 241–298. Cambridge University Press, 1997.Google Scholar
  15. 15.
    K. L. Solberg. Annotated Type Systems for Program Analysis. PhD thesis, Aarhus University, Denmark, 1995. Revised version.Google Scholar
  16. 16.
    K. L. Solberg.Strictness and Totality Analysis with Conjunction. In TAPSOFT'95, LNCS 915, pages 501–515. Springer, I995.Google Scholar
  17. 17.
    K. L. Solberg, H. R. Nielson, and F. Nielson. Strictness and Totality Analysis. Science of Computer Programming. To appear.Google Scholar
  18. 18.
    K. L. Solberg, H. R. Nielson, and F. Nielson. Strictness and Totality Analysis. In SAS'94, LNCS 864, pages 408–422. Springer, 1994.Google Scholar
  19. 19.
    D. A. Wright. Reduction Types and Intensionality in the Lambda-Calculus. PhD thesis, University of Tasmania, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Mario Coppo
    • 1
  • Ferruccio Damiani
    • 1
  • Paola Giannini
    • 1
  1. 1.Dipartimento di InformaticaUniversitá di TorinoTorinoItaly

Personalised recommendations