Invertible Program Restructurings for Continuing Modular Maintenance
Julien Cohen (LINA), R\'emi Douence (LINA, INRIA - EMN), Akram Ajouli, (LINA, INRIA - EMN)

TL;DR
This paper introduces invertible program transformations to address the tyranny of the dominant decomposition in modular maintenance, enabling flexible restructuring for software evolution.
Contribution
It proposes a novel approach using invertible transformations to improve modular maintenance and handle the Expression Problem in a broader context.
Findings
Successful application to Java and Haskell programs
Addresses the tyranny of the dominant decomposition
Discusses open problems and future directions
Abstract
When one chooses a main axis of structural decompostion for a software, such as function- or data-oriented decompositions, the other axes become secondary, which can be harmful when one of these secondary axes becomes of main importance. This is called the tyranny of the dominant decomposition. In the context of modular extension, this problem is known as the Expression Problem and has found many solutions, but few solutions have been proposed in a larger context of modular maintenance. We solve the tyranny of the dominant decomposition in maintenance with invertible program transformations. We illustrate this on the typical Expression Problem example. We also report our experiments with Java and Haskell programs and discuss the open problems with our approach.
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.
