Skip to main content
×
Home
    • Aa
    • Aa

Pushdown flow analysis with abstract garbage collection

  • J. IAN JOHNSON (a1), ILYA SERGEY (a2), CHRISTOPHER EARL (a3), MATTHEW MIGHT (a4) and DAVID VAN HORN (a5)...
Abstract
Abstract

In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection push the boundaries of what we can learn about programs statically. This work illuminates and poses solutions to theoretical and practical challenges that stand in the way of combining the power of these techniques. Pushdown flow analysis grants unbounded yet computable polyvariance to the analysis of return-flow in higher-order programs. Abstract garbage collection grants unbounded polyvariance to abstract addresses which become unreachable between invocations of the abstract contexts in which they were created. Pushdown analysis solves the problem of precisely analyzing recursion in higher-order languages; abstract garbage collection is essential in solving the “stickiness” problem. Alone, our benchmarks demonstrate that each method can reduce analysis times and boost precision by orders of magnitude. We combine these methods. The challenge in marrying these techniques is not subtle: computing the reachable control states of a pushdown system relies on limiting access during transition to the top of the stack; abstract garbage collection, on the other hand, needs full access to the entire stack to compute a root set, just as concrete collection does. Conditional pushdown systems were developed for just such a conundrum, but existing methods are ill-suited for the dynamic nature of garbage collection. We show fully precise and approximate solutions to the feasible paths problem for pushdown garbage-collecting control-flow analysis. Experiments reveal synergistic interplay between garbage collection and pushdown techniques, and the fusion demonstrates “better-than-both-worlds” precision.

    • Send article to Kindle

      To send this article to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle.

      Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

      Find out more about the Kindle Personal Document Service.

      Pushdown flow analysis with abstract garbage collection
      Available formats
      ×
      Send article to Dropbox

      To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your Dropbox account. Find out more about sending content to Dropbox.

      Pushdown flow analysis with abstract garbage collection
      Available formats
      ×
      Send article to Google Drive

      To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your Google Drive account. Find out more about sending content to Google Drive.

      Pushdown flow analysis with abstract garbage collection
      Available formats
      ×
Copyright
Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

A. Bouajjani , J. Esparza & O. Maler (1997) Reachability analysis of pushdown automata: Application to Model-Checking. In Proceedings of the 8th International Conference on Concurrency Theory (CONCUR '97). Springer-Verlag, pp. 135150.

C. Earl , I. Sergey , M. Might & D. Van Horn (2012) Introspective pushdown analysis of higher-order programs. In Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming (ICFP 2012), ICFP '12. ACM, pp. 177188.

J. Esparza , A. Kucera & S. Schwoon (2003) Model checking LTL with regular valuations for pushdown systems. Inf. Comput. 186 (2), 355376.

M. Felleisen & D. P. Friedman (1987) A calculus for assignments in higher-order languages. In Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '87), ACM, pp. 314.

C. Flanagan , A. Sabry , B. F. Duba & M. Felleisen (1993, June) The essence of compiling with continuations. In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (PLDI '93). ACM, pp. 237247.

S. Ginsburg , S. A. Greibach & M. A. Harrison (1967) One-way stack automata. J. ACM 14 (2), 389418.

N. Kobayashi (2009, January) Types and higher-order recursion schemes for verification of higher-order programs. SIGPLAN Not. 44 (1), 416428.

D. Melski & T. W. Reps (2000, October). Interconvertibility of a class of set constraints and context-free-language reachability. Theor. Comput. Sci. 248 (1-2), 2998.

M. Might , B. Chambers & O. Shivers (2007, January) Model checking via Gamma-CFA. In Verification, Model Checking, and Abstract Interpretation, B. Cook & A. Podelski (eds), Springer-Verlag, LNCS, pp. 5973.

M. Might , D. Darais & D. Spiewak (2011) Parsing with derivatives: a functional pearl. In Proceeding of the 16th ACM SIGPLAN international conference on Functional Programming (ICFP '11). ACM, pp. 189195.

M. Might & P. Manolios (2009) A posteriori soundness for non-deterministic abstract interpretations. In Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI '09). Springer-Verlag, pp. 260274.

M. Might & O. Shivers (2006a) Environment analysis via Delta-CFA. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2006). ACM, pp. 127140.

M. Might , Y. Smaragdakis & D. Van Horn (2010) Resolving and exploiting the k-CFA paradox: Illuminating functional vs. object-oriented program analysis. In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '10). ACM Press, pp. 305315.

S. Owens , J. Reppy & A. Turon (2009) Regular-expression derivatives re-examined. J. Funct. Program. 19 (02), 173190.

J. Rehof & M. Fähndrich (2001) Type-based flow analysis: From polymorphic subtyping to CFL-reachability. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '01). ACM, pp. 5466.

T. Reps (1998, December). Program analysis via graph reachability. Inf. Softw. Technol. 40 (11-12), 701726.

T. Reps , S. Schwoon , S. Jha & D. Melski (2005, October) Weighted pushdown systems and their application to interprocedural dataflow analysis. Sci. Comput. Program. 58 (1-2), 206263.

D. Van Horn & M. Might (2012) Systematic abstraction of abstract machines. J. Funct. Program. 22(Special Issue 4-5), 705746.

A. K. Wright & S. Jagannathan (1998, January) Polymorphic splitting: An effective polyvariant flow analysis. ACM Trans. Program. Lang. Syst. 20 (1), 166207.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×