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"
}