Program Metamorphosis
Christoph Reichenbach, Devin Coughlin, Amer Diwan, Bor-Yuh Evan Chang
Program Metamorphosis (PM) is a generalisation of automatic
refactoring:
transforming programs while guaranteeing behaviour preservation. Program Metamorphosis improves over traditional refactoring by
- Simplifying re-use of fragmentary transformations
- Permitting temporary invalidation of behaviour guarantees
- Permitting user-driven, selective behaviour adaptation without externally imposed heuristics
Papers
- Christoph's Dissertation describes PM in its full generality, including a second (presently unreleased) PM prototype for SML.
- Our ECOOP 2009 paper introduces our Eclipse plugin and demonstrates its utility in a direct comparison against Eclipse's refactorings.
- A technical report describes an earlier Datalog-based PM prototype.
Java prototype