Publication | Closed Access
A Synchronous Look at the Simulink Standard Library
15
Citations
20
References
2017
Year
EngineeringComputer ArchitectureSystem-level DesignClock SynchronizationHardware SystemsSynchronization ProtocolSystems EngineeringParallel ComputingCompilersHybrid Systems ModelersProgramming LanguagesHigh-level Programming LanguageProgramming Language TheoryHardware-in-the-loop SimulationMost BlocksComputer EngineeringSimulink Standard LibraryComputer ScienceStream EquationsFunctional ProgrammingProgram AnalysisFormal MethodsMathematical FoundationsModel AbstractionParallel ProgrammingParallel Programming ModelAsynchronous Systems
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 Zélus, a synchronous language that conservatively extends L ustre with ODEs to program systems that mix discrete-time and continuous-time signals.
| Year | Citations | |
|---|---|---|
Page 1
Page 1