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 synthe- sized 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 obtain- ing a replacement class that leaves the original and replacement objects in equivalent states after arbitrarily long method invocation sequences. We have implemented the technique as part of a tool, named Mask, and evaluated it using open-source Java classes. The results highlight the effectiveness of Mask in synthesizing replacement classes.

Document Details

Document Type
Pub Defense Publication
Publication Date
Dec 20, 2019
Source ID
10.1145/3371120

Entities

People

  • Deokhwan Kim
  • Malavika Samak
  • Martin C. Rinard

Organizations

  • Defense Advanced Research Projects Agency
  • Massachusetts Institute of Technology

Tags

Readers

  • Computer Vision.
  • Parallel and Distributed Computing.
  • Systems Analysis and Design