SYRF Project
Task 2: "Combination of Formalisms"
Abstract of deliverable
2.3
<under construction, january 20th, 2000...>
Achieved Results: Work has continued in the three main lines
of research within this work package, that is:
-
combination of formalisms on basis of the common format DC
-
mode automata
-
synchronous object-oriented programming
The combination of formalisms on the common format DC
A translator from Signal to DC+ is available in the Signal compiler.
Besides that, the Signal compiler has been restructured so that the internal
graph representation is now the same one for Signal programs and for DC+
ones. This gives access to the same functionalities for DC+ and for Signal
programs: clock calculus, graph calculus, inter-format transformations,
interface calculus, code generation, access to proof systems, etc. On the
other hand, translators to DC exist from Lustre-V5, mode-automata and Esterel.
The Signal-DC+ environment has been used on the climatic chamber application
(SYRF case study) to integrate components developed in different formalisms
and to generate a distributed implementation. This experiment has been
described in [islip99]. The considered case study consists of a climatic
chamber with a control system which regulates and monitors the flow and
the temperature of air which is circulating in the chamber.
Mode automata
Last year, we were able to compile flat mode-automata into DC. We proposed
a solution consisting of 1) encoding the control part (automaton) directly
into DC 2) encapsulating each system of Lustre equations into syntactically
correct Lustre programs, then passed to the Lustre-to-DC compiler. 3) analysing
the resulting DC code, extracting the relevant parts, and merging them
into the automaton encoding. This year, we worked on the translation of
mode-automata directly into DC, mainly because the above technique is difficult
to use when mode-automata are composed. We first defined an extended version
of mode-automata with parallel and hierarchic compositions. We also defined
a compilation scheme from this language to DC. The principle is to compile
mode-automata programs structurally, and to use activation conditions a
lot. The compilation algorithm is described in [Maraninchi-Remond-Raoul
- CC00]. The new compiler has been applied to part of the program proposed
in the SAAB Case study. Producing DC code allows to mix some parts written
in the mode-automata language, and some other parts written in any language
that can be compiled into DC. We actually apply this mechanism for a part
written in pure Lustre.
Synchronous object-oriented programming
The language sE has undergone a major re-design in the last year of
the project. The re-design affects several aspects. In particular:
-
Sporadic signals (as in Esterel ) and periodic signals (the flows of )
have found uniform syntactic and semantic interpretation.
-
Delayed signals (by one instant) have been introduced to break causality
cycles similar to the Statecharts semantics.
-
The semantical engine has been streamlined, and we have added facilities
to represent constructive causality on the level of synchronous automata.
-
Lustre has been embedded (with the exception of arrays) by means of a single
sustain construct. Mode automata have become a sublanguage.
-
The graphical notation has been extended to comprise full SyncCharts, the
synchronous variant of Statecharts .
-
A textual presentation of automata is supported.
-
For pure control, we can generate Lustre as input to Lucifer.
-
We can generate DC thus linking to the SYRF tool set.
To summarise: sE offers a fairly uniform and smooth integration of several
formalisms in the field of synchronous programming, In particular, it offers
a uniform interpretation of sporadic and periodic signals. Whether mixing
of styles will be accepted in the full generality provided, will have to
be seen in future. Restriction of the interaction of sporadic and periodic
signals as, e.g. in mode automata, may be a future choice, though we believe
that our mechanisms are simple enough. As an enhancement, sE offers asynchronous
communication via a shared memory / blackboard architecture. This facility
has been developed in context of another funded research project. The communication
is non-blocking. Signals that are communicated have a time stamp which
allows to set up watchdogs to check for the reliability / aging of values.
sE has been instrumented for this communication. in particular, a simple
mechanism has been set up to access real system time, and to use it in
context of a synchronous program without giving up the synchrony hypothesis.
References and Publications:
-
C2A-SYNCHRON.
The common format of synchronous languages -- The declarative code
DC.
Technical report, Eureka-SYNCHRON Project, October 1995.
-
F.Maraninchi, Y.Rémond
and Y. Raoul
MATOU
: An Implementation of Mode-automata
International Conference on Compiler Construction - CC2000 - Berlin,
march 2000
-
The
synchronousEifel Site
-
A.
Benveniste, T. Gautier, P. Le Guernic, E. Rutten
Distributed code generation of dataflow synchronous programs: the SACRES
approach
ISLIP 98 - Proceedings of the Eleventh Annual International Symposium on
Languages for Intensional Programming - Palo Alto, California - May 7--9,
1998