Preserving Separation of Concerns through Compilation

By: Hridesh Rajan, Robert Dyer, Youssef Wasfy Hanna, and Harish Narayanappa

PDF Download Download Paper

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.

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.
  }
}