Linguistic Constructs for Object-Oriented Mobile Code Programming & their Implementations

Phd Thesis

Lorenzo Bettini

The growing use of the Internet as primary environment for developing, distributing and running applications has increased the need for robust and flexible techniques to design programs running over a global network.  This has shown the limitations of traditional software technologies and called for new programming languages with the right linguistic abstractions for dealing with global applications.  Object-oriented programming and mobile code technologies are good candidates as key ingredients of new programming abstractions specifically targeted to distributed applications.

In this thesis we present new linguistic constructs for developing global applications that exploit the concepts of object-oriented programming and mobile code, and the language X-Klaim that is based on these constructs.  X-Klaim is an experimental programming language for developing distributed applications relying on mobile agents and on object-oriented mixin-based mobile code.  The Java package Klava is also presented that implements the run-time system
for our language.

In particular we present the kernel languages Klaim (a language for modeling distributed applications and mobile code that interact through multiple distributed tuple spaces) and MoMi (a general framework for integrating object-oriented features into a coordination language for mobile code), on which X-Klaim is based, and all the design issues that brought to the extension of the original Klaim model and to the introduction of the calculus MoMi.  Then we describe the implementations of these linguistic constructs and the general programming techniques developed for these implementation issues.