Dynamic Linking for Mobile Programs
Anurag Acharya
Joel Saltz
To appear in Mobile Object Systems, J. Vitek and
C. Tschudin (eds), Springer Verlag Lecture Notes in Computer
Science.
Abstract:
Dynamic linking provides functionality that is necessary for secure
flexible use of mobile programs but it introduces a new class of
runtime errors - unbound procedure names. In this chapter, we present a
compiler-directed technique for safe dynamic linking for mobile
programs. Our technique guarantees that linking failures can occur
only when a program arrives at a new execution site and that this
failure can be delivered to the program as an error code or an
exception. We use interprocedural analysis to identify the set of
names that must be linked at the different sites the program executes
on. We use a combination of runtime and compile-time techniques to
identify the calling context and to link only the names needed in that
context. Our technique is able to handle recursive programs as well as
separately compiled code that may itself be able to move. We discuss
language constructs for controlling the behavior of dynamic linking
and the implication of some of these constructs for application
structure.
Postscript
(compressed 81K)
A previous version is available as
CS-TR-3711.