Dynamic AspectC++: Generic Advice at Any Time

  • Authors:
  • Reinhard Tartler;Daniel Lohmann;Wolfgang Schröder-Preikschat;Olaf Spinczyk

  • Affiliations:
  • Friedrich-Alexander University Erlangen-Nuremberg;Friedrich-Alexander University Erlangen-Nuremberg;Friedrich-Alexander University Erlangen-Nuremberg;Technical University Dortmund

  • Venue:
  • Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the Eighth SoMeT_09
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

In theory, the expressive power of an aspect language should be independent of the aspect deployment approach, whether it is static or dynamic weaving. However, in the area of strictly statically typed and compiled languages, such as C or C++, there seems to be a feedback from the weaver implementation to the language level: dynamic aspect languages offer noticeable fewer features than their static counterparts. Especially means for generic aspect implementations are missing, as they are very difficult to implement in dynamic weavers. This hinders reusability of aspects and the application of AOP to scenarios where both, runtime and compile-time adaptation is required. Our solution to overcome these limitations is based on a novel combination of static and dynamic weaving techniques, which facilitates the support of typical static language features, such as generic advice, in dynamic weavers for compiled languages. In our implementation, the same AspectC++ aspect code can now be woven statically or dynamically into the Squid web proxy, providing flexibility and best of bread for many AOP-based adaptation scenarios.