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 verification of pointer programs using monadic second-order logic
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Automatic analysis of pointer aliasing for untyped programs
Science of Computer Programming
Symbolic model checking with rich assertional languages
Theoretical Computer Science
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)
Transitive Closures of Regular Relations for Verifying Infinite-State Systems
TACAS '00 Proceedings of the 6th International Conference on Tools and Algorithms for Construction and Analysis of Systems: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
Verifying Systems with Infinite but Regular State Spaces
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Storeless semantics and alias logic
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Predicate abstraction and canonical abstraction for singly-linked lists
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Verifying Dynamic Pointer-Manipulating Threads
FM '08 Proceedings of the 15th international symposium on Formal Methods
Monotonic Abstraction for Programs with Dynamic Memory Heaps
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Model Checking Dynamic Memory Allocation in Operating Systems
Journal of Automated Reasoning
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Automated Analysis of Data-Dependent Programs with Dynamic Memory
ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
On the Use of Automata-based Techniques in Symbolic Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Pattern-Based Verification of Programs with Extended Linear Linked Data Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Pattern-based verification for trees
EUROCAST'07 Proceedings of the 11th international conference on Computer aided systems theory
On (Omega-)regular model checking
ACM Transactions on Computational Logic (TOCL)
Streaming transducers for algorithmic verification of single-pass list-processing programs
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programs with lists are counter automata
Formal Methods in System Design
Juggrnaut: Graph Grammar Abstraction for Unbounded Heap Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
Bottom-up shape analysis using LISF
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compositional Shape Analysis by Means of Bi-Abduction
Journal of the ACM (JACM)
Safety and liveness in concurrent pointer programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Abstract regular tree model checking of complex dynamic data structures
SAS'06 Proceedings of the 13th international conference on Static Analysis
Beyond reachability: shape abstraction in the presence of pointer arithmetic
SAS'06 Proceedings of the 13th international conference on Static Analysis
A logic of reachable patterns in linked data-structures
FOSSACS'06 Proceedings of the 9th European joint conference on Foundations of Software Science and Computation Structures
Computing transitive closures of hedge transformations
International Journal of Critical Computer-Based Systems
Information and Computation
Programs with lists are counter automata
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Automatic verification of parameterized data structures
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Computing transitive closures of hedge transformations
VECoS'07 Proceedings of the First international conference on Verification and Evaluation of Computer and Communication Systems
Computable fixpoints in well-structured symbolic model checking
Formal Methods in System Design
Hi-index | 0.00 |
We address the problem of automatic verification of programs with dynamic data structures. We consider the case of sequential, non-recursive programs manipulating 1-selector-linked structures such as traditional linked lists (possibly sharing their tails) and circular lists. We propose an automata-based approach for a symbolic verification of such programs using the regular model checking framework. Given a program, the configurations of the memory are systematically encoded as words over a suitable finite alphabet, potentially infinite sets of configurations are represented by finite-state automata, and statements of the program are automatically translated into finite-state transducers defining regular relations between configurations. Then, abstract regular model checking techniques are applied in order to automatically check safety properties concerning the shape of the computed configurations or relating the input and output configurations. For this particular purpose, we introduce new techniques for the computation of abstractions of the set of reachable configurations and to refine these abstractions if spurious counterexamples are detected. Finally, we present experimental results showing the applicability of the approach and its efficiency.