towards generic refactoring
We define a challenging and meaningful benchmark for genericity in language processing, namely the notion of generic program refactoring . We provide the first implementation of the benchmark based on functional strategic programming in Haskell. We use the basic refactoring of abstraction extraction as the running example. Our implementation comes as a functional programming framework with hot spots for the language-specific ingredients for refactoring, e.g., means for abstraction construction and destruction, and recognisers for name analysis. The language-parametric framework can be instantiated for various, rather different languages, e.g., Java, Prolog, Haskell, or XML schema.
generic refactoring benchmark language process generic programming program implementation haskell use abstraction examples functional programming frameworks analysis prolog schema reuse strafunski parametric program transformation