ACM Home Page
Please provide us with feedback. Feedback
Tool support for refactoring functional programs
Full text PdfPdf (156 KB)
Source Haskell Workshop archive
Proceedings of the 2003 ACM SIGPLAN workshop on Haskell table of contents
Uppsala, Sweden
Pages: 27 - 38  
Year of Publication: 2003
ISBN:1-58113-758-3
Authors
Huiqing Li  University of Kent
Claus Reinke  University of Kent
Simon Thompson  University of Kent
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 90,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/871895.871899
What is a DOI?

ABSTRACT

Refactorings are source-to-source program transformations which change program structure and organisation, but not program functionality. Documented in catalogues and supported by tools, refactoring provides the means to adapt and improve the design of existing code, and has thus enabled the trend towards modern agile software development processes. Refactoring has taken a prominent place in software development and maintenance, but most of this recent success has taken place in the OO and XP communities.In our project, we explore the prospects for 'Refactoring Functional Programs', taking Haskell as a concrete case-study. This paper discusses the variety of pragmatic and implementation issues raised by our work on the Haskell Refactorer. We briefly introduce the ideas behind refactoring, and a set of elementary functional refactorings. The core of the paper then outlines the main challenges that arise from our aim to produce practical tools for a decidedly non-toy language, summarizes our experience in trying to establish the necessary meta-programming infrastructure and gives an implementation overview of our current prototype refactoring tool. Using Haskell as our implementation language, we also offer some preliminary comments on Haskell programming-in-the-large.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
 
4
C. Reinke (ed.). Haskell Communities and Activities Report. http://haskell.org/communities/, May 2003.
5
6
 
7
8
 
9
William G. Griswold. Program restructuring to aid software maintenance. PhD thesis, Univ. of Washington, Dept. of CS and Engineering, 1991. Tech. Rep. No. 91-08-04.
 
10
W. Guttmann, H. Partsch, W. Schulte, and T. Vullinghs. Tool Support for the Interactive Derivation of Formally Correct Functional Programs, Ext. Abstr. In FM-TOOLS, July 2002. http://www.informatik.uni-ulm.de/pm/ultra/.
 
11
T. Hallgren. A Lexer for Haskell in Haskell. http://www.cse.ogi.edu/~hallgren/Talks/LHiH/2002-01-14.html.
12
 
13
Mark P. Jones. Typing Haskell in Haskell. http://www.cse.ogi.edu/~mpj/thih/, November 2000.
 
14
Jan Kort and Ralf Lammel. A Framework for Datatype Transformation. In Proc. of Language, Descriptions, Tools, and Applications (LDTA 2003). Elsevier, April 2003.
 
15
16
17
 
18
R. Lammel and J. Visser. Generic Programming with Strafunski. http://www.cs.vu.nl/Strafunski/, 2001.
19
 
20
 
21
R. Lammel, J. Visser, and J. Kort. Dealing with Large Bananas. In J. Jeuring, editor, Proceedings of WGP'2000, Tech. Report, Universiteit Utrecht, pages 46--59, July 2000.
 
22
Simon Marlow. Haddock: A Haskell Documentation Tool. http://www.haskell.org/haddock/.
 
23
24
 
25
 
26
Donald Bradley Roberts. Practical Analysis for Refactoring. PhD thesis, Univ. of Illinois at Urbana Champaign, 1999.
 
27
Chris Ryder. The Medina metrics library for Haskell. http://www.cs.kent.ac.uk/~cr24/medina/, 2002.
28
 
29
R. D. Tennent. Language Design Methods Based on Semantic Principles. Acta Informatica, 8:97--112, 1977.
 
30
 
31
Eelco Visser. Stratego -- Strategies for Program Transformation. http://www.stratego-language.org/.
32


Collaborative Colleagues:
Huiqing Li: colleagues
Claus Reinke: colleagues
Simon Thompson: colleagues