2019
DOI: 10.1145/3371120
|View full text |Cite
|
Sign up to set email alerts
|

Synthesizing replacement classes

Abstract: We present a new technique for automatically synthesizing replacement classes. The technique starts with an original class O and a potential replacement class R, then uses R to synthesize a new class that implements the same interface and provides the same functionality as O. Critically, our technique works with a synthesized inter-class equivalence predicate between the states of O and R. It uses this predicate to ensure that original and synthesized methods leave corresponding O and R objects in equivalent s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 12 publications
(3 citation statements)
references
References 69 publications
(76 reference statements)
0
3
0
Order By: Relevance
“…One line of studies reduces equivalence checking to proving specific verification conditions, such as relational verification [29]- [34]. Similar approaches include using symbolic execution for loop-free programs [27], [35]- [38]. Different from the existing efforts that target sophisticated program constructs, EQDAC focuses on a domainspecific language in FinTech systems, pursuing efficiency over the capability of handling a flexible program syntax.…”
Section: A Program Equivalence Checkingmentioning
confidence: 99%
“…One line of studies reduces equivalence checking to proving specific verification conditions, such as relational verification [29]- [34]. Similar approaches include using symbolic execution for loop-free programs [27], [35]- [38]. Different from the existing efforts that target sophisticated program constructs, EQDAC focuses on a domainspecific language in FinTech systems, pursuing efficiency over the capability of handling a flexible program syntax.…”
Section: A Program Equivalence Checkingmentioning
confidence: 99%
“…Another common approach is a backend-independent API [93,122] allowing for migrations to happen under the hood. Samak et al [111,112] approach a similar problem in the object-oriented space, using embeddings and synthesis to generate adapter classes for drop-in replacement classes in Java. The tools, Mask and ClassFinder, use symbolic execution to prove equivalence, a technique which does not scale to FFT-sized algorithms.…”
Section: Existing Compilation Techniquesmentioning
confidence: 99%
“…For example, Volt [Pailoor et al 2021] is the latest data structure synthesizer, which aims to refine the data structure satisfying integrity constraints when introducing auxiliary fields. Mask [Samak et al 2020] replaces outdated data structures by synthesizing their methods with the latest ones. The two synthesizers assure functional correctness while do not concern the efficiency.…”
Section: Data Structure Synthesismentioning
confidence: 99%