ReactiveML is an extension of a general purpose language a la ML with parallel and synchronization primitives to develop reactive applications. It is based on the reactive model introduced by Boussinot in the 90s, that retains the key principles of synchronous languages --- at the programming level, time is discrete and global to all the processes whose parallel composition behave deterministically --- but relaxes it to allow for the dynamic creation of processes. Therefore, it keeps the expressiveness and deterministic guarantees of synchronous languages like Esterel but removes its real-time constraints. ReactiveML allows to program applications as diverse as network simulators, mixed-music, chatbots, or a chess eye .
In this tutorial, we will present the main concepts underlying the language and have a hands-on session where the participants see both how to program in ReactiveML and how to program ReactiveML.Resources:
- slides about ReactiveML and comparison with other programming models
- Darwin sieve
- implement your ReactiveML runtime
ReactiveML main page