Abstract:
Software evolution sometimes requires changes of module interfaces, which in turn cause crosscutting changes, or changes of module clients that are spreading over a program. Such changes on the client-side can be too complicated to be automatically achieved by text replacement and refactoring tools. We propose a code transformation language, called Crossver, for consistently updating code fragments in a program. Crossver offers a source-level pattern sublanguage to express complicated transformation conditions. The patterns are robust against variety among clients thanks to the dataflow-based pattern matcher. In the paper, we overview the design and core semantics of Crossver.
Reference:
Crossver: a Code Transformation Language for Crosscutting Changes (Kouhei Sakurai and Hidehiko Masuhara), In Proceedings of the 9th International Workshop on Advanced Modularization Techniques (AOAsia/Pacific 2014), 2014.
Bibtex Entry:
@inproceedings{sakurai2014aoasia,
author = {Kouhei Sakurai and Hidehiko Masuhara},
title = {{Crossver}: a Code Transformation Language for Crosscutting Changes},
url = {http://prg.is.titech.ac.jp/events/aoasia14/},
pdf = {aoasia2014.pdf},
booktitle = {Proceedings of the 9th International Workshop on Advanced Modularization Techniques (AOAsia/Pacific 2014)},
year = 2014,
month = nov,
date = {2014-11-16},
location = {Hong Kong},
keywords = {Java},
abstract = {Software evolution sometimes requires changes of module interfaces, which in turn cause crosscutting changes, or changes of module clients that are spreading over a program. Such changes on the client-side can be too complicated to be automatically achieved by text replacement and refactoring tools. We propose a code transformation language, called Crossver, for consistently updating code fragments in a program. Crossver offers a source-level pattern sublanguage to express complicated transformation conditions. The patterns are robust against variety among clients thanks to the dataflow-based pattern matcher. In the paper, we overview the design and core semantics of Crossver.}
}