Interactive Programming of Reactive Systems

ReactiveML is a synchronous reactive extension of the general purpose programming language OCaml. It allows 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 accepted in the toplevel with the same semantics as in the compiler. This allows to use the ReactiveML toplevel as a debugger. Furthermore, the interpreted code is as efficient as if it was compiled. Moreover, a toplevel interpreter being itself a reactive system, another originality of rmltop is its own implementation in ReactiveML which makes it relatively light.

[1]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[2]  Marc Pouzet,et al.  ReactiveML: a reactive extension to ML , 2005, PPDP.

[3]  Andrew P. Black,et al.  Reactive objects , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[4]  Frédéric Boussinot,et al.  Reactive C: An extension of C to program reactive systems , 1991, Softw. Pract. Exp..

[5]  Xavier Leroy The objective caml system release 3 , 2001 .

[6]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[7]  Frédéric Boussinot,et al.  Reactive scripts , 1996, Proceedings of 3rd International Workshop on Real-Time Computing Systems and Applications.

[8]  Marc Pouzet,et al.  ReactiveML, un langage fonctionnel pour la programmation réactive , 2008, Tech. Sci. Informatiques.

[9]  Manuel Serrano,et al.  Scheme fair threads , 2004, PPDP '04.

[10]  Frédéric Boussinot,et al.  The SugarCubes tool box: a reactive Java framework , 1998 .

[11]  Robert de Simone,et al.  The SL Synchronous Language , 1996, IEEE Trans. Software Eng..

[12]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[13]  J.-B. Stefani,et al.  Reactive objects : Génie et technologie logiciels pour les services et réseaux de télécommunication , 1996 .

[14]  Gérard Boudol,et al.  ULM: A Core Programming Model for Global Computing: (Extended Abstract) , 2004, ESOP.

[15]  Frédéric Boussinot,et al.  A reactive behavior framework for dynamic virtual worlds , 2001, Web3D '01.

[16]  Christian Brunette,et al.  Construction et simulation graphiques de comportements : le modèle des Icobjs , 2004 .