A relational approach to interprocedural shape analysis

24Citations
Citations of this article
19Readers
Mendeley users who have this article in their library.

Abstract

This article addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields, that is, interprocedural shape analysis. The article makes three contributions. It introduces a new method for abstracting relations over memory configurations for use in abstract interpretation. It shows how this method furnishes the elements needed for a compositional approach to shape analysis. In particular, abstracted relations are used to represent the shape transformation performed by a sequence of operations, and an overapproximation to relational composition can be performed using the meet operation of the domain of abstracted relations. It applies these ideas in a new algorithm for context-sensitive interprocedural shape analysis. The algorithm creates procedure summaries using abstracted relations over memory configurations, and the meet-based composition operation provides a way to apply the summary transformer for a procedure P at each call site from which P is called. The algorithm has been applied successfully to establish properties of both (i) recursive programs that manipulate lists and (ii) recursive programs that manipulate binary trees. © 2010 ACM.

Cite

CITATION STYLE

APA

Jeannet, B., Loginov, A., Reps, T., & Sagiv, M. (2010). A relational approach to interprocedural shape analysis. ACM Transactions on Programming Languages and Systems, 32(2). https://doi.org/10.1145/1667048.1667050

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free