Welcome to Refazer Project

REFAZER is a technique for automatically generating program transformations. REFAZER builds on the observation that code edits performed by developers can be used as input-output examples for learning program transformations. Example edits may share the same structure but involve different variables and subexpressions, which must be generalized in a transformation at the right level of abstraction. To learn transformations, REFAZER leverages state-of-the-art programming-by-example methodology using the following key components: (a) a novel domain-specific language (DSL) for describing program transformations, (b) domain-specific deductive algorithms for efficiently synthesizing transformations in the DSL, and (c) functions for ranking the synthesized transformations.

Download

Python Study

We are working to get IRB approval for making the data available.

Transformations

Systematic changes git diff: here.

Characteristics

Systematic changes characterization: here.

Source Code

Refazer source code in Python: here.
Refazer source code in C#: here.