skip to main content
research-article

A posteriori environment analysis with Pushdown Delta CFA

Published:01 January 2017Publication History
Skip Abstract Section

Abstract

Flow-driven higher-order inlining is blocked by free variables, yet current theories of environment analysis cannot reliably cope with multiply-bound variables. One of these, ΔCFA, is a promising theory based on stack change but is undermined by its finite-state model of the stack. We present Pushdown ΔCFA which takes a ΔCFA-approach to pushdown models of control flow and can cope with multiply-bound variables, even in the face of recursion.

References

  1. Norman Adams, David Kranz, Richard Kelsey, Jonathan Rees, Paul Hudak, and James Philbin. Orbit: An optimizing compiler for Scheme, volume 21. ACM, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Lars Bergstrom, Matthew Fluet, Matthew Le, John Reppy, and Nora Sandler. Practical and effective higher-order optimizations. In Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming, ICFP ’14, pages 81–93. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Patrick Cousot and Radhia Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th ACM Symposium on Principles of Programming Languages, pages 238–252. ACM, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Christopher Earl, Matthew Might, and David Van Horn. Pushdown control-flow analysis of higher-order programs. In 2010 Workshop on Scheme and Functional Programming (Scheme 2010), Montreal, Quebec, Canada, August 2010.Google ScholarGoogle Scholar
  5. Kimball Germane and Matthew Might. A posteriori environment analysis via pushdown ∆CFA. Technical report, November 2016. http://kimball.germane.net/ germane2017pddeltacfa-techreport.pdf.Google ScholarGoogle Scholar
  6. Thomas Gilray, Steven Lyde, Michael D. Adams, Matthew Might, and David Van Horn. Pushdown control-flow analysis for free. In 43rd Annual ACM Symposium on Principles of Programming Languages, POPL ’16, pages 691–704, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. James Ian Johnson and David Van Horn. Abstracting abstract control. In 10th ACM Symposium on Dynamic Languages, pages 11–22. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Matthew Might. Environment Analysis of Higher-Order Languages. PhD thesis, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Matthew Might. Shape analysis in the absence of pointers and structure. In International Workshop on Verification, Model Checking, and Abstract Interpretation, pages 263–278. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Matthew Might and Olin Shivers. Environment analysis via ∆CFA. In 33rd ACM Symposium on Principles of Programming Languages, POPL ’06, pages 127–140, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Matthew Might and Olin Shivers. Improving flow analyses via ΓCFA: Abstract garbage collection and counting. In Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming, ICFP ’06, pages 13–25, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Olin Shivers. Control flow analysis in scheme. In ACM 1998 Conference on Programming Language Design and Implementation, PLDI ’88, pages 164–174. ACM, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Olin Shivers. Control-flow analysis of higher-order languages. PhD thesis, Carnegie Mellon University, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Guy L Steele Jr. Rabbit: A compiler for scheme. Technical report, Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dimitrios Vardoulakis. Cfa2: pushdown flow analysis for higher-order languages. PhD thesis, Northeastern University Boston, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Dimitrios Vardoulakis and Olin Shivers. CFA2: a context-free approach to control-flow analysis. In European Symposium on Programming, pages 570–589, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Dimitrios Vardoulakis and Olin Shivers. Pushdown flow analysis of first-class control. In Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming, ICFP ’11, pages 69– 80. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A posteriori environment analysis with Pushdown Delta CFA

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 52, Issue 1
      POPL '17
      January 2017
      901 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/3093333
      Issue’s Table of Contents
      • cover image ACM Conferences
        POPL '17: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages
        January 2017
        901 pages
        ISBN:9781450346603
        DOI:10.1145/3009837

      Copyright © 2017 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 January 2017

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!