ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers
ACM Transactions on Mathematical Software (TOMS) - Special issue on the Advanced CompuTational Software (ACTS) Collection
Translating discrete-time simulink to lustre
ACM Transactions on Embedded Computing Systems (TECS)
Languages and tools for hybrid systems design
Foundations and Trends in Electronic Design Automation
Leveraging synchronous language principles for heterogeneous modeling and design of embedded systems
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
Clock-directed modular code generation for synchronous data-flow languages
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
Modelling of Complex Systems: Systems as Dataflow Machines
Fundamenta Informaticae - Machines, Computations and Universality, Part II
Operational semantics of hybrid systems
HSCC'05 Proceedings of the 8th international conference on Hybrid Systems: computation and control
A framework for comparing models of computation
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Non-standard semantics of hybrid systems modelers
Journal of Computer and System Sciences
From hybrid data-flow languages to hybrid automata: a complete translation
Proceedings of the 15th ACM international conference on Hybrid Systems: Computation and Control
Hyperstream processing systems: nonstandard modeling of continuous-time signals
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Zélus: a synchronous language with ODEs
Proceedings of the 16th international conference on Hybrid systems: computation and control
Hi-index | 0.00 |
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.