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
CNRS - Centre National de la Recherche Scientifique : UMR 8548, Inria Paris-Rocquencourt, DI-ENS - Département d'informatique de l'École normale supérieure
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.
Type de document :
Communication dans un congrès
Proceedings of the ACM SIGPLAN/SIGBED 2011 conference on Languages, compilers, and tools for embedded systems, LCTES 2011, Apr 2011, Chicago, IL, United States. 2011, 〈10.1145/1967677.1967687〉
Liste complète des métadonnées

https://hal.inria.fr/hal-00654112
Contributeur : Benoît Caillaud <>
Soumis le : mardi 20 décembre 2011 - 20:49:08
Dernière modification le : vendredi 16 novembre 2018 - 01:24:14

Identifiants

Citation

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. 2011, 〈10.1145/1967677.1967687〉. 〈hal-00654112〉

Partager

Métriques

Consultations de la notice

857