Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Automatic analysis of pointer aliasing for untyped programs
Science of Computer Programming
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Verification of Concurrent Linked Lists with Counters
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Storeless semantics and alias logic
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Verifying programs with dynamic 1-selector-linked structures in regular model checking
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Automatic verification of pointer programs using grammar-based shape analysis
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Abstraction refinement via inductive learning
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Pattern-based verification for trees
EUROCAST'07 Proceedings of the 11th international conference on Computer aided systems theory
Programs with lists are counter automata
Formal Methods in System Design
Abstract regular tree model checking of complex dynamic data structures
SAS'06 Proceedings of the 13th international conference on Static Analysis
Hi-index | 0.00 |
The paper deals with the problem of automatic verification of programs with dynamic linked data structures. In particular, the use of pattern-based abstraction of memory configurations is considered. In this approach, one can abstract memory configurations by abstracting away the exact number of adjacent occurrences of certain memory patterns. The paper extends the state-of-the-art in this area by proposing a fully automatic and efficient way of detecting the memory patterns to be used from the memory configurations that the program at hand is generating. The method targets programs manipulating a broad class of extended linear linked data structures having a linear skeleton (possibly bidirectionally-linked or cyclic) with certain additional pointers defined on top of it, which covers many practical dynamic data structures (such as lists, doubly-linked lists, cyclic lists, lists with tail/head pointers, etc.). The experimental results obtained from a prototype implementation of the method show that the method is very competitive and offers a big potential for future extensions.