Publication Details
Applying Custom Patterns in Semantic Equality Analysis
static analysis, program analysis, semantic difference, semantic equivalence,
semantic change patterns, pattern matching, parametrized control-flow graphs
This paper develops a novel approach to using code change patterns in static
analysis of semantic equivalence of large-scale software. In particular, we
propose a way to define custom code change patterns, describing changes that do
change the semantics but in a safe way, and a graph-based algorithm to
efficiently detect occurrences of such patterns between two versions of software.
The proposed method allows one to reduce the number of false positive results
generated by static code-pattern-based analysis of semantic equivalence by
specifying which patterns of changes should be considered semantically
equivalent. Our experiments with the Linux kernel show that it is possible to
eliminate a substantial number of detected differences with just a small number
of patterns, while maintaining a very high scalability of the overall analysis.
Furthermore, the proposed concept allows for a possible future combination with
automatic inference of patterns, which promises significant improvements in the
area of static analysis of semantic equivalence.
@inproceedings{BUT181497,
author="Petr {Šilling} and Viktor {Malík} and Tomáš {Vojnar}",
title="Applying Custom Patterns in Semantic Equality Analysis",
booktitle="Networked Systems",
year="2022",
series="Lecture Notes in Computer Science",
volume="13464",
pages="265--282",
publisher="Springer Nature Switzerland AG",
address="Cham",
doi="10.1007/978-3-031-17436-0\{_}18",
isbn="978-3-031-17436-0",
url="https://link.springer.com/chapter/10.1007/978-3-031-17436-0_18"
}