Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Vi iMproved
The Mythical Man-Month: After 20 Years
IEEE Software
Mnesia - A Distributed Robust DBMS for Telecommunications Applications
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
A powerful strategy for deriving efficient programs by transformation
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Tool support for refactoring functional programs
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Haskell tools from the programatica project
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Learning GNU Emacs
Introducing the Haskell equational reasoning assistant
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Use Cases for Refactoring in Erlang
Central European Functional Programming School
The Haskell Refactorer, HaRe, and its API
Electronic Notes in Theoretical Computer Science (ENTCS)
Clone detection and elimination for Haskell
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
Refactoring is the process of changing the structure of a program while preserving its behaviour in order to increase code quality, programming productivity and code reuse. With the advent of refactoring tools, refactoring can be performed semi-automatically, allowing refactorings to be performed (and undone) easily. In this paper, we briefly describe a number of new refactorings for Haskell 98 programs implemented in the Haskell Refactorer, HaRe. In particular, a number of new structural and data-type refactorings are presented. We also implement a simple expression processor, clearly demonstrating how the refactorings and the HaRe tool can aid programmers in developing Haskell software. We conclude the paper with a discussion of the benefits of refactoring Haskell programs, together with their implementation and design limitations.