PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated temporal reasoning about reactive systems
Proceedings of the VIII Banff Higher order workshop conference on Logics for concurrency : structure versus automata: structure versus automata
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model checking
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Addressing dynamic issues of program model checking
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Principles of Program Analysis
Principles of Program Analysis
Multi-Dimensional Modal Logic as a Framework for Spatio-Temporal Reasoning
Applied Intelligence
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
CMC: a pragmatic approach to model checking real code
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Bogor: an extensible and highly-modular software model checking framework
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Improving software security with a C pointer analysis
Proceedings of the 27th international conference on Software engineering
Model checking software with well-defined APIs: the socket case
Proceedings of the 10th international workshop on Formal methods for industrial critical systems
Software Model Checking: The VeriSoft Approach
Formal Methods in System Design
On-the-fly model checking for C programs with extended CADP in FMICS-jETI
ICECCS '07 Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems
First-Order and Temporal Logics for Nested Words
LICS '07 Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Model Checking C Programs with Dynamic Memory Allocation
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
Verifying temporal heap properties specified via evolution logic
ESOP'03 Proceedings of the 12th European conference on Programming
Revamping TVLA: making parametric shape analysis competitive
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Model extraction for ARINC 653 based avionics software
Proceedings of the 14th international SPIN conference on Model checking software
Abstract regular tree model checking of complex dynamic data structures
SAS'06 Proceedings of the 13th international conference on Static Analysis
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 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
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Model checking dynamic states in GROOVE
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
Abstract specification and formalization of an operating system kernel in Z
ACM SIGOPS Operating Systems Review
A model-extraction approach to verifying concurrent C programs with CADP
Science of Computer Programming
Verification of complex dynamic data tree with mu-calculus
Automated Software Engineering
Using SPIN for automated debugging of infinite executions of Java programs
Journal of Systems and Software
Hi-index | 0.00 |
Most system software, including operating systems, contains dynamic data structures whose shape and contents should satisfy design requirements during execution. Model checking technology, a powerful tool for automatic verification based on state exploration, should be adapted to deal with this kind of structure. This paper presents a method to specify and verify properties of C programs with dynamic memory management. The proposal contains two main contributions. First, we present a novel method to extend explicit model checking of C programs with dynamic memory management. The approach consists of defining a canonical representation of the heap, moving most of the information from the state vector to a global structure. We provide a formal semantics of the method that allows us to prove the soundness of the representation. Secondly, we combine temporal LTL and CTL logic to define a two-dimensional logic, in time and space, which is suitable to specify complex properties of programs with dynamic data structures. We also define the model checking algorithms for this logic. The whole method has been implemented in the well known model checker SPIN, and illustrated with an example where a typical memory reader/writer driver is modelled and analyzed.