Datalog-based Scalable Semantic Diffing of Concurrent Programs
Chungha Sung, Shuvendu Lahiri, Constantin Enea, Chao Wang

TL;DR
This paper introduces a fast, approximate static analysis method based on Datalog for detecting synchronization differences in multithreaded programs, significantly reducing analysis time compared to traditional model checking.
Contribution
It presents a novel Datalog-based analysis framework that efficiently computes synchronization differences, enabling rapid and accurate comparison of concurrent program behaviors.
Findings
Analysis often completes within seconds
Method matches differences identified by humans
Outperforms model checking by 10x to 1000x in speed
Abstract
When an evolving program is modified to address issues related to thread synchronization, there is a need to confirm the change is correct, i.e., it does not introduce unexpected behavior. However, manually comparing two programs to identify the semantic difference is labor intensive and error prone, whereas techniques based on model checking are computationally expensive. To fill the gap, we develop a fast and approximate static analysis for computing synchronization differences of two programs. The method is fast because, instead of relying on heavy-weight model checking techniques, it leverages a polynomial-time Datalog-based program analysis framework to compute differentiating data-flow edges, i.e., edges allowed by one program but not the other. Although approximation is used our method is sufficiently accurate due to careful design of the Datalog inference rules and iterative…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Evolutionary Algorithms and Applications
