@inproceedings{3daabdf1a3084a17aefc9d00ef7521a6,
title = "A synchronous-based code generator for explicit hybrid systems languages",
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. This paper presents 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 paper details the sequence of source-tosource 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). The presented material has been implemented in the Z{\'e}lus compiler and the industrial Scade Suite KCG code generator of Scade 6.",
author = "Timothy Bourke and Cola{\c c}o, \{Jean Louis\} and Bruno Pagano and C{\'e}dric Pasteur and Marc Pouzet",
note = "Publisher Copyright: {\textcopyright} Springer-Verlag Berlin Heidelberg 2015.; 24th International Conference on Compiler Construction, CC 2015 held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015 ; Conference date: 11-04-2015 Through 18-04-2015",
year = "2015",
month = jan,
day = "1",
doi = "10.1007/978-3-662-46663-6\_4",
language = "English",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "69--88",
editor = "Bj{\"o}rn Franke",
booktitle = "Compiler Construction - 24th International Conference, CC 2015 held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, Proceedings",
}