Towards Generic Refactoring
Ralf Laemmel
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.
Create a lesson
Related papers
Normalization by Evaluation with Substitutions as Operations
Jason Z. S. Hu
Typechecking without Minimum Types: Finite Bases and Backward Checking for F<:^
Mingkun Xiao, Yixuan Sun
Verifying deployed bytecode against executable EVM semantics, with exact gas and no added axioms
Seulkee Baek
Recursive Formation and First-Class Reuse of Compositional Capabilities
Hang Lin
OpenMQPI: An MLIR-based Pipeline to Offload Quantum Circuits via OpenMP
Ercüment Kaya, Ekin Devim Şahinkaya, Minh Chung et al.
Compositional Information Geometry of Probabilistic Programs
Jacek Karwowski, Frank Nielsen, Sam Staton