Dynamic AspectJ

  • Authors:
  • Ali Assaf;Jacques Noyé

  • Affiliations:
  • École des Mines de Nantes-INRIA/LINA, Nantes, France;École des Mines de Nantes-INRIA/LINA, Nantes, France

  • Venue:
  • DLS '08 Proceedings of the 2008 symposium on Dynamic languages
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper considers the difficulties linked to the static scheduling strategy of AspectJ and shows how to overcome them by turning to a more dynamic strategy, making it possible to order, cancel, and deploy aspects at runtime. We show that this more dynamic strategy can be obtained by a minor update of the semantics of AspectJ introducing the notion of current aspect group, that is, the aspects scheduled for the current join point. We show how to reflect this change at the language level and present a prototype of the resulting AspectJ variant, Dynamic AspectJ. This prototype reuses AspectJ to perform a first step of static weaving, which we complement by a second step of dynamic weaving, implemented through a thin interpretation layer. This can be seen as an interesting example of reconciling interpreters and compilers, the dynamic and the static world.