Write a Blog >>
Wed 22 Jan 2020 12:07 - 12:30 at Ile de France III (IDF III) - Synthesis Chair(s): Mohsen Lesani

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 states. The predicate therefore enables the technique to synthesize individual replacement methods in isolation while still obtaining a replacement class that leaves the original and replacement objects in equivalent states after arbitrarily long method invocation sequences. We have implemented the technique and evaluated it using popular Java classes from open-source libraries such as JDK and apache. The results from this implementation highlight the effectiveness of the technique in synthesizing replacement classes.

Slides (POPL-20-final.key)5.33MiB

Wed 22 Jan
Times are displayed in time zone: Saskatchewan, Central America change

11:45 - 12:30: SynthesisResearch Papers at Ile de France III (IDF III)
Chair(s): Mohsen LesaniUniversity of California, Riverside
11:45 - 12:07
Program Synthesis by Type-Guided Abstraction Refinement
Research Papers
Zheng GuoUniversity of California, San Diego, Michael B. JamesUniversity of California, San Diego, David JustoUniversity of California, San Diego, Jiaxiao ZhouUniversity of California, San Diego, Ziteng WangUniversity of California, San Diego, Ranjit JhalaUniversity of California, San Diego, Nadia PolikarpovaUniversity of California, San Diego
Link to publication DOI Media Attached File Attached
12:07 - 12:30
Synthesizing Replacement Classes
Research Papers
Malavika SamakCSAIL, MIT, Deokhwan KimCSAIL, MIT, Martin RinardMIT
Link to publication DOI Media Attached File Attached