Interactive Programming of Reactive Systems

Louis Mandel and Florence Plateau

The language ReactiveML is an extension of the general purpose programming language OCaml with synchronous reactive constructs. It is dedicated to program reactive systems such as video games or simulators. This paper presents rmltop, the ReactiveML counterpart of the OCaml toplevel. This toplevel allows a programmer to interactively write ReactiveML programs which are type-checked, compiled and loaded on the fly. The user can then progressively run concurrent processes and observe the interactions between them.
The main strength of rmltop is that all valid ReactiveML expressions are executed in the toplevel with the same semantics and efficiency as in the compiler. This allows to use the ReactiveML toplevel for design and debugging purposes. To illustrate the usefulness of this tool, we present some experiments on dynamic reconfiguration, done with the help of the toplevel. We finally describe an originality of rmltop: being itself a reactive system, it has been implemented in ReactiveML.