2013
DOI: 10.1017/s0956796813000117
|View full text |Cite
|
Sign up to set email alerts
|

Refactoring tools for functional languages

Abstract: Refactoring is the process of changing the design of a program without changing what it does. Typical refactorings, such as function extraction and generalisation, are intended to make a program more amenable to extension, more comprehensible and so on. Refactorings differ from other sorts of program transformation in being applied to source code, rather than to a 'core' language within a compiler, and also in having an effect across a code base, rather than to a single function definition, say. Because of thi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2015
2015
2024
2024

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 10 publications
(8 citation statements)
references
References 56 publications
0
8
0
Order By: Relevance
“…Much work on refactoring has been carried out within the object-oriented programming paradigm; a standard reference is [12]. Thompson and Li have carried out a survey of refactoring tools for functional languages [42] including the tools Wrangler [23,24] (for Erlang [8]) and HaRe [25] (for Haskell [34]). Renaming, and perhaps refactoring generally, seems to be more diicult in a language like OCaml with its powerful module system.…”
Section: Related Workmentioning
confidence: 99%
“…Much work on refactoring has been carried out within the object-oriented programming paradigm; a standard reference is [12]. Thompson and Li have carried out a survey of refactoring tools for functional languages [42] including the tools Wrangler [23,24] (for Erlang [8]) and HaRe [25] (for Haskell [34]). Renaming, and perhaps refactoring generally, seems to be more diicult in a language like OCaml with its powerful module system.…”
Section: Related Workmentioning
confidence: 99%
“…While we believe these transformations form a useful set of basic tools for common programming tasks, we do not argue that these constitute a necessary or sufficient set. One benefit of our design is that different sets of transformationssuch as refactorings for class-based languages [Fowler 1999], refactorings for functional languages [Thompson and Li 2013], transformations that selectively change program behavior [Reichenbach et al 2009], and task-specific transformations that do not have common, recognizable names [Steimann and von Pilgrim 2012]-can be incorporated and displayed to the user within our interface.…”
Section: Program Transformationsmentioning
confidence: 99%
“…Refactoring [65,32,75] is the process of changing how a program works without changing what it does. This can be done for readability, for testability, to prepare it for modification or extension, or -as is the case here -in order to improve its scalability.…”
Section: Refactoring For Scalabilitymentioning
confidence: 99%