Skip to main content

A Survey of Polyvariance in Abstract Interpretations

  • Conference paper
Trends in Functional Programming (TFP 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8322))

Included in the following conference series:

Abstract

Abstract interpretation is an efficient means for approximating program behaviors before run-time. It can be used as the basis for a number of different useful techniques in static analysis more broadly, and can thus in-turn be used to prove properties needed for security or optimization. Polyvariance represents a way of obtaining higher precision in an abstract interpretation by producing multiple abstract states for each function or lexical point of interest in the program. This paper explores the role of polyvariance in these analyses and how it is manifested, unifying the disparate presentations in the literature.

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 49.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. Agesen, O.: The cartesian product algorithm: Simple and precise type inference of parametric polymorphism. In: Echtle, K., Powell, D.R., Hammer, D. (eds.) EDCC 1994. LNCS, vol. 852, pp. 2–26. Springer, Heidelberg (1994)

    Google Scholar 

  2. Besson, F.C.: beats ∞-CFA. Formal Techniques for Java-like Programs, p. 7 (July 2009)

    Google Scholar 

  3. Cousot, P.: The calculational design of a generic abstract interpreter. In: Broy, M., Steinbrüggen, R. (eds.) Calculational System Design. NATO ASI Series F, pp. 421–506 (1999)

    Google Scholar 

  4. Cousot, P.: Types as Abstract Interpretations. In: Symposium on Principals of Programming Languages, pp. 316–331 (1997)

    Google Scholar 

  5. Cousot, P., Cousot, R.: Abstract Interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Symposium on Principals of Programming Languages, pp. 238–252 (1977)

    Google Scholar 

  6. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Symposium on Principals of Programming Languages, pp. 269–282 (1979)

    Google Scholar 

  7. Felleisen, M., Findler, R., Flatt, M.: Semantics Engineering with PLT Redex (August 2009)

    Google Scholar 

  8. Jagganathan, S., Weeks, S.: A Unified Treatment of Flow Analysis in Higher-Order Languages. In: ACM Symposium on Principles of Programming Languages, pp. 393–407. ACM Press (January 1995)

    Google Scholar 

  9. Jones, N.D.: A flexible approach to interprocedural data flow analysis and programs with recursive data structures. In: Symposium on Principles of Programming Languages, pp. 66–74 (1982)

    Google Scholar 

  10. Jones, N.D., Muchnick, S.: Flow analysis of lambda expressions (preliminary version). In: Even, S., Kariv, O. (eds.) ICALP 1981. LNCS, vol. 115, pp. 114–128. Springer, Heidelberg (1981)

    Chapter  Google Scholar 

  11. Midtgaard, J.: Control-Flow Analysis of Functional Programs. ACM Computing Surveys 44 (June 2012)

    Google Scholar 

  12. Midtgaard, J., Jensen, T.: A Calculational Approach to Control-Flow Analysis by Abstract Interpretation. In: Alpuente, M., Vidal, G. (eds.) SAS 2008. LNCS, vol. 5079, pp. 347–362. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  13. Midtgaard, J., Van Horn, D.: Subcubic Control Flow analysis Algorithms. Higher-Order and Symbolic Computation (May 2009)

    Google Scholar 

  14. Midtgaard, J., Jensen, T.: Control-ow analysis of function calls and returns by abstract interpretation. In: International Conference on Functional Programming (2009)

    Google Scholar 

  15. Might, M.: Abstract interpreters for free. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 407–421. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  16. Might, M.: Environment Analysis of Higher-Order Languages. Ph.D. Dissertation. Georgia Institute of Technology (2007)

    Google Scholar 

  17. Might, M.: Logic-Flow Analysis of Higher-Order Programs. In: Principals of Programming Langauges, pp. 185–198 (January 2007)

    Google Scholar 

  18. Might, M., Shivers, O.: Environment analysis via ΔCFA. In: Symposium on the Principals of Programming Languages, pp. 127–140 (January 2006)

    Google Scholar 

  19. Might, M., Shivers, O.: Improving flow analyses via ΓCFA: Abstract garbage collection and counting. In: International Conference on Functional Programming, pp. 13–25 (September 2006)

    Google Scholar 

  20. Might, M., Manolios, P.: A posteriori soundness for non-deterministic abstract interpretations. In: Jones, N.D., Müller-Olm, M. (eds.) VMCAI 2009. LNCS, vol. 5403, pp. 260–274. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  21. Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to analysis for Java. ACM Transaction on Software Engineering and Methodology, 1–41 (2005)

    Google Scholar 

  22. Nielson, F., Nielson, H.R., Hankin, C.: Principals of Program Analysis. Springer (1999)

    Google Scholar 

  23. Palsberg, J., Pavlopoulou, C.: From Polyvariant Flow Information to Intersection and Union Types. In: Principals of Programming Languages, pp. 197–208 (1998)

    Google Scholar 

  24. Shivers, O.: Control-flow analysis in Scheme. In: Programming Language Design and Implementation,pp. 164–174 (June 1988)

    Google Scholar 

  25. Shivers, O.: Control-Flow Analysis of Higher-Order Languages. PhD dissertation. School of Computer Science, Carnegie-Mellon University, Pittsburgh, Pennsylvania, Technical Report CMUCS-91-145 (May 1991)

    Google Scholar 

  26. Smaragdakis, Y., Bravenboer, M., Lhotak, O.: Pick your contexts well: understanding object-sensitivity. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 17–30. ACM, New York (2011)

    Google Scholar 

  27. Van Horn, D., Mairson, G.H.: Deciding k-CFA is complete for EXPTIME. In: International Conference on Functional Programming, pp. 275–282 (September 2008)

    Google Scholar 

  28. Van Horn, D., Mairson, H.G.: Flow analysis, linearity, and PTIME. In: Alpuente, M., Vidal, G. (eds.) SAS 2008. LNCS, vol. 5079, pp. 255–269. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  29. Van Horn, D., Might, M.: Abstracting Abstract Machines. In: International Conference on Functional Programming 2010, Baltimore, Maryland, pp. 51–62 (September 2010)

    Google Scholar 

  30. Wright, A.K., Jagannathan, S.: Polymorphic splitting: An effective polyvariant flow analysis. ACM Transactions on Programming Languages and Systems, 166–207 (January 1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gilray, T., Might, M. (2014). A Survey of Polyvariance in Abstract Interpretations. In: McCarthy, J. (eds) Trends in Functional Programming. TFP 2013. Lecture Notes in Computer Science, vol 8322. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45340-3_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45340-3_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45339-7

  • Online ISBN: 978-3-642-45340-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics