Abstract
Refactoring is the process of improving the design of existing programs without changing their functionality. These notes cover refactoring in functional languages, using Haskell as the medium, and introducing the HaRe tool for refactoring in Haskell.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Burton, W., et al.: Views: An Extension to Haskell Pattern Matching. Proposed extension to Haskell, http://www.haskell.org/development/views.html
The BlueJ system, http://www.bluej.org/
Brandt, J., Roberts, D.: Refactory, http://st-www.cs.uiuc.edu/users/brant/Refactory/
Diatchki, I.S., Jones, M.P., Hallgren, T.: A Formal Specification for the Haskell 98 Module System. In: ACM Sigplan Haskell Workshop (2002)
The Eclipse project, http://www.eclipse.org/
Erwig, M., Ren, D.: Monadification of functional programs. Science of Computer Programming 52(1-3), 101–129 (2004)
Floyd, R.W.: The paradigms of programming. Commun. ACM 22(8), 455–460 (1979)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Object Technology Series. Addison-Wesley, Reading (2000)
Griswold, W.G., Notkin, D.: Automated assistance for program restructuring. ACM Transactions on Software Engineering and Methodology 2 (1993)
The Haddock documentation system for Haskell, http://www.haskell.org/haddock
Hallgren, T.: Haskell Tools from the Programatica Project (Demo Abstract). In: ACM Sigplan Haskell Workshop (2003)
The HaRe system, http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html
Lämmel, R.: Reuse by Program Transformation. In: Michaelson, G., Trinder, P. (eds.) Functional Programming Trends 1999 (2000) (intellect); Selected papers from the 1st Scottish Functional Programming Workshop
Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California. ACM Press, New York (1995)
Lämmel, R., Jones, S.P.: Scrap your boilerplate: a practical design pattern for generic programming. In: Proceedings of the Workshop on Types in Language Design and Implementation. ACM, New York (2003)
Lämmel, R., Jones, S.P.: Scrap more boilerplate: reflection, zips, and generalised casts. In: Proceedings of International Conference on Functional Programming 2004. ACM Press, New York (2004)
Li, H., Reinke, C., Thompson, S.: Tool Support for Refactoring Functional Programs. In: ACM Sigplan Haskell Workshop (2003)
Li, H., Reinke, C., Thompson, S.: Progress on HaRe: the Haskell Refactorer. Poster presentation at the International Conference on Functional Programming, Snowbird, Utah. ACM, New York (2004)
Lämmel, R., Visser, J.: Generic Programming with Strafunski (2001), http://www.cs.vu.nl/Strafunski/
Viet, C.N.: Transformation in HaRe. Technical report, Computing Laboratory, University of Kent (2004), http://www.cs.kent.ac.uk/pubs/2004/2021
Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: A Proof assistant for Higher-Order Logic. Springer, Heidelberg (2002)
Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Russell, D.J.: FAD: Functional Analysis and Design Methodology. PhD thesis, University of Kent (2000)
Tennent, R.D.: Principles of Programming Languages. Prentice Hall, Englewood Cliffs (1979)
Thompson, S.: Minesweeper, http://www.cs.kent.ac.uk/people/staff/sjt/craft2e/Games/
Thompson, S., Reinke, C.: A Case Study in Refactoring Functional Programs. In: Brazilian Symposium on Programming Languages (2003)
The Unified Modeling Language, http://www.uml.org/
Wadler, P.: Views: a way for pattern-matching to cohabit with data abstraction. In: Proceedings of 14th ACM Symposium on Principles of Programming Languages, January 1987. ACM Press, New York (1987) (revised March 1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Thompson, S. (2005). Refactoring Functional Programs. In: Vene, V., Uustalu, T. (eds) Advanced Functional Programming. Lecture Notes in Computer Science, vol 3622. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11546382_9
Download citation
DOI: https://doi.org/10.1007/11546382_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28540-3
Online ISBN: 978-3-540-31872-9
eBook Packages: Computer ScienceComputer Science (R0)