Skip to main content

The Abstract Interpretation of Higher-Order Functional Languages: From Properties to Abstract Domains

(Technical Summary)

  • Conference paper
Functional Programming, Glasgow 1991

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

  • 77 Accesses

Abstract

Over recent years a number of analysis techniques have been developed for higher-order lazy functional languages, and although a few studies have been made comparing the techniques, no fundamental basis for their comparison has yet been found. We suggest that studying the properties an analysis technique can represent, and the ways it has for combining and decomposing them, provides such a basis. Using this notion, we are able to give a rational reconstruction of the use of the tensor product in abstract interpretation. Furthermore, it enables us to see what the appropriate notion of a relational method for the abstract interpretation of a higher-order functional language is, and to show that using the tensor product is not sufficient for defining such an analysis. The paper concludes with observations about several open problems.

This research was partially funded by the Semantique Project — ESPRIT BRA 3124.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

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.

Similar content being viewed by others

Bibliography

  1. S. Abramsky. Abstract interpretation, logical relations and Kan extensions. Journal of Logic and Computation, 1 (1): 5–39, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  2. H.-J. Bandelt. The tensor product of continuous lattices. Mathematische Zeitschrift, 172: 89–96, 1980.

    Article  MATH  MathSciNet  Google Scholar 

  3. G.L. Burn. Abstract Interpretation and the Parallel Evaluation of Functional Languages. PhD thesis, Imperial College, University of London, March 1987.

    Google Scholar 

  4. G.L. Burn. Lazy Functional Languages: Abstract Interpretation and Compilation. Research Monographs in Parallel and Distributed Computing. Pitman in association with MIT Press, 1991. 238 pp.

    MATH  Google Scholar 

  5. G.L. Burn, C.L. Hankin, and S. Abramsky. Strictness analysis of higher-order functions. Science of Computer Programming, 7: 249–278, November 1986.

    Article  MATH  MathSciNet  Google Scholar 

  6. G.L. Burn and L.S. Hunt. Relating projection- and abstract interpretation-based analyses. Draft Manuscript, Department of Computing, Imperial College, 180 Queen’s Gate, London, SW7 2BZ, UK, July 1991.

    Google Scholar 

  7. P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Proceedings of the Sixth Annual Symposium on Principles of Programming Languages, pages 269–282. ACM, January 1979.

    Chapter  Google Scholar 

  8. K. Davis and P. Wadler. Strictness analysis: Proved and improved. In Proceedings of the Second Annual Glasgow Workshop on Functional Programming, 21-23 August, 1989, Fraserburgh Scotland, Springer Workshops in Computing. Springer-Verlag, 1990.

    Google Scholar 

  9. C. Ernoult and A. Mycroft. Uniform ideals and strictness analysis. In Proceedings of ICALP’91. Springer-Verlag Lecture Notes in Computer Science, 1991.

    Google Scholar 

  10. P. Granger. Combinations of semantic analyses. In INRIA, editor, Proceedings of Informatika 88 (French-Soviet Workshop)pages 71–88, Nice, February 1988.

    Google Scholar 

  11. P. Hudak and J. Young. Higher order strictness analysis in untyped lambda calculus. In Proceedings of 12th ACM Symposium on Principles of Programming Languages, pages 97–109, January 1986.

    Google Scholar 

  12. R.J.M. Hughes and J. Launchbury. Towards relating forwards and backwards analyses. In Proceedings of the Third Annual Glasgow Workshop on Functional Programming, pages 145–155, Ullapool, Scotland, 13–15 August 1990.

    Google Scholar 

  13. L.S. Hunt. PERs generalise projections for strictness analysis. In Proceedings of the Third Annual Glasgow Workshop on Functional Programming, pages 156–168, Ullapool, Scotland, 13–15 August 1990.

    Google Scholar 

  14. L.S. Hunt. Forwards and backwards strictness analysis: Continuing the comparison. Unpublished manuscript, Department of Computing, Imperial College, 180 Queen’s Gate, London SW7 2BZ, UK, 3rd May 1991.

    Google Scholar 

  15. T.P. Jensen. Strictness analysis in logical form. In Proceedings of the Conference on Functional Programming and Computer Architecture, Cambridge, Massachussets, USA, 26–28 August 1991.

    Google Scholar 

  16. N.D. Jones and F. Nielson. Abstract interpretation: a semantics-based tool for program analysis. In S. Abramsky, D.M. Gabbai, and T.S.E. Maibaum, editors, Handbook of Logic in Computer Science, volume 3. Oxford University Press, 1992. To appear.

    Google Scholar 

  17. Tsung-Min Kuo and P. Mishra. Strictness analysis: a new perspective based on type inference. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pages 260–272, London, 11–13 September 1989. ACM.

    Google Scholar 

  18. J. Lambek and P.J. Scott. Introduction to Higher Order Categorical Logic. Number 7 in Cambridge Studies in Advanced Mathematics. Cambridge University Press, 1986.

    MATH  Google Scholar 

  19. S. Lang. Algebra. Addison-Wesley, second edition, 1984.

    MATH  Google Scholar 

  20. S.S. Muchnick and N.D. Jones, editors. Program Flow Analysis: Theory and Applications. Prentice-Hall Software Series. Prentice-Hall, 1981. ISBN 0-13-729681-9.

    MATH  Google Scholar 

  21. A. Mycroft. Abstract Interpretation and Optimising Transformations for Applicative Programs. PhD thesis, University of Edinburgh, Department of Computer Science, December 1981. Also published as CST-15-81.

    Google Scholar 

  22. F. Nielson. Tensor products generalize the relational data flow analysis method. In Proceedings of the 4th Hungarian Computer Science Conference, pages 211–225, 1985.

    Google Scholar 

  23. F. Nielson. Two-level semantics and abstract interpretation. Theoretical Computer Science, 69: 117–242, 1989.

    Article  MATH  MathSciNet  Google Scholar 

  24. F. Nielson and H. Riis Nielson. The tensor product in Wadler’s analysis of lists. Preliminary version of Chapter 8 of Two-level Functional Languages, CUP, 1992.

    Google Scholar 

  25. G.D. Plotkin. Lambda definability and logical relations. Technical report, Department of AI, University of Edinburgh, 1973.

    Google Scholar 

  26. P. Wadler and R. J. M. Hughes. Projections for strictness analysis. In G. Kahn, editor, Proceedings of the Functional Programming Languages and Computer Architecture Conference, pages 385–407. Springer-Verlag LNCS 274, September 1987.

    Google Scholar 

  27. P.L. Wadler. Strictness analysis on non-flat domains (by abstract interpretation over finite domains). In S. Abramsky and C.L. Hankin, editors, Abstract Interpretation of Declarative Languages, chapter 12, pages 266–275. Ellis Horwood Ltd., Chichester, West Sussex, England, 1987.

    Google Scholar 

  28. D.A. Wright. A new technique for strictness analysis. In Proceedings of TAPSOFT91, Brighton, UK, 8–12 April 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1992 British Computer Society

About this paper

Cite this paper

Burn, G.L. (1992). The Abstract Interpretation of Higher-Order Functional Languages: From Properties to Abstract Domains. In: Heldal, R., Holst, C.K., Wadler, P. (eds) Functional Programming, Glasgow 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3196-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3196-0_5

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19760-7

  • Online ISBN: 978-1-4471-3196-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics