Tool support for refactoring functional programs
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Testing Erlang Refactorings with QuickCheck
Implementation and Application of Functional Languages
Tool support for refactoring functional programs
Proceedings of the 2nd Workshop on Refactoring Tools
Property-based testing: the ProTest project
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
A case study on refactoring in Haskell programs
Proceedings of the 33rd International Conference on Software Engineering
Hume box calculus: robust system development through software transformation
Higher-Order and Symbolic Computation
A language-independent parallel refactoring framework
Proceedings of the Fifth Workshop on Refactoring Tools
An algorithm for layout preservation in refactoring transformations
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
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 |
Refactoring is about changing the design of existing code without changing its behaviour, but with the aim of making code easier to understand, modify, or reuse. Taking Haskell and Erlang as examples, we investigate the application of refactoring techniques to functional programs, and building tools for supporting interactive refactoring. Although both Haskell and Erlang are general-purpose functional programming languages, they have many differences in their language design and programming idioms. As a result, program refactoring in the two languages has much in common, but also considerable differences. This paper makes this comparison, and in particular looks in more detail at the refactorings applicable in each language, the program analysis required by typical refactorings, and at tool support for refactoring Haskell and Erlang programs.