Presentation at SYNCHRON'12

Reactivity analysis in ReactiveML

Cedric Pasteur, DI, Ecole normale Superieure

Joint work with Louis Mandel

Imperative synchronous languages, such as ReactiveML, are based on cooperative scheduling. It means that it is up to the programmer to cooperate with other processes when it is done for the current instant. Otherwise, the program may become non-reactive and never progress to the next instant. We present an improved reactivity analysis for the functional synchronous language ReactiveML. Our analysis warns the user about processes that may potentially be non-reactive. It is based on a type-and-effect system, that associates to each process a so-called behavior, that abstracts the reactive behavior of the process. Reactivity is then checked on this small language. It is implemented in the ReactiveML compiler available at http://rml.lri.fr. An interactive toplevel to test ReactiveML online is also available at http://rml.lri.fr/synchron12.

Slides