Model checking and boolean graphs
Theoretical Computer Science - Selected papers of the 17th Colloquium on Trees in Algebra and Programming (CAAP '92) and of the European Symposium on Programming (ESOP), Rennes, France, Feb. 1992
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
A practical method for verifying event-driven software
Proceedings of the 21st international conference on Software engineering
Data Flow Analysis as Model Checking
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
OPEN/CÆSAR: An OPen Software Architecture for Verification, Simulation, and Testing
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
A Linear Algorithm for Solving Fixed-Point Equations on Transition Systems
CAAP '92 Proceedings of the 17th Colloquium on Trees in Algebra and Programming
Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software
CONCUR '01 Proceedings of the 12th International Conference on Concurrency Theory
VoDkaV Tool: Model Checking for Extracting Global Scheduler Properties from Local Restrictions
ACSD '03 Proceedings of the Third International Conference on Application of Concurrency to System Design
BDL, A Language of Distributed Reactive Objects
ISORC '98 Proceedings of the The 1st IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
αSPIN: A tool for abstract model checking
International Journal on Software Tools for Technology Transfer (STTT)
International Journal on Software Tools for Technology Transfer (STTT) - Special section on Tools and Algorithms for the Construction and Analysis of Systems
State space reduction for process algebra specifications
Theoretical Computer Science - Algebraic methodology and software technology
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
Linux Device Drivers, 3rd Edition
Linux Device Drivers, 3rd Edition
PiXL: Applying xml standards to support the integration of analysis tools for protocols
Science of Computer Programming
On-the-Fly Data Flow Analysis Based on Verification Technology
Electronic Notes in Theoretical Computer Science (ENTCS)
Demand-driven alias analysis for C
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implementing Influence Analysis Using Parameterised Boolean Equation Systems
ISOLA '06 Proceedings of the Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation
Verifying Parallel Programs with MPI-Spin
Proceedings of the 14th European PVM/MPI User's Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
A foundation for flow-based program matching: using temporal logic and model checking
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model Checking Dynamic Memory Allocation in Operating Systems
Journal of Automated Reasoning
Using Datalog and Boolean Equation Systems for Program Analysis
Formal Methods for Industrial Critical Systems
Checking the reliability of socket based communication software
International Journal on Software Tools for Technology Transfer (STTT) - Special Section on FMICS 05
CADP 2006: a toolbox for the construction and analysis of distributed processes
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
C.OPEN and ANNOTATOR: tools for on-the-fly model checking C programs
Proceedings of the 14th international SPIN conference on Model checking software
VeSTA: a tool to verify the correct integration of a component in a composite timed system
ICFEM'07 Proceedings of the formal engineering methods 9th international conference on Formal methods and software engineering
Verification of Dynamic Data Tree with mu-calculus Extended with Separation
SEFM '10 Proceedings of the 2010 8th IEEE International Conference on Software Engineering and Formal Methods
Principles of Program Analysis
Principles of Program Analysis
The BLAST software verification system
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Distributed on-the-fly model checking and test case generation
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
Abstract matching for software model checking
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
Datalog-Based program analysis with BES and RWL
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Hi-index | 0.00 |
The development of reliable software for industrial critical systems benefits from the use of formal models and verification tools for detecting and correcting errors as early as possible. Ideally, with a complete model-based methodology, the formal models should be the starting point to obtain the final reliable code and the verification step should be done over the high-level models. However, this is not the case for many projects, especially when integrating existing code. In this paper, we describe an approach to verify concurrent C code by automatically extracting a high-level formal model that is suitable for analysis with existing tools. The basic components of our approach are: (1) a method to construct a labeled transition system from the source code, that takes flow control and interaction among processes into account; (2) a modeling scheme of the behavior that is external to the program, namely the functionality provided by the operating system; (3) the use of demand-driven static analyses to make a further abstraction of the program, thus saving time and memory during its verification. The whole proposal has been implemented as an extension of the CADP toolbox, which already provides a variety of analysis modules for several input languages using labeled transition systems as the core model. The approach taken fits well within the existing architecture of CADP which does not need to be altered to enable C program verification. We illustrate the use of the extended CADP toolbox by considering examples of the VLTS benchmark suite and C implementations of various concurrent programs.