Preserving Separation of Concerns through Compilation
By: Hridesh Rajan, Robert Dyer, Youssef Wasfy Hanna, and Harish Narayanappa
Download PaperAbstract
Today’s aspect-oriented programming (AOP) languages provide software engineers with new possibilities for keeping conceptual concerns separate at the source code level. For a number of reasons, aspect weavers sacrifice this separation in transforming source to object code (and thus the very term weaving). In this paper, we argue that sacrificing modularity has significant costs, especially in terms of the speed of incremental compilation and in testing. We argue that design modularity can be preserved through the mapping to object code, and that preserving it can have significant benefits in these dimensions. We present and evaluate a mechanism for preserving design modularity in object code, showing that doing so has potentially significant benefits.
Other Info
A previous version of this paper appeared as TR-214.
ACM Reference
Rajan, H. et al. 2006. Preserving separation of concerns through compilation. (2006).
BibTeX Reference
@inproceedings{rajan2006preserving-b,
title={Preserving separation of concerns through compilation},
author={Rajan, Hridesh and Dyer, Robert and Hanna, Youssef Wasfy and Narayanappa, Harish},
year={2006},
numpages={6},
institution={Iowa State U., Computer Sc.},
location={Ames, Iowa, USA},
entrysubtype = {workshop},
abstract = {
Today’s aspect-oriented programming (AOP) languages provide software engineers
with new possibilities for keeping conceptual concerns separate at the source
code level. For a number of reasons, aspect weavers sacrifice this separation
in transforming source to object code (and thus the very term weaving). In
this paper, we argue that sacrificing modularity has significant costs,
especially in terms of the speed of incremental compilation and in testing. We
argue that design modularity can be preserved through the mapping to object
code, and that preserving it can have significant benefits in these dimensions.
We present and evaluate a mechanism for preserving design modularity in object
code, showing that doing so has potentially significant benefits.
}
}