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.