ComputingComputer EngineeringComputer ScienceFormal MethodsProgramming LanguagesSystems ProgrammingConcurrency AnalysisConcurrency VerificationConcurrent ProgrammingConcurrent System VerificationControl-flow AnalysisDeductive VerificationAssertion CheckingAssertion VerificationConcurrent Program VerificationConsistencyInterleaving AnalysisSequential ConsistencyThread Interleaving AnalysisVerification Of Concurrent Programs
Concurrent program verification is challenging because it involves exploring a large number of possible thread interleavings together with complex sequential reasoning. As a result, concurrent program verifiers resort to bi-modal reasoning, which alternates between reasoning over intra-thread (sequential) semantics and inter-thread (concurrent) semantics. Such reasoning often involves repeated intra-thread reasoning for exploring each interleaving (inter-thread reasoning) and leads to inefficiency. In this paper, we present a new two-stage analysis which completely separates intra- and inter-thread reasoning. The first stage uses sequential program semantics to obtain a precise summary of each thread in terms of the global accesses made by the thread. The second stage performs inter-thread reasoning by composing these thread-modular summaries using the notion of sequential consistency. Assertion violations and other concurrency errors are then checked in this composition with the help of an off-the-shelf SMT solver. We have implemented our approach in the FUSION framework for checking concurrent C programs shows that avoiding redundant bi-modal reasoning makes the analysis more scalable.
21
E. M. Clarke, Orna Grümberg, D. Long · 1996 · 6.9K citations
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Precise interprocedural dataflow analysis via graph reachability
Thomas Reps, Susan Horwitz, Mooly Sagiv · 1995 · 1.2K citations
Shared memory consistency models: a tutorial
Sarita V. Adve, Kourosh Gharachorloo · Computer · 1996 · 1.1K citations
Points-to analysis in almost linear time
Bjarne Steensgaard · 1996 · 1.1K citations · Full text