Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
Static Analysis of Accessed Regions in Recursive Data Structures
| Book Series | Lecture Notes in Computer Science |
| Publisher | Springer Berlin / Heidelberg |
| ISSN | 0302-9743 (Print) 1611-3349 (Online) |
| Volume | Volume 2694/2003 |
| Book | Static Analysis |
| DOI | 10.1007/3-540-44898-5 |
| Copyright | 2003 |
| ISBN | 978-3-540-40325-8 |
| DOI | 10.1007/3-540-44898-5_26 |
| Page | 1075 |
| Subject Collection | Computer Science |
| SpringerLink Date | Wednesday, January 01, 2003 |
| |
|
Static Analysis of Accessed Regions in Recursive Data Structures
Stephen Chong5 and Radu Rugina5 
| (5) |
Computer Science Department, Cornell University, Ithaca, NY, 14853 |
Abstract
This paper presents a heap analysis algorithm that characterizes how programs access regions within recursive data structures,
such as sublists within lists or subtrees within trees. The analysis precisely computes cyclicity, reachability, and heap
access region information for programs with destructive updates.
The algorithm uses a shape graph abstraction of the heap that identifies connected, single-entry heap regions, whose entries
are directly accessible from the stack. The edges of the shape graphs encode reachability information. This yields a more
compact heap representation compared to the existing abstractions, making the analysis more efficient. Furthermore, the algorithm
expresses heap access information using labels on the nodes of the shape graphs. The labels characterize the concrete locations
that abstract nodes represent and make it possible to compare the sets of concrete locations modeled by nodes in different
shape graphs. The labels allow the analysis to express the heap access information with respect to the nodes at a particular
program point, for instance at the beginning of the current procedure. Our analysis is able to precisely and efficiently compute
heap access region information for complex heap manipulations such as a recursive quicksort program that sorts a list in-place,
using destructive updates.
Fulltext Preview (Small, Large)
 References secured to subscribers.
|
|
|
|
|
|