Compiler

Zélus is a synchronous language extended with Ordinary Differential Equations (ODEs) to model systems with complex interaction between discrete-time and continuous-time dynamics. It shares the basic principles of Lustre with features from Lucid Synchrone (type inference, hierarchical automata, and signals). The compiler is written in OCaml and is structured as a series of source-to-source and traceable transformations that ultimately yield statically scheduled sequential code. Continuous components are simulated using off-the-shelf numerical solvers (here Sundials CVODE) and, for the moment, two built-in solvers (ode23 and ode45).

Get the compiler » Read the manual »

Research

Zélus is used to experiment with new techniques for building hybrid modelers like Simulink/Stateflow and Modelica on top of a synchronous language. The language exploits novel techniques for defining the semantics of hybrid modelers, it provides dedicated type systems to ensure the absence of discontinuities during integration and the generation of sequential code. In particular, all discrete computations must be aligned to zero-crossing events; programs with causality loops and uninitialized values are statically rejected.

View publications »

Examples

The compiler distribution includes runnable examples demonstrating different aspects of the language. The source code for several of the examples can be viewed online.

View examples »

People

Zélus is developed within the PARKAS Team which is a research group supported by the ENS, Inria, and the Université Pierre et Marie Curie.

See people »

The original street image is copyright 2013, Google. The original clouds image is by NASA Godard Photo and Video. The icons are from Glyphicons.