Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Tool support for refactoring functional programs
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Comparative Study of Refactoring Haskell and Erlang Programs
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
The Haskell Refactorer, HaRe, and its API
Electronic Notes in Theoretical Computer Science (ENTCS)
Mechanical verification of refactorings
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Erlang testing and tools survey
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Gradual typing of erlang programs: a wrangler experience
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Clone detection and removal for Erlang/OTP within a refactoring environment
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Tool support for refactoring functional programs
Proceedings of the 2nd Workshop on Refactoring Tools
Analysis of preprocessor constructs in Erlang
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
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
The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs
Proceedings of the 2012 Haskell Symposium
A language generic solution for name binding preservation in refactorings
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Hi-index | 0.00 |
We demonstrate the Haskell Refactorer, HaRe, and the Erlang Refactorer, Wrangler, as examples of fully-functional refactoring tools for functional programming languages. HaRe and Wrangler are designed to handle multi-module projects in complete languages: Haskell 98 and Erlang/OTP. They are embedded in Emacs (and gVim) and respect programmer layout styles. In discussing the construction of HaRe and Wrangler, we comment on the different challenges presented by Haskell and Erlang due to their differences in syntax, semantics and pragmatics. In particular, we examine the sorts of analysis that underlie our systems. Finally, drawing on our experience, we examine features common to functional refactorings, and contrast these with refactoring in the object-oriented domain.