In order to execute a program on a remote computer it must first be tr
ansferred over a network. This transmission incurs the overhead of net
work latency before execution can begin. This latency can vary greatly
depending upon the size of the program, where it is located (e.g., on
a local network or across the Internet), and the bandwidth available
to retrieve the program. Existing technologies, like Java, require tha
t a file be fully transferred before it can start executing. For large
files and low bandwidth lines, this delay can be significant. In this
paper we propose and evaluate a non-strict form of mobile program exe
cution. A mobile program is any program that is transferred to a diffe
rent machine and executed The goal of non-strict execution is to overl
ap execution with transfer allowing the program to start executing as
soon as possible. Non-strict execution allows a procedure in the progr
am to start executing as soon as its code and data have transferred To
enable this technology, we examine several techniques for rearranging
procedures and reorganizing the data inside Java class files, Our res
ults show that nonstrict execution decreases the initial transfer dela
y between 31% and 56% on average, with an average reduction in overall
execution time between 25% and 40%.