A Synchronous Look at the Simulink Standard Library

作者:Bourke Timothy*; Carcenac Francois; Colaco Jean Louis; Pagano Bruno; Pasteur Cedric; Pouzet Marc
来源:ACM Transactions on Embedded Computing Systems, 2017, 16(5s): 176.
DOI:10.1145/3126516

摘要

Hybrid systems modelers like Simulink come with a rich collection of discrete-time and continuous-time blocks. Most blocks are not defined in terms of more elementary ones-and some cannot be-but are instead written in imperative code and explained informally in a reference manual. This raises the question of defining a minimal set of orthogonal programming constructs such that most blocks can be programmed directly and thereby given a specification that is mathematically precise, and whose compiled version performs comparably to handwritten code. In this paper, we show that a fairly large set of blocks of a standard library like the one provided by Simulink can be programmed in a precise, purely functional language using stream equations, hierarchical automata, Ordinary Differential Equations (ODEs), and deterministic synchronous parallel composition. Some blocks cannot be expressed in our setting as they mix discrete-time and continuous-time signals in unprincipled ways that are statically forbidden by the type checker. The experiment is conducted in Zelus, a synchronous language that conservatively extends Lustre with ODEs to program systems that mix discrete-time and continuous-time signals.

  • 出版日期2017-10
  • 单位INRIA