FORSE: Formally-Based Tool Support for Erlang Development
Introduction and Overview
This is the home page for the FORSE project, an EPSRC-sponsored joint project
with the University of Sheffield,
to build tools to support the
working Erlang programmer, based on our existing work in refactoring
Haskell programs and verification of Erlang programs.
Project members at Kent are
Simon Thompson and
Huiqing Li; at Sheffield
they are
John Derrick and others.
Refactoring
Refactoring is the process of changing (improving?) the design of existing code
without changing the behaviour of the code. Examples range from renamning an
identifier, to generalising a function or other code artifact and to wholesale
changes to data structures.
In our previous project on refactoring
Haskell programs which built the
HaRe tool,
we found that the conditions on
transformations such as renaming to make them behaviour preserving are more
complex than might be expected. Combining this with the scale at which typical
refactorings will be applied (e.g. across a complete code base) means that
automated support for refactoring is unavoidable.
HaRe provides a basis on which to build, as it contains a range of functional
refactorings. Erlang provides a challenge, in that we will need to investigate
ways in which concurrent and real-time functional programs can be refactored
safely and effectively. We will document our thoughts on our
wiki.
Software: Wrangler -- An Erlang Refactorer
News
-
January 2009. Simon Thompson gave a talk on Clone Detection and Removal for Erlang/OTP within a Refactoring Environment at PEPM 09.
-
November 2008. Simon Thompson gave a short talk on Wrangler at
Erlang User Conference 2008 .
-
Sept 2008. Huiqing Li gave a talk on Wrangler and its latest developments at Erlang Workshop 2008 .
-
June 2008. Simon Thompson gave a talk on refactoring Erlang programs at Erlang eXchange .
-
May 2008. Nik gave a presentation on Clone Detection and Removal for Erlang/OTP within a Refactoring Environment at TFP 2008.
-
January 2008. George Orosz and Melinda Toth joined us for five months as Erasmus students from Eötvös Loránd University, Budapest, to work on different aspects of refactoring in Erlang.
-
19 November 2007. Xingdong Bian joined us as the KTP associate, who works under the joint supervision of Erlang> Training and Consulting and Kent University.
-
29 September 2007. Huiqing gave a presentation on Testing Erlang Refactorings with QuickCheck at IFL2007.
-
17 November 2006.
Erlang Training and Consulting, together with the
Computing Laboratory at
the University of Kent, have been awarded a £76k Knowledge Transfer
Partnership Grant to develop generic software components.
Together with
£35k
contributed by Erlang Training and Consulting, this two year
grant will support the employment of a KTP associate who will be jointly
supervised by the company and the university. The associate's work will increase
Erlang Training and Consulting's ability to speed up
its internal system development processes. The University of Kent will
gain valuable industrial input to its research programme of building tool
support for Erlang refactoring.
-
09 November 2006. Simon Thompson gave a talk on
Refactoring Erlang Programs at EUC
2006.
-
29 September 2006. Huiqing gave a presentation on A
Comparative Study of Refactoring Haskell and Erlang Programs at SCAM 2006.
-
11 September 2006. Aniko Vig and Tamas Nagy joined us for four
months as Erasmus students from Eötvös Loránd University, Budapest, to work on
refactoring of Erlang programs.
-
8th-11th May 2006. Simon Thompson, Huiqing Li and John Derrick
visited Zoltan
Horvath and Tamas Kozsik at the Eötvös Loránd University, Budapest, to
discuss joint research on refactoring Erlang programs.
-
14 October 2005 We were visited by Zoltan Horvath and Tamas Kozsik
from Eötvös Loránd University, Budapest, to discuss potential joint research.
Publications
-
Clone Detection and Removal for Erlang/OTP within a Refactoring Environment. Huiqing Li and Simon Thompson. In ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM'09), Savannah, Georgia, USA, January 2009.
-
Tool Support for Refactoring Functional Programs. Huiqing Li and Simon Thompson. In Danny Dig,Robert Fuhrer and Ralph Johnson, editors, Proceedings of the Second ACM SIGPLAN Workshop on Refactoring Tools, Nashville, Tennessee, USA, October 2008.
-
Refactoring with Wrangler, updated: Data and process refactorings, and integration with Eclipse. Huiqing Li, Simon Thompson, George Orosz and Melinda Toth. In Zoltan Horvath and Tee Teoh, editors, Proceedings of the Seventh ACM SIGPLAN Erlang Workshop, ACM Press, September 2008.
-
Tool Support for Refactoring Functional Programs. Huiqing Li and Simon Thompson, In Partial Evaluation and Program Manipulation (PEPM'08). San Francisco, California, USA, ary 2008.
-
Testing Erlang Refactorings with QuickCheck. Huiqing Li and Simon Thompson, In Proceedings of the 19th International Symposium on Implementation and Application of Functional Languages, IFL2007, Freiburg, Germany, Septemper 2007.
-
Refactoring
Erlang Programs
(12th International Erlang/OTP User
Conference, Stockholm, November 9-10, 2006)
-
A
Comparative Study of Refactoring Haskell and Erlang Programs (Sixth IEEE International Workshop on Source Code
Analysis and Manipulation, Sept. 2006)
Resources