@conference {14682,
	title = {Dynamic rebinding for marshalling and update, with destruct-time ?},
	booktitle = {Proceedings of the eighth ACM SIGPLAN international conference on Functional programming},
	series = {ICFP {\textquoteright}03},
	year = {2003},
	month = {2003///},
	pages = {99 - 110},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	abstract = {Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises, for example when a marshalled value is received from the network, containing identifiers that must be rebound to local resources. Typically it is provided only by ad-hoc mechanisms that lack clean semantics.In this paper we adopt a foundational approach, developing core dynamic rebinding mechanisms as extensions to simply-typed call-by-value ? -calculus. To do so we must first explore refinements of the call-by-value reduction strategy that delay instantiation, to ensure computations make use of the most recent versions of rebound definitions. We introduce redex-time and destruct-time strategies. The latter forms the basis for a ?marsh calculus that supports dynamic rebinding of marshalled values, while remaining as far as possible statically-typed. We sketch an extension of ? marsh with concurrency and communication, giving examples showing how wrappers for encapsulating untrusted code can be expressed. Finally, we show that a high-level semantics for dynamic updating can also be based on the destruct-time strategy, defining a ?marsh calculus with simple primitives to provide type-safe updating of running code. We thereby establish primitives and a common semantic foundation for a variety of real-world dynamic rebinding requirements.},
	keywords = {distributed programming, dynamic binding, dynamic update, lambda calculus, marshalling, programming languages, serialisation},
	isbn = {1-58113-756-7},
	doi = {10.1145/944705.944715},
	url = {http://doi.acm.org/10.1145/944705.944715},
	author = {Bierman,Gavin and Hicks, Michael W. and Sewell,Peter and Stoyle,Gareth and Wansbrough,Keith}
}
