Mutatis mutandis safe and predictable dynamic software updating
These compilers preserve the semantics of the original program, but instrument either the source code or object code to produce a dynamically updateable program.Researchers compare DSU-capable variants of programs to the original program to assess safety and performance overhead.Dynamic code evolution is a technique to update a program while it is running.In an object-oriented language such as Java, this can be seen as replacing a set of classes by new versions.Our approach focuses on increasing developer productivity during debugging, but can also be applied for updating of long-running applications.Changes can be applied at any point at which a Java program can be suspended.In particular, we prove safety and liveness properties for well-typed programs by identifying suitable restrictions on the runtime points at which dynamic updates may occur. This includes the possibility of updating several threads without requiring global thread synchronisation. (2012) Dynamic Software Update for Message Passing Programs.
In this paper we provide a Global Session Type analysis for queued channel message passing programs whose code may be updated during runtime (Dynamic Software Update). Current operating systems and programming languages are typically not designed with DSU in mind.As such, DSU implementations commonly either utilize existing tools, or implement specialty compilers.In computer science, dynamic software updating (DSU) is a field of research pertaining to upgrading programs while they are running. However, researchers have developed a wide variety of systems and techniques for implementing DSU.These systems are commonly tested on real-world programs.
(eds) Formal Methods for Open Object-Based Distributed Systems.