Rule-based approaches to aspect-oriented programming

Maja D'Hondt

Université Libre de Bruxelles, Belgium

Abstract

At the PROG and SSEL labs at the VUB there exists a body of research that is concerned with using rule-based languages in the context of aspect-oriented programming. First of all, rule-based languages appear to be the most suitable medium for expressing rule-based knowledge which is an inherent part of business support applications. In this case, aspect-oriented programming plays a crucial role in integrating rule-based knowledge and object-oriented functionality both at the program and language level. This results in a hybrid aspect language which combines rule-based and object-oriented language features but has a decidedly rule-based execution model. Secondly, we have a long-standing experience in using rule-based languages - in particular logic languages - for implementing aspect weavers. Rules enable the rapid construction of aspect weavers for new aspect languages. Furthermore, using multiple aspect languages when developing a single application is facilitated because the logic aspect weavers compose naturally. The logic language can also be used for expressing composition rules that resolve interference or conflicts between the different logic aspect weavers. As such, the rule-based programming paradigm can occur at different levels: (1) rule-based languages can be used as base languages, (2) aspect languages can be based on the rule-based programming paradigm, and (3) aspect weavers can be implemented in a rule-based language. In the first two cases, the rule-based languages implement application functionality - either as base or aspect programs - which is executed at run-time, whereas in the last case the rule-based language implements weaver functionality which is executed at weave-time.