Skip to main content

Safety of Strictness Analysis via Term Graph Rewriting

  • Conference paper
Static Analysis (SAS 2000)

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

Included in the following conference series:

Abstract

A safe abstraction is presented for a restricted form of term graph rewriting. This abstraction can be seen as a formalisation of the rewrite system employed by the strictness analyser in the Concurrent Clean compiler. Programs written in a core functional language are interpreted as graph rewriting systems using a form of equational term graph rewriting due to Ariola and Arvind. Abstract graphs are defined by extending the signature of ordinary graphs and it is shown how to extend a rewriting system on ordinary graphs to one on abstract graphs. An abstraction relation between abstract graphs is used to define a notion of safety with respect to a variant of Ariola and Arvind’s direct approximation semantics, and this notion of safety is shown to be adequate for strictness analysis. Abstract reduction is defined as the union of the extended rewrite system with additional ‘heuristic’ reductions and shown to be safe.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abramsky, S., Hankin, C.L. (eds.): Abstract Interpretation of Declarative Languages. Computers and Their Applications. Ellis Horwood (1987)

    Google Scholar 

  2. Ariola, Z., Klop, J.W.: Equational term graph rewriting. Fundamentae Informatica 26(3,4), 207–240 (1996)

    MATH  MathSciNet  Google Scholar 

  3. Ariola, Z., Arvind: Properties of a first-order functional language with sharing. Theoretical Computer Science 146(1-2), 69–108 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  4. Ariola, Z., Blom, S.: Cyclic lambda calculi. In: Ito, T., Abadi, M. (eds.) TACS 1997. LNCS, vol. 1281. Springer, Heidelberg (1997)

    Google Scholar 

  5. Barendregt, H.P., van Eekelen, M.C.J.D., Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R.: Term graph rewriting. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds.) PARLE 1987. LNCS, vol. 259, pp. 141–158. Springer, Heidelberg (1987)

    Google Scholar 

  6. Barendsen, E., Smetsers, S.: Uniqueness typing for functional languages with graph rewriting semantics. Mathematical Structures in Computer Science 6, 579–612 (1996)

    MATH  MathSciNet  Google Scholar 

  7. Chuang, T.-R., Goldberg, B.: A syntactic approach to fixed point computation on finite domains. In: Proc. 1992 ACM Conference on LISP and Functional Programming. ACM, New York (1992)

    Google Scholar 

  8. Clark, D.J., Hankin, C.: A lattice of abstract graphs. In: Penjam, J., Bruynooghe, M. (eds.) PLILP 1993. LNCS, vol. 714, pp. 318–331. Springer, Heidelberg (1993)

    Google Scholar 

  9. Clark, D.J.: Term Graph Rewriting and Event Structures. PhD thesis, Imperial College, University of London (1996)

    Google Scholar 

  10. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixed points. In: Proc. Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, pp. 238–252 (1977)

    Google Scholar 

  11. Gordon, A.D., Pitts, A.M. (eds.): Higher Order Operational Techniques in Semantics. Publications of the Newton Institute. Cambridge University Press (1998)

    Google Scholar 

  12. Goubault, E., Hankin, C.L.: A lattice for the abstract interpretation of term graph rewriting systems. In: Term Graph Rewriting, theory and practice, pp. 131–140. John Wiley and Sons Ltd, Chichester (1993)

    Google Scholar 

  13. Kennaway, J.R., Klop, J.W., Sleep, M.R., de Vries, F.J.: Comparing curried and uncurried rewriting. J. Symbolic Computation 21, 15–39 (1996)

    Article  MATH  Google Scholar 

  14. Klop, J.W.: Term rewriting systems. In: Abramsky, S., Gabbay, D.M., Maibaum, T. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 1–116. Oxford University Press, New York (1992)

    Google Scholar 

  15. Nielson, F., Nielson, H.R., Hankin, C.L.: Principles of Program Analysis. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  16. Nöcker, E.: Strictness analysis based on abstract reduction of term graph rewrite systems. In: Proc. Workshop on Implementation of Lazy Functional Languages (1988)

    Google Scholar 

  17. Nöcker, E.: Strictness analysis using abstract reduction. In: Proc. Conference on Functional Programming Languages and Computer Architectures (FPCA 1993), Copenhagen. ACM Press, New York (1993)

    Google Scholar 

  18. Nöcker, E.: Efficient Functional Programming. PhD thesis, Department of Computer Science, University of Nijmegen, Toernooiveld 1, 6525 ED Nijmegen, The Netherlands (1994)

    Google Scholar 

  19. Sands, D., Moran, A.: Improvement in a lazy context: an operational theory for call-by-need. In: Proc. Twenty-sixth ACM Symposium on Principles of Programming Languages, San Antonio, Texas (January 1999)

    Google Scholar 

  20. Schütz, M., Schmidt-Schauß, M., Panitz, S.E.: Strictness analysis by abstract reduction using a tableau calculus. In: Mycroft, A. (ed.) SAS 1995. LNCS, vol. 983, pp. 348–365. Springer, Heidelberg (1995)

    Google Scholar 

  21. Turner, D.N., Wadler, P., Mossin, C.: Once upon a type. In: Proc. 7th International Conference on Functional Programming and Computer Architecture, San Diego, California (June 1995)

    Google Scholar 

  22. van Eekelen, M.C.J., Goubault, E., Hankin, C.L., Nöcker, E.: Abstract reduction: Towards a theory via abstract interpretation. In: Term Graph Rewriting, theory and practice, pp. 117–130. John Wiley and Sons Ltd, Chichester (1993)

    Google Scholar 

  23. van Oostrom, V.: Confluence for Abstract and Higher-Order Rewriting. PhD thesis, Vrije Universiteit, Amsterdam (1994)

    Google Scholar 

  24. Wansbrough, K., Jones, S.P.: Once upon a polymorphic type. In: Proc. Twenty-sixth ACM Symposium on Principles of Programming Languages, San Antonio, Texas (January 1999)

    Google Scholar 

  25. Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Clark, D., Hankin, C., Hunt, S. (2000). Safety of Strictness Analysis via Term Graph Rewriting. In: Palsberg, J. (eds) Static Analysis. SAS 2000. Lecture Notes in Computer Science, vol 1824. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45099-3_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45099-3_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67668-3

  • Online ISBN: 978-3-540-45099-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics