Practical conflict resolution for the composition of program transformations

  • Authors:
  • Andreas I. Schmied;Franz J. Hauck

  • Affiliations:
  • Institute of Distributed Systems, Ulm University, Germany;Institute of Distributed Systems, Ulm University, Germany

  • Venue:
  • SC'08 Proceedings of the 7th international conference on Software composition
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The composition of separate concerns is a cornerstone for the construction of complex software. By now, aspect-oriented techniques have been established as the sine qua non in several application areas. However, their abilities to cope with composition conflicts are mostly limited to the linear ordering of aspects. This paper describes a more general and practical approach for the resolution of composition conflicts as it is realised in our general-purpose transformation system LLTS. Our system divides a composition into two phases. In the expansion phase separate transformations add concern code within their isolated copies of the base code. In the subsequent contraction phase the manipulations of the first phase are compared and merged wherever possible. A hinting mechanism guides the semi-automatic merging on three levels: Conflicts are detected using compatibility relations between operators, by reconciling annotations of complex transformation tasks, and based on semantic predicates of the base code language. Conflicts are reported to the user with a comprehensive explanation and can be resolved with manual by-case deviations from the original transformation code. As a result, conflicts can be remedied on a finer granularity, e.g., by revising only parts of a transformation in a certain context.