Christopher Schuster (University of California, Santa Cruz)

Live Programming for Event-Based Languages

Christopher Schuster, Cormac Flanagan

Proceedings of the 2015 Reactive and Event-based Languages and Systems Workshop (REBLS '15). October 2015. Pittsburgh, PA.

Live programming environments assist programmers by allowing code edits to running programs, providing continuous feedback and potentially even traveling back in time to past execution states. Event-based languages like JavaScript facilitate these features, but the entanglement of code, state and output still hinders live programming. This paper shows how hot swapping, time travel and continuous feedback can be achieved by restricting standard JavaScript programs to have a single, pure rendering function and no function values in the global state. Furthermore, we describe this design for general event-based languages and how these properties can be enforced statically or dynamically.