Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A structure to decide reachability in Petri nets
Theoretical Computer Science
A unified approach for deciding the existence of certain Petri net paths
Information and Computation
Solving shape-analysis problems in languages with destructive updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pointer analysis for multithreaded programs
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Verifying safety properties of concurrent Java programs using 3-valued logic
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pointer and escape analysis for multithreaded programs
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Shape Analysis through Predicate Abstraction and Model Checking
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Experience with Predicate Abstraction
CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
On the Decidability of Model Checking for Several µ-calculi and Petri Nets
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Successive Approximation of Abstract Transition Relations
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Testing Linear Temporal Logic Formulae on Finite Execution Traces
Testing Linear Temporal Logic Formulae on Finite Execution Traces
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic pointer analysis revisited
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Verifying properties of well-founded linked lists
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Correctness-preserving derivation of concurrent garbage collection algorithms
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Shape analysis by graph decomposition
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Verifying temporal heap properties specified via evolution logic
ESOP'03 Proceedings of the 12th European conference on Programming
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
Shape analysis by predicate abstraction
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Predicate abstraction and canonical abstraction for singly-linked lists
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Programs with lists are counter automata
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
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
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
SAS'05 Proceedings of the 12th international conference on Static Analysis
Abstracting Complex Data Structures by Hyperedge Replacement
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Juggrnaut: Graph Grammar Abstraction for Unbounded Heap Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
We present a novel approach to the verification of concurrent pointer-manipulating programs with dynamic thread creation and memory allocation as well as destructive updates operating on arbitrary (possibly cyclic) singly-linked data structures. Correctness properties of such programs are expressed by combining a simple pointer logic for specifying heap properties with linear-time (LTL) operators for reasoning about system executions. To automatically solve the corresponding model-checking problem, which is undecidable in general, we abstract from non-interrupted sublists in the heap, resulting in a finite-state representation of the data space. We also show that the control flow of a concurrent program with unbounded thread creation can be characterized by a Petri net, making LTL model checking decidable (though not feasible in practice). In a second abstraction step we also derive a finite-state representation of the control flow, which then allows us to employ standard LTL model checking techniques.