Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering - PASTE '07
Full text: Download
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 linke d lists and trees). However, modern programming languages provide exten- sive 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 effici ent, of- ten 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 abs tract se- mantics for the collection objects is done in a manner that allows individual elements in the collections to be identified. Our con- struction 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 b ased on the iterator position, the model can represent a notion of pr ogress when iteratively manipulating the contents of a collection. These features allow strong updates to the individual elements in the col- lection as well as strong updates over the collections themselves. Categories and Subject Descriptors F.3.2 (Logics and Meanings of Programs): Semantics of Programming Languages (program analysis)