Team Pop Art

Overall Objectives
Scientific Foundations
Application Domains
New Results
Contracts and Grants with Industry
Other Grants and Activities

Section: New Results

Automatic Distribution of Synchronous Programs

Participants : Mouaiad Alras, Gwenaël Delaval [contact person] , Alain Girault.

Modular Distribution

Synchronous programming languages describe functionally centralized systems, where every value, input, output, or function is always directly available for every operation. However, most embedded systems are nowadays composed of several computing resources. The aim of this work is to provide a language-oriented solution to describe functionally distributed reactive systems. This research is conducted within the INRIA large scale action Synchronics and is a joint work with Marc Pouzet (ENS, Parkas team from Saclay).

We are working on type systems to formalize, in an uniform way, both the clock calculus and the location calculus of a synchronous data-flow programming language (the Heptagon language, inspired from Lucid Synchrone [38] ). On one hand, the clock calculus infers the clock of each variable in the program and checks the clock consistency: e.g., a time-homogeneous function, like + , should not be applied to variables of different clocks. On the other hand, the location calculus infers the spatial distribution of computations and checks the spatial consistency: e.g., a centralized operator, like + , should not be applied to variables located on different locations. Compared to the recent PhD of Gwenaël Delaval [47] , [48] , the goal is to achieve modular distribution. By modular, we mean that we want to compile each function of the program into a single function capable of running on any computing location. We make use of our uniform type system to express the computing locations as first-class abstract types, exactly like clocks, which allows us to compile a typed variable (typed by both the clock and the location calculi) into if ... then ... else ... structures, whose conditions will be valuations of the clock and location variables.

Model-based Development of Fault-tolerant Embedded Systems, Code Generation for Distributed Heterogeneous Platforms

Model-based design (MBD) involves designing a model of a control system, simulating and debugging it with dedicated tools, and finally generating automatically code corresponding to this model. In the domain of embedded systems, it offers the huge advantage of avoiding the time-consuming and error-prone final coding phase. The main issue raised by MBD is the faithfulness of the generated code with respect to the initial model, the latter being defined by the simulation semantics. To bridge the gap between the high-level model and the low-level implementation, we use the synchronous programming language Lustre as an intermediary formal model [66] . Concretely, starting from a high-level model specified in the de-facto standard Simulink , we proceed in two steps. Firstly, we generate Lustre code along with some necessary structured “glue code”; this is based on new “meta-operators” that extend Lustre with the non-functional properties extracted from the Simulink model (related, e.g., to the activation conditions and the real time). Secondly, from this intermediate format written in Lustre with meta-operators, we generate embedded real-time code for the Xenomai RTOS( ). Thanks to Lustre's clean mathematical semantics, we are able to guarantee the faithfulness of the generated multi-tasked real-time code [30] . This is the topic of the ongoing PhD of Mouaiad Alras, co-advised by Alain Girault and Pascal Raymond (CNRS, Verimag).


Logo Inria