next up previous
Next: Conclusion Up: Aspects and Polymorphism in Previous: Environmental Advice


Other AOSD Approaches

In this paper we have focused on AspectJ, in order to be able to analyze the concrete language constructs of a widely known AOSD language in some detail. However, the concept of polymorphism also deserves consideration in connection with other AOSD approaches.

In the composition filters approach [30,1,31], it is possible to intercept message-sends and manipulate the receiver (i.e., delegate to another object), manipulate the selector (i.e., invoke a method with a different name), and manipulate the arguments. Moreover, the concept of superposition allows for non-invasive application of filters to multiple objects. This provides a very general framework, capable of expressing entities similar to AspectJ aspects, among other things. We believe that various kinds of polymorphism could be implemented by means of composition filters, but also that it would imply a manual encoding of, e.g., a late binding mechanism for advice. It is not clear to which extent such a mechanism could be expressed once and for all, as a reusable library, but it would be very interesting to see such a library if it were implemented.

AspectS [15] is an AOSD framework with AspectJ-like concepts which is based on the Smalltalk [14] dialect Squeak [21]. AspectS supports AOP by means of method interception and general Smalltalk meta-programming. Unlike AspectJ which does not support run-time weaving [4]), AspectS' aspects can be installed and uninstalled dynamically . When an aspect is installed, AspectS replaces the designated methods with method wrappers [6], which act as around-advice. PerspectiveS [27] is a management facility on top of AspectS which provides layers of context-depended behavior that can be activated or deactivated dynamically.

Similar to the situation with composition filters, we believe that the AspectS flexible framework could support a manual encoding of various kinds of polymorphism in connection with aspects. Again, expressing aspectual polymorphism as a facility on top of AspectS and PerspectiveS is a logical follow-up to this work.


next up previous
Next: Conclusion Up: Aspects and Polymorphism in Previous: Environmental Advice
David H. Lorenz 2003-01-15