Alex Buckley and Sophia Drossopoulou

Flexible dynamic linking

In ECOOP Workshop on Formal Techniques for Java Programs (FTfJP 2004), Oslo, Norway, June 2004


Dynamic linking, as in Java and C#, allows users to execute the most recent versions of software without re-compilation or re-linking. Dynamic linking is guided by type names stored in the bytecode.

In current dynamic linking schemes, these type names are hard-coded into the bytecode. Thus, the bytecode reflects the compilation environment that produced it. However, the compilation environment need not be the same as the execution environment: a class may be replaced by one that offers the same services but has a different name. Such changes are not supported by current linking schemes.

We suggest a more flexible approach to dynamic linking, where bytecode contains type variables rather than types, and where these type variables are substituted during execution. We develop a non-deterministic system that allows type variable substitution at many different points, and sketch a proof of soundness.


[ bib | .html | .pdf ]

Back


This file has been generated by bibtex2html 1.43