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 they appeared to be fruitful to develop or improve distributed component infrastructures or application servers, those systems are not underpinned 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 as well as a base language in which many features of previous distributed AOP models can be formalized. 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 aspects 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 advice, 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) |
---|