Refactoring Functional Programs

[back to project home page]

A small, but growing heap of potentially related work, in no particular order. To be harvested, amended, summarised and sorted..


Program transformation


Tool generators for language-aware environments


A historical note

We all tend to refactor our programs, though we might not recognise the activity. The first to bring the activity to our attention might have been Robert W. Floyd.

@InCollection{Floyd87,
  author =       "Floyd",
  title =        "The Paradigm of Programming (1978)",
  booktitle =    "ACM Turing Award Lectures: The First Twenty Years, ACM
                 Press Anthology Series, ACM Press, New York,
                 Addison-Wesley",
  year =         "1987",
}
He advocated to rewrite working programs from scratch, re-using only the essential ideas. To some extent, refactoring should enable programmers to reorganise working programs without having to start from scratch. Also, Floyd's aims were to improve not only the programs but also the programmers abilities and understanding, by continuously looking for simpler ways to do the same thing. While this is one important use of refactoring, tool support for refactoring should also allow single programs to be used in multiple forms, adapting the form best suited to the current task.


If you are aware of other relevant pointers, please send us an email, and we'll eventually get round to updating this page.