Section: New Results
A compilation tool-chain for Synoptic, a space application DSL
Participants : Julien Ouy, Jean-Pierre Talpin.
In the context of the ANR project Spacify, we are using Polychrony/SME as compilation infrastructure for the domain-specific modeling language Synoptic, defined in the context of the project from industrial user requirements.
We implemented a functional version of the tool to perform model transformation from Synoptic to SME. This transformation is done using the language Kermeta. It is partly described in the Spa4 internal document of the project. The main developments this year have focused on:
-
Processing models of blocks and processes: the transformation should provide an equivalence between the Synoptic blocks proposed by the designer and SME synchronous blocks that will be used for implantation, this equivalence should be reflected in the names of the processes, in their interface and the name of their ports, in the use of constants and types.
-
Extraction of implicit information: Synoptic models are based on building patterns which require properties on the objects they manipulate: hidden signals, synchrony of signal, chronology of actions. Moreover, the Synoptic design allows the user to provide models partially defined, transformation must add the elements that are necessary if they are implicit and ensure that additions and changes implemented do not betray the thought of user.
-
Dataflow transformation: the design of dataflow Synoptic is fairly close to that of Signal, the difficulty occurs mainly in the use of variables: the Synoptic language is far more permissive than SME about synchronous readings - writes to variables. Replication of variable has been set up to ensure the assignment of unique values in each variable in one synchronous moment. Automaton transformation: Synoptic automaton are more complex than those of SME, a major transformation work is needed to pass each other, this work is based on the document (Spa 6) describing the synchronous semantics of Synoptic .
-
Traceability of transformations: traceability concern two points, the first is in the transformation from Synoptic to SME, care has been made to names of variables to be able to trace to user design errors found during code generation. The second point concerns the simulation. For simulation, a table is generated to provide RT-builder simulator with equivalency names of variables and processes. So the display of the simulation can be done using the names proposed by the user.