Mutatis Mutandis: Safe and predictable dynamic software updating

Gareth Stoyle, Michael Hicks, Gavin Bierman, Peter Sewell, Iulian Neamtiu

Research output: Contribution to journalArticlepeer-review

65 Scopus citations


This article presents Proteus, a core calculus that models dynamic software updating, a service for fixing bugs and adding features to a running program. Proteus permits a program's type structure to change dynamically but guarantees the updated program remains type-correct by ensuring a property we call con-freeness. We show how con-freeness can be enforced dynamically, and how it can be approximated via a novel static analysis. This analysis can be used to assess the implications of a program's structure on future updates in order to make update success more predictable. We have implemented Proteus for C, and briefly discuss our implementation which we have tested on several well-known programs.

Original languageEnglish (US)
Article number1255455
JournalACM Transactions on Programming Languages and Systems
Issue number4
StatePublished - Aug 1 2007
Externally publishedYes

All Science Journal Classification (ASJC) codes

  • Software


  • Capability
  • Dynamic software updating
  • Proteus
  • Type inference
  • Updateability analysis


Dive into the research topics of 'Mutatis Mutandis: Safe and predictable dynamic software updating'. Together they form a unique fingerprint.

Cite this