Towards Sound Refactoring in Erlang

Authors: E. Tanti, A. Francalanza

Corresponding: E. Tanti (

Keywords: none


Issue: Xjenza Online Vol. 3 Iss. 1 - August 2015

Erlang is an actor-based programming language used extensively for building concurrent, reactive systems that are highly available and suer minimum downtime. Such systems are often mission critical, making system correctness vital. Refactoring is code restructuring that improves the code but does not change behaviour. While using automated refactoring tools is less error-prone than performing refactorings manually, automated refactoring tools still cannot guarantee that the refactoring is correct, i.e., program behaviour is preserved. This leads to lack of trust in automated refactoring tools. We rst survey solutions to this problem proposed in the literature. Erlang refactoring tools as commonly use approximation techniques which do not guarantee behaviour while some other works propose the use of formal methodologies. In this work we aim to develop a formal methodology for refactoring Erlang code. We study behavioural preorders, with a special focus on the testing preorder as it seems most suited to our purpose.

Download Article: