@conference {14710,
	title = {Mutatis mutandis: safe and predictable dynamic software updating},
	booktitle = {Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages},
	series = {POPL {\textquoteright}05},
	year = {2005},
	month = {2005///},
	pages = {183 - 194},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	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 named types and to data, allowing on-line evolution to match source-code evolution as we have observed it in practice. We ensure updates are type-safe by checking for a property we call "con-freeness" for updated types t at the point of update. This means that non-updated code will not use t concretely beyond that point (concrete usages are via explicit coercions) and thus t{\textquoteright}s representation can safely change. We show how con-freeness can be enforced dynamically for a particular program state. We additionally define a novel and efficient static updateability analysis to establish con-freeness statically, and can thus automatically infer program points at which all future (well-formed) updates will be type-safe. We have implemented our analysis for C and tested it on several well-known programs.},
	keywords = {capability, dynamic software updating, proteus, Type inference, updateability analysis},
	isbn = {1-58113-830-X},
	doi = {10.1145/1040305.1040321},
	url = {http://doi.acm.org/10.1145/1040305.1040321},
	author = {Stoyle,Gareth and Hicks, Michael W. and Bierman,Gavin and Sewell,Peter and Neamtiu,Iulian}
}
