Concepedia

Publication | Closed Access

PEQCHECK: Localized and Context-aware Checking of Functional Equivalence

17

Citations

31

References

2021

Year

Abstract

A refactoring must preserve the program's functionality. However, not all refactorings are correct. Thus, preservation of the functionality must be checked. Since programs are rarely formally specified, we use the original program as functional specification and check whether the original and refactored program are functionally equivalent. More concretely, our PEQCHECK technique follows a common approach and reduces equivalence checking to program verification. To increase efficiency, PEQCHECK generates several verification tasks, namely one per refactored code segment and not one per function as typically done by prior work. Additionally, PEQCHECK takes the context of the code segments into account. For example, only modified, live variables need to be equivalent and read-only variables can be shared between original and refactored code segments. We proved soundness of our PEQCHECK technique and implemented it in a prototype tool. Our evaluation shows that the localized checking of PEQCHECK can indeed be beneficial.

References

YearCitations

Page 1