Taming aspects

  • Authors:
  • Éric Tanter

  • Affiliations:
  • University of Chile

  • Venue:
  • Proceedings of the 4th international workshop on Variability & composition
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aspect-oriented programming languages support the modular definition of crosscutting abstractions. In most languages, this is achieved through pointcuts, which provide a means for quantifying over execution events in order to implicitly trigger advice. Notably, an advice is more than a simple event handler because of its ability to override the underlying computation. Unrestricted quantification and arbitrary advice computation are powerful but dangerous. In this talk we look at a number of approaches to tame aspects in order to retain their benefits without sacrificing important software engineering properties, like modular reasoning, separate development, type soundness, and controlled interferences. Specifically, we report on our work in scoping, interfaces, types, and effects: scoping We have proposed scoping strategies [8], which extend the work of Dutchyn et al. [2], and have been successfully applied to distribution [10] and access control [13-15]; execution levels [3, 9], which avoid infinite regression and computational interference between aspects, and have been applied to compose dynamic analyses aspects [11]; and membranes [4, 12], which allow more flexible topological scoping and local weaving customization. interfaces We recently developed the notion of Join Point Interfaces [1], which builds upon Steimann et al. [6], recovering sound type checking and retaining flexibility thanks to generic interfaces and controlled global quantification. types and effects We provide a typed embedding of aspects in Haskell, which statically ensures that pointcut/advice bindings are type safe; in addition, the use of monads makes it possible to statically control interferences and effects of aspects [4, 7]. Finding the right balance between power and control is a delicate and still open question, especially when aiming at simplicity of usage. We believe further work is needed to address this crucial challenge for the principled adoption of aspects.