|
When:
Wednesday, July 21, 3:30 p.m.- 5:00 p.m.
Where: 8220 Wean Hall
Michael Hicks
POP Seminar
Abstract: Dynamic software updates can be used to fix bugs or add features to a running program without downtime. Essential for some applications and convenient for others, low-level dynamic updating has been used for many years. Perhaps surprisingly, there is little high-level understanding or language support to help programmers write dynamic updates effectively.
To bridge this gap, we present Proteus, a core calculus for dynamic software updating in C-like languages that is flexible, safe, and predictable. Proteus supports dynamic updates to functions (even active ones), to types and to data, allowing on-line evolution to match source-code evolution as we have observed it in practice. All updates are provably type-safe and representation-consistent, meaning that only one version of a given type may exist in the program at any time. This simplifies reasoning and avoids unintuitive copy-based semantics. Finally, Proteus's novel and efficient static updatability analysis allows a programmer to automatically prove that an update is independent of the on-line program state, and thus guarantee that it will succeed at runtime. Proteus admits a straightforward implementation, and we sketch how it could be extended to more advanced language features including threads.
Joint work with Gareth Stoyle (Cambridge), Gavin Bierman (MSR Cambridge), Peter Sewell (Cambridge), and Lulian Neamtiu (University of Maryland, College Park).
Host: Karl Crary
Appointments: Margaret Weigand
<< Back
|