Flexible models for dynamic linking

  • Authors:
  • Sophia Drossopoulou;Giovanni Lagorio;Susan Eisenbach

  • Affiliations:
  • Department of Computing at Imperial College;DISI at the University of Genova;Department of Computing at Imperial College

  • Venue:
  • ESOP'03 Proceedings of the 12th European conference on Programming
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic linking supports flexible code deployment: partially linked code links further code on the fly, as needed; and thus, end-users receive updates automatically. On the down side, each program run may link different versions of the same code, possibly causing subtle errors which mystify end-users. Dynamic linking in Java and C# are similar: The same linking phases are involved, soundness is based on similar ideas, and executions which do not throw linking errors give the same result. They are, however, not identical: the linking phases are combined differently, and take place in a different order. We develop a non-deterministic model, which includes the behaviour of Java and C#. The non-determinism allows us to describe the design space, to distill the similarities between the two languages, and to use one proof of soundness for both.We also prove that all execution strategies are equivalent in the sense that all terminating executions which do not involve a link error, give the same result.