Summary: | This dissertation presents a type scheme called UTS. The goal of UTS is to support composition between autonomous systems and programs. Composition is defined to include procedure call and message passing; it also includes command invocation and the use of stored data. The design of UTS and the principles that guided that design are discussed. The UTS type system is intended as an easily-ported pidgin language. It includes the most common scalar types, such as integer, floating point, and string; the common type constructors such as record and array; and it supports a mechanism for reference to procedures. An innovation of the type scheme is that every value, including procedure values, is tagged with a type indicator, so that it is self-describing. In order to provide a high degree of portability, to provide access to a wide variety of systems, and to support dynamic binding, UTS requires a minimum of centralized knowledge and shared data definitions. It does provide a mechanism for underspecification of types that supports flexible commands and generic procedures. UTS was originally developed as the type system for the Saguaro distributed operating system. UTS is used in Saguaro for all stored data and for procedure invocation both at the system call level and the user interface level. UTS is also used as the type system for MLP, a system that provides heterogeneous remote procedure calls. MLP is designed to minimize the cost of adding new languages while providing the ability to handle common situations easily and automatically. More complex situations can be handled by making use of routines for programmer-controlled inspection and translation of UTS values. Two implementations of MLP are described, with the changes between the versions and the rationale for those changes. The run-time systems for the two versions are also described. The use of MLP is illustrated by projects built on an MLP platform. The largest of these is a prototype of the Saguaro command interpreter. Another is an interface between MLP and the Emerald programming language. The dissertation ends with a summary and discussion of possibilities for future research.
|