Project : popart
Section: New Results
Reactive and aspect-oriented programming
The goal of Aspect-Oriented Programming (AOP) is to isolate aspects (such as security, synchronization or error handling) which cross-cut the program basic functionality and whose implementation would otherwise yield tangled code. In AOP, such aspects are specified separately and integrated into the program by an automatic transformation process called weaving.
Although this new paradigm has great practical potential, it still lacks formalization. For historical reasons, most aspect languages are very expressive and dedicated to object-oriented languages (e.g. Java). The formal foundations of AOP are very difficult to establish in such a complex setting.
Bringing together aspect-oriented programming and reactive programming has three main objectives:
The first objective is to propose a formal semantics of aspects and weaving in the reactive programming framework. This framework is promising since it is based on simple formal models (transition systems, automata) and a large class of aspects can be seen as temporal properties to enforce on such models.
The second objective is to study the relationship between aspect weaving and controller synthesis (see Section 6.3). Both techniques aim at ensuring properties on programs. Their common points, differences and potential cross-fertilizations deserve to be studied.
Each programming paradigm has its own abstractions, concerns and therefore, aspects. So, the last objective is to discover and study the specific aspects needed by reactive systems.
This new line of research is initiated by the arrival of P. Fradet in Pop Art last September and by the local ARC with Verimag: Ctrl-a, Aspect-oriented programming and reactive languages (cf. section 8.1.2). For more information on P. Fradet's on-going work on AOP and other topics, the reader is referred to the activity report of the Lande( http://www.irisa.fr/lande) team (Inria Rennes).