FORSE: Formally-Based Tool Support for Erlang Development
Main project web page
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
-
The lastest version of Wrangler (Wrangler 0.8.6) is downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
05 Jan 09 : Wrangler 0.8.5 is downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
24 Nov 09 : Wrangler 0.8.4 is downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
11 Nov 09 : Wrangler 0.8.3 is downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available; deb package is available from here .
-
30 Oct 09 : Wrangler-0.8.2 is downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
20 Sept 09 : Wrangler 0.8.1 is not downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
18 Aug 09 : Wrangler 0.8 is now
downloadable from here:
snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
23 June 09 : Wranglerr 0.7.5 is downloadable from here:snapshot , README, Documentation. The Wrangler Installer for Windows is also available.
-
19 Mar 09 : A new snapshot of Wrangler (Wrangler 0.7) is now downloadable from here:snapshot ,README, Documentation
-
09 Feb 09 : A new snapshot of Wrangler (Wrangler 0.6.2) is now downloadable from here:snapshot , README, Documentation
-
15 Jan 09 : A new snapshot of Wranlger (Wrangler 0.6.1) is now available from our CSprojects repository, also downloadable from here:snapshot , README, Documentation.
-
06 Jan 09 : Wrangler 0.6 is now available from our CSprojects repository, also downloadable from here:snapshot , README, Documentation.
-
03 Dec 2008 : A new snapshot of Wrangler (Wrangler 0.5.1) is now available from our CSprojects repository, also downloadable from here: snapshot , README .
-
22 Sept 2008 : Wrangler 0.5 is now available from our CSprojects repository, also downloadable from here:snapshot ,README,Documentation.
-
30 June 2008 : A new version of Wrangler (Wrangler0.4) is available from our CSprojects repository.
-
02 June 2008: Wrangler is also integrated within the Eclipse IDE, to install Eclipse plugin of Wrangler, please use the update site URL: http://www.cs.kent.ac.uk/projects/forse/wrangler/eclipse
-
07 January 2008: a pre-release snapshot of Wrangler 0.3 with the latest CVS version of Distel from distel.googlecode.com, README,Documentation.
-
04 October 2007: an update of Wrangler (now Wrangler 0.2) with a new refactoring and a few bug fixes. Depending on which version of distel you would like to use, you can choose to download one of the two snapshots:snapshot of Wrangler with distel-3.3 ,README; snapshot of Wrangler with the latest CVS version of Distel from distel.googlecode.com , README. Documentation.
-
25 January 2007. We have announced the first release of Wrangler -- an Erlang refactorer, which supports a small number of refactorings, so you can play with basic refactoring support for Erlang, and give us feedback or bug reports. Wrangler 0.1 is our 25/01/2007 snapshot, available here: snapshot, README, Documentation.
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
|
|