TY - GEN
T1 - Heap analysis in the presence of collection libraries
AU - Marron, Mark
AU - Stefanovic, Darko
AU - Hermenegildo, Manuel
AU - Kapur, Deepak
PY - 2007
Y1 - 2007
N2 - Memory analysis techniques have become sophisticated enough to model, with a high degree of accuracy, the manipulation of simple memory structures (finite structures, single/double linked lists and trees). However, modern programming languages provide extensive library support including a wide range of generic collection objects that make use of complex internal data structures. While these data structures ensure that the collections are efficient, often these representations cannot be effectively modeled by existing methods (either due to excessive analysis runtime or due to the inability to represent the required information). This paper presents a method to represent collections using an abstraction of their semantics. The construction of the abstract semantics for the collection objects is done in a manner that allows individual elements in the collections to be identified. Our construction also supports iterators over the collections and is able to model the position of the iterators with respect to the elements in the collection. By ordering the contents of the collection based on the iterator position, the model can represent a notion of progress when iteratively manipulating the contents of a collection. These features allow strong updates to the individual elements in the collection as well as strong updates over the collections themselves.
AB - Memory analysis techniques have become sophisticated enough to model, with a high degree of accuracy, the manipulation of simple memory structures (finite structures, single/double linked lists and trees). However, modern programming languages provide extensive library support including a wide range of generic collection objects that make use of complex internal data structures. While these data structures ensure that the collections are efficient, often these representations cannot be effectively modeled by existing methods (either due to excessive analysis runtime or due to the inability to represent the required information). This paper presents a method to represent collections using an abstraction of their semantics. The construction of the abstract semantics for the collection objects is done in a manner that allows individual elements in the collections to be identified. Our construction also supports iterators over the collections and is able to model the position of the iterators with respect to the elements in the collection. By ordering the contents of the collection based on the iterator position, the model can represent a notion of progress when iteratively manipulating the contents of a collection. These features allow strong updates to the individual elements in the collection as well as strong updates over the collections themselves.
KW - Collection library
KW - Shape analysis
KW - Static analysis
UR - http://www.scopus.com/inward/record.url?scp=36549032138&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=36549032138&partnerID=8YFLogxK
U2 - 10.1145/1251535.1251541
DO - 10.1145/1251535.1251541
M3 - Conference contribution
AN - SCOPUS:36549032138
SN - 1595935959
SN - 9781595935953
T3 - ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
SP - 31
EP - 36
BT - PASTE'07 - Proceedings of the 2007 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
T2 - 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
Y2 - 13 June 2007 through 14 June 2007
ER -