A theory of distributed aspects
Résumé
Over the last five years, several systems have been proposed to take distribution into account in Aspect Oriented Programming. While being fruitful to develop or improve distributed component infrastructures or application servers, those systems are not given with a formal semantics and so do not permit to establish properties on the code to be executed. This paper introduces the aspect join calculus -- an aspect oriented and distributed language based on the join calculus -- to provide a first formal theory of distributed AOP in which we can express many features of previous distributed AOP models. The semantics of the aspect join calculus is given by a (chemical) operational semantics and a type system is developed to ensure properties satisfied by aspect during the execution of a process. We also give a translation of the aspect join calculus into the core join calculus. The translation is proved to be correct by a bisimilarity argument. In this way, we provide a well-defined version of a weaving algorithm which constitutes the main step towards an implementation of the aspect join calculus directly in JoCaml. We conclude this paper by showing that despite its minimal definition, the aspect join calculus is a convenient language in which existing distributed AOP models can be formalized. Indeed, many features of previous distributed AOP models (such as remote pointcut, distributed advices, migration of aspects, asynchronous and synchronous aspects, re-routing of messages, distributed control flow) can be defined in this simple language.
Domaines
Langage de programmation [cs.PL]Origine | Fichiers produits par l'(les) auteur(s) |
---|