Title
A flexible model for dynamic linking in Java and C#
Abstract
Dynamic linking supports flexible code deployment, allowing partially linked code to link further code on the fly, as needed. Thus, end-users enjoy the advantage of automatically receiving any updates, without any need for any explicit actions on their side, such as re-compilation, or re-linking. On the down side, two executions of a program may link in different versions of code, which in some cases causes subtle errors, and may 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 different order. Consequently, linking errors may be detected at different times by Java and C# runtime systems. We develop a non-deterministic model, which describes the behaviour of both Java and C# program executions. 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 with respect to terminating executions that do not throw link errors: they give the same results.
Year
DOI
Venue
2006
10.1016/j.tcs.2006.02.021
Theor. Comput. Sci.
Keywords
DocType
Volume
link error,code deployment,design space,execution strategy,similar idea,different order,explicit action,program execution,flexible model,different time,dynamic linking,different version,supports flexible code deployment
Journal
368
Issue
ISSN
Citations 
1-2
Theoretical Computer Science
2
PageRank 
References 
Authors
0.39
25
3
Name
Order
Citations
PageRank
Sophia Drossopoulou1101690.55
Giovanni Lagorio221217.98
Susan Eisenbach3898114.68