
Esterel – Synchronous programming language for complex, reactive systems - capableweb
https://en.wikipedia.org/wiki/Esterel
======
sitkack
Reminds me of [http://lambda-the-ultimate.org/node/5087](http://lambda-the-
ultimate.org/node/5087)

> Zélus [1] is a new programming language for modeling systems that mix
> discrete logical time and continuous time behaviors. From a user's
> perspective, its main originality is to extend an existing Lustre-like
> synchronous language with Ordinary Differential Equations (ODEs). The
> extension is conservative: any synchronous program expressed as data-flow
> equations and hierarchical automata can be composed arbitrarily with ODEs in
> the same source code.

> Synchronous programming languages (à la Lucid Synchrone [2]) are language
> designs for reactive systems with discrete time. Zélus extends them
> gracefully to hybrid discrete/continuous systems, to interact with the
> physical world, or simulate it -- while preserving their strong semantic
> qualities.

[1]
[https://www.di.ens.fr/~pouzet/bib/hscc13.pdf](https://www.di.ens.fr/~pouzet/bib/hscc13.pdf)

[2] [https://www.di.ens.fr/~pouzet/lucid-
synchrone/](https://www.di.ens.fr/~pouzet/lucid-synchrone/)

------
dang
Related from 2015:
[https://news.ycombinator.com/item?id=9350972](https://news.ycombinator.com/item?id=9350972)

------
pull_my_finger
A similar project is Ceu[1], which is made at LabLua.

[1] - [http://www.ceu-lang.org/](http://www.ceu-lang.org/)

------
gazarullz
out of curiosity, how does reactive work with synchronicity, shouldn't it be
going hand in hand with async?

~~~
capableweb
My guess is that Esterel is using the word "synchronicity" for what we know as
"reactive" today. Not to be confused with the "sync/async" we normally refer
to blocking/non-blocking today. I could misunderstanding this though. See
[https://en.wikipedia.org/wiki/Synchronous_programming_langua...](https://en.wikipedia.org/wiki/Synchronous_programming_language)

