6. Dynamic software updates

Dynamic software update (DSU) is the technique of updating a program during its execution, which is useful for updating reactive and long-running programs. It is applied as follows: When an update U is to be applied to a program P while it is executing statement S, a check is made to determine whether the program would continue to produce meaningful results even after applying the update. This is the notion of update safety of a dynamic update. The update U is not applied at statement S if update safety cannot be assured.

The notions of update safety of DSU reported in literature are either highly restrictive because many kinds of desirable updates violate the notion of safety, or incur heavy overhead in determining whether an update is safe. We develop a more practical notion of update safety that is both less restrictive and less expensive to apply in practice.