Marc Pouzet
Professor at Université Pierre et Marie Curie
A Synchronous-based Implementation of a Hybrid Systems Modeling Language
Abstract:
Modeling languages
for hybrid systems are cornerstones of embedded systems development in
which software interacts with a physical environment. Sequential code
generation from such languages is important for simulation efficiency
and for producing code for embedded targets. Despite being routinely
used in industrial compilers, code generation is rarely, if ever,
described in full detail, much less formalized. Yet formalization is an
essential step in building trustable compilers for critical embedded
software development.
In this talk, I will present a novel
approach for generating code from a hybrid systems modeling language.
By building on top of an existing synchronous language and compiler, it
reuses almost all the existing infrastructure with only a few
modifications. Starting from an existing synchronous data-flow language
conservatively extended with Ordinary Differential Equations (ODEs),
this work details the sequence of transformations that ultimately
yield sequential code. A generic intermediate language is introduced to
represent transition functions. The versatility of this approach is
exhibited by treating two classical simulation targets: code that
complies with the FMI standard and code directly linked with an
off-the-shelf numerical solver (Sundials CVODE).