A language model for dynamic code updating
Pierre Duquesne, Ciarán Bryce · 2008
Dynamic software update is often achieved by relinking functions of an executing program. However, this approach can lead to unpredictable execution and undesirable behavior, even when type-safety is ensured. This paper presents a language model for single-threaded programs to address this issue. Programs still use functions, but the unit of update is the whole program. A new language construct called a stage is introduced that encapsulates any part of a program along with its execution. Stages are linked together via routes, and an update is effected by making the execution flow switch to the new program version by resetting routes.