Software systems are imperfect, so software updates are a fact of life. While typical software updates require stopping and restarting the program in question, many systems cannot afford to halt service, or would prefer not to.  Dynamic software updating (DSU) addresses this difficulty by permitting programs to be updated while they run.  DSU is appealing compared to other approaches for on-line upgrades because it is quite general and requires no redundant hardware.  The challenge is in making DSU flexible, and yet safe and easy to use.  In this project we are exploring this tension through theoretical programming language development, and practical implementation experience.


Jeff Foster (University of Maryland)
Nate Foster (Cornell University)
Chris Hayden (University of Maryland)
Michael Hicks (University of Maryland)
Stephen Magill (University of Maryland)
Iulian Neamtiu (University of California, Riverside)
Edward K. Smith (University of Maryland)
Gavin Bierman (Microsoft Research Cambridge)
Eric Hardisty (University of Maryland)
Manuel Oriol (ETH Zurich)
Peter Sewell (University of Cambridge)
Gareth Stoyle (Cambridge)


This material is based upon work supported in part by the National Science Foundation under Grant No. CNS-0346989, CAREER: Programming Languages for Reliable and Secure Low-level Systems. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF). This research was also supported in part by the partnership between UMIACS and the Laboratory for Telecommunication Sciences (LTS).