Skip to Main content Skip to Navigation
Conference papers

Divide and recycle: types and compilation for a hybrid synchronous language

Albert Benveniste 1 Timothy Bourke 1 Benoit Caillaud 1 Marc Pouzet 2, 3 
1 S4 - System synthesis and supervision, scenarios
IRISA - Institut de Recherche en Informatique et Systèmes Aléatoires, Inria Rennes – Bretagne Atlantique
3 Parkas - Parallélisme de Kahn Synchrone
DI-ENS - Département d'informatique - ENS Paris, Inria Paris-Rocquencourt, CNRS - Centre National de la Recherche Scientifique : UMR 8548
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 source-to-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.
Document type :
Conference papers
Complete list of metadata
Contributor : Benoît Caillaud Connect in order to contact the contributor
Submitted on : Tuesday, December 20, 2011 - 8:49:08 PM
Last modification on : Thursday, March 17, 2022 - 10:08:45 AM



Albert Benveniste, Timothy Bourke, Benoit Caillaud, Marc Pouzet. Divide and recycle: types and compilation for a hybrid synchronous language. Proceedings of the ACM SIGPLAN/SIGBED 2011 conference on Languages, compilers, and tools for embedded systems, LCTES 2011, Apr 2011, Chicago, IL, United States. ⟨10.1145/1967677.1967687⟩. ⟨hal-00654112⟩



Record views