Hermes: An integrated language and system for distributed programming
Abstract
Hermes is an experimental language for implementing complex systems and distributed applications. It conceals low-level programming details, such as data representation, distribution, communications protocols, and operating system calls, while retaining expressiveness, checkability, and efficiency. Hermes supports multiple interacting applications and services within a single environment. Applications and services interact by making calls and passing typed parameters--exactly the same way modules interact within an application. The syntax and semantics of interaction are uniform, regardless of whether the interacting components are local or remote and whether they belong to the same user or to different users. The distinctive features of Hermes are (1) processes as the basic units of modularity and interaction, (2) ports as 'capabilities,' (3) a representation-independent 'pointerless' type system, and (4) compile-time checking which enforces protection on the granularity of a module. The concept of a multiapplication environment is discussed.