In this paper we propose to support dynamic software updating through language semantic adaptation; this is done through use of micro-languages that confine the effect of the introduced change to specific application features.Micro-languages provide a logical layer over a programming language and associate an application feature with the portion of the programming language used to implement it.Hence, developers no longer have to go through the tedious cycle of serializing application state, halting execution, redeploy the binary, restarting, and de-serializing state before they can test the effect of a code change.
Dynamic software updating how do scientists use half lives in radiometric dating
First, Kitsune’s updating mechanism updates the whole program, not individual functions.
This mechanism is more flexible than most prior approaches and places no restrictions on data representations or allowed compiler optimizations.
Dynamic software updating (DSU) systems allow programs to be updated while running, thereby allowing developers to add features and fix bugs without downtime.
This paper introduces Kitsune, a new DSU system for C whose design has three notable features.
Second, Kitsune makes the important aspects of updating explicit in the program text, making its semantics easy to understand while keeping programmer work to a minimum.
Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by the new code; such state transformation is often necessary, and is significantly more difficult in prior DSU systems.
We then investigate the effects of dynamic updating by performing a dynamic updating experiment on five consecutive revisions of the classical arcade game Breakout using the dynamic updating system Gosh! Based on the result of this experiment we show that dynamic updating of class definitions for live objects may under some circumstances result in different run-time behavior than would be observed after a cold restart of the upgraded application.
Finally, we conclude by discussing the implication of integrating the dynamic updating model of Gosh! The successful integration of these two systems will set a new standard for dynamic software updating in Java.
We discuss our experience building and maintaining Flash Ed, and generalize to present observations about updateable software development.