Abstract Dynamic Rebinding for Distributed Programming.pdf
文本预览下载声明
Dynamic Rebinding for Distributed Programming
Gavin Bierman† Michael Hicks‡ Peter Sewell†∗ Gareth Stoyle† Keith Wansbrough†
†University of Cambridge ‡Cornell University
{First.Last}@cl.cam.ac.uk mhicks@
Abstract known advantages. Modern software, though, is becoming
Most programming languages adopt static binding, but for increasingly dynamic, as it becomes ever more modular, ex-
distributed programming an exclusive reliance on static bind- tensible, and distributed. Exclusive use of static binding is
ing is too restrictive: dynamic binding is required in various too limiting in many ways.
guises. Typically it is provided only by ad-hoc mechanisms Simple uses of dynamic binding are ubiquitous, of course.
that lack clean semantics. Conventional executables will, when run, load so-called shared
In this paper we adopt a more foundational approach, libraries to resolve standard library functions (e.g. read,
showing how core dynamic rebinding mechanisms can be write, etc.). Which libraries are loaded depends upon the
added to a CBV λ-calculus. To do so we first develop two context; for example, a machine might have a library com-
refinements of the CBV reduction strategy with delayed in- piled with profiling enabled and one without. Dynamically
stantiation, the redex-time and destruct-time semantics. De- loading and resolving program code, whether shared libraries
layed instantiation ensures we obtain the most recent ver- or otherwise, is achieved via dynamic linking. Modern lan-
sion o
显示全部