The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A typed language for distributed mobile processes (extended abstract)
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Safe Dynamic Binding in the Join Calculus
TCS '02 Proceedings of the IFIP 17th World Computer Congress - TC1 Stream / 2nd IFIP International Conference on Theoretical Computer Science: Foundations of Information Technology in the Era of Networking and Mobile Computing
The Join Calculus: A Language for Distributed Mobile Programming
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Remote pointcut: a language construct for distributed AOP
Proceedings of the 3rd international conference on Aspect-oriented software development
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Explicitly distributed AOP using AWED
Proceedings of the 5th international conference on Aspect-oriented software development
Formalising Java RMI with explicit code mobility
Theoretical Computer Science
StrongAspectJ: flexible and safe pointcut/advice bindings
Proceedings of the 7th international conference on Aspect-oriented software development
Expressive scoping of distributed aspects
Proceedings of the 8th ACM international conference on Aspect-oriented software development
A versatile kernel for distributed AOP
DAIS'06 Proceedings of the 6th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems
Transactions on Aspect-Oriented Software Development I
Hi-index | 0.00 |
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, a member of the π-calculus family of process calculi suitable as a programming language. It provides a first formal theory of distributed AOP as well as a base language in which many features of previous distributed AOP systems 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 languages can be formalized. Indeed, many features (such as remote pointcut, distributed advice, migration of aspects, asynchronous and synchronous aspects, re-routing of messages and distributed control flow) can be defined in this simple language.