Towards Trustworthy Refactoring in Erlang
This work addresses the need for reliable refactoring tools for Erlang programmers, though it appears incremental as it builds on existing refactoring concepts with a new notation.
The authors tackled the problem of ensuring trustworthy tool-assisted refactoring in Erlang by proposing a simple, high-level notation for defining transformations, which they demonstrated to be extensible, verifiable, and executable through example refactorings.
Tool-assisted refactoring transformations must be trustworthy if programmers are to be confident in applying them on arbitrarily extensive and complex code in order to improve style or efficiency. We propose a simple, high-level but rigorous, notation for defining refactoring transformations in Erlang, and show that this notation provides an extensible, verifiable and executable specification language for refactoring. To demonstrate the applicability of our approach, we show how to define and verify a number of example refactorings in the system.