Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Comparative Study of Refactoring Haskell and Erlang Programs
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Tool support for refactoring functional programs
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
How we refactor, and how we know it
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Ref-Finder: a refactoring reconstruction tool based on logic query templates
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
LAMBDAFICATOR: from imperative to functional programming through automated refactoring
Proceedings of the 2013 International Conference on Software Engineering
Crossing the gap from imperative to functional programming through refactoring
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Programmers use refactoring to improve the design of existing code without changing external behavior. Current research does not empirically answer the question, "Why and how do programmers refactor functional programs?" In order to answer the question, I conducted a case study on three open source projects in Haskell. I investigated changed portions of code in 55 successive versions of a given project to classify how programmers refactor. I found a total of 143 refactorings classified by 12 refactoring types. I also found 5 new refactoring types and propose two new refactoring tools that would be useful for developers.