Remote procedure calls are usually compiled into code that handles the packaging and unpackaging of arguments, the network interface, and status and error handling. The resulting piece of code is called a stub. This paper describes the design of a stub generator for an environment in which the languages for which RPC is provided and also the machines on which they execute may differ. The principal differences are things like available types, representation, language syntax, and argument semantics. The design is elegant, and a number of interesting problems and their solutions are described.
Remote procedure calls are described as an alternative to message passing that is more natural for procedurally trained programmers, a claim that some of us regard with skepticism. However, this paper makes a real contribution to the technology of RPCs, and some of the ideas have wider application as well.