Hostname: page-component-6766d58669-76mfw Total loading time: 0 Render date: 2026-05-16T07:35:13.235Z Has data issue: false hasContentIssue false

Pushdown flow analysis with abstract garbage collection

Published online by Cambridge University Press:  21 May 2014

J. IAN JOHNSON
Affiliation:
Northeastern University, Boston, MA, USA (e-mail: ianj@ccs.neu.edu)
ILYA SERGEY
Affiliation:
IMDEA Software Institute, Madrid, Spain (e-mail: ilya.sergey@imdea.org)
CHRISTOPHER EARL
Affiliation:
University of Utah, Salt Lake City, UT, USA (e-mail: cwearl@cs.utah.edu)
MATTHEW MIGHT
Affiliation:
University of Utah, Salt Lake City, UT, USA (e-mail: might@cs.utah.edu)
DAVID VAN HORN
Affiliation:
University of Maryland, MD, USA (e-mail: dvanhorn@cs.umd.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2014 
Submit a response

Discussions

No Discussions have been published for this article.