Charla: A Chemical Approach to Distributed Aspects

Nicolas Tabareau, INRIA
5 Diciembre, 2012 - 11:00
Auditorio 3er piso




Distributed applications are challenging to program because they have to deal with a plethora of concerns, including synchronization, locality, replication, security and fault tolerance. Aspect-oriented programming (AOP) is a paradigm that promotes better modularity by providing means to encapsulate crosscutting concerns in entities called aspects. Over the last years, a number of distributed aspect-oriented programming languages and systems have been proposed, illustrating the benefits of AOP in a distributed setting.


Chemical calculi are particularly well-suited to formally specify the behavior of concurrent and distributed systems. The join calculus is a functional name-passing calculus, with both distributed and object-oriented extensions. It is used as the basis of concurrency and distribution features in several mainstream languages like C# (namely, Polyphonic C#) and OCaml (namely, JoCaml). Unsurprisingly, practical programming in the join calculus also suffers from crosscutting concerns.


We propose the Aspect Join Calculus, an aspect-oriented and distributed variant of the join calculus, which addresses crosscutting, and at the same time, provides the first formal foundation for distributed AOP.  We develop the aspect join calculus by showing how it can be used to deal with causal relations, and advanced, customizable aspect weaving semantics. We also provide the foundation for a decentralized distributed aspect weaving architecture.


The semantics of the aspect join calculus is given by a chemical operational semantics. We give a translation of the aspect join calculus into the core join calculus, and prove this translation correct by a bisimilarity argument.


This translation is used to implement Aspect JoCaml on top of JoCaml.

 Don't be afraid, the talk will be mainly based on examples.

 This is joint work with Éric Tanter.