
TL;DR
This paper proposes a generic refactoring framework using typed functional programs, enabling language-agnostic transformations by abstracting over language syntax and semantics.
Contribution
It introduces a novel approach that employs generic function combinators and a multi-parameter class to support refactoring across multiple programming languages.
Findings
Framework supports refactoring in various languages like Java, Prolog, and Haskell.
Uses generic traversal and polymorphic functions for analysis and transformation.
Abstracts language syntax to detach from specific language details.
Abstract
We study program refactoring while considering the language or even the programming paradigm as a parameter. We use typed functional programs, namely Haskell programs, as the specification medium for a corresponding refactoring framework. In order to detach ourselves from language syntax, our specifications adhere to the following style. (I) As for primitive algorithms for program analysis and transformation, we employ generic function combinators supporting generic traversal and polymorphic functions refined by ad-hoc cases. (II) As for the language abstractions involved in refactorings, we design a dedicated multi-parameter class. This class can be instantiated for abstractions as present in various languages, e.g., Java, Prolog or Haskell.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Model-Driven Software Engineering Techniques · Logic, programming, and type systems
