@inproceedings{37b55649dd704917b298d7eacde55c53,
title = "Divide and recycle: Types and compilation for a hybrid synchronous language",
abstract = "Hybrid modelers such as SIMULINK have become corner stones of embedded systems development. They allow both discrete controllers and their continuous environments to be expressed in a single language. Despite the availability of such tools, there remain a number of issues related to the lack of reproducibility of simulations and to the separation of the continuous part, which has to be exercised by a numerical solver, from the discrete part, which must be guaranteed not to evolve during a step. Starting from a minimal, yet full-featured, LUSTRE-like synchronous language, this paper presents a conservative extension where data-flow equations can be mixed with ordinary differential equations (ODEs) with possible reset. A type system is proposed to statically distinguish discrete computations from continuous ones and to ensure that signals are used in their proper domains. We propose a semantics based on non-standard analysis which gives a synchronous interpretation to the whole language, clarifies the discrete/continuous interaction and the treatment of zero-crossings, and also allows the correctness of the type system to be established. The extended data-flow language is realized through a sourceto-source transformation into a synchronous subset, which can then be compiled using existing tools into routines that are both efficient and bounded in their use of memory. These routines are orchestrated with a single off-the-shelf numerical solver using a simple but precise algorithm which treats causally-related cascades of zero-crossings. We have validated the viability of the approach through experiments with the SUNDIALS library.",
keywords = "Block diagrams, Compilation, Hybrid systems, Real-time systems, Semantics, Synchronous languages, Type systems",
author = "Albert Benveniste and Timothy Bourke and Beno{\^i}t Caillaud and Marc Pouzet",
year = "2011",
month = may,
day = "10",
doi = "10.1145/1967677.1967687",
language = "English",
isbn = "9781450305556",
series = "Proceedings of the ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES)",
pages = "61--70",
booktitle = "LCTES'11 - Proceedings of the ACM SIGPLAN/SIGBED 2011 Conference on Languages, Compilers, Tools and Theory for Embedded Systems",
note = "ACM SIGPLAN/SIGBED Conference on Languages Compilers, Tools, and Theory for Embedded Systems, LCTES 2011 ; Conference date: 11-04-2011 Through 14-04-2011",
}