Publication | Closed Access
Verifying multi-threaded software with impact
46
Citations
12
References
2013
Year
Unknown Venue
Software MaintenanceEngineeringDynamic DependenciesCompiler TechnologyVerificationComputer ArchitectureFormal VerificationSoftware AnalysisSystems EngineeringLazy AbstractionParallel ComputingProgram SlicingDynamic CompilationRuntime VerificationCompiler SupportConcurrent ProgrammingComputer EngineeringImpact AlgorithmComputer ScienceSoftware VerificationProgram AnalysisAutomated ReasoningSoftware TestingFormal MethodsParallel ProgrammingMulti-threaded SoftwareSymbolic Execution
Lazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread interleavings, which leads to control-state explosion. To this end, we present a new algorithm that combines a new, symbolic form of partial-order reduction with Impact. Our algorithm carries out the dependence analysis on-the-fly while constructing the abstraction and is thus able to deal precisely with dynamic dependencies arising from accesses to tables or pointers - a setting where classical static partial-order reduction techniques struggle. We have implemented the algorithm in a prototype tool that analyses concurrent C program with POSIX threads and evaluated it on a number of benchmark programs. To our knowledge, this is the first application of an Impact-like algorithm to concurrent programs.
| Year | Citations | |
|---|---|---|
Page 1
Page 1