Automatically Checking Semantic Equivalence between Versions of Large-Scale C Projects
Creators
- 1. Brno University of Technology, Faculty of Information Technology and Red Hat
- 2. Brno University of Technology, Faculty of Information Technology
Description
Motivated by a need of some software projects to ensure semantic stability of some of their core parts, the paper proposes a highly-scalable approach for automatically checking semantic equivalence of different versions of large C projects, with a particular focus on the Linux kernel. The proposed method uses a novel combination of pattern matching with light-weight static analysis and control-flow transformations. Although the method cannot prove equivalence on heavily refactored code, it can compare thousands of functions in minutes while producing a low number of false non-equality verdicts as our experiments show. We implemented our approach in a tool called DiffKemp and we show that DiffKemp , unlike other existing tools, gives practically useful results even on projects of the size of the Linux kernel.
Files
icst-final.mp4
Files
(94.5 MB)
Name | Size | Download all |
---|---|---|
md5:e060e6dfe480336119ec2375a0b6bc01
|
94.5 MB | Preview Download |