Very few programming languages provide direct support for programming distributed embedded systems. However, as such systems become more widespread, many languages, particularly concurrent languages like Ada and Modula, will be employed for this purpose. Restrictions should be placed on the use of these languages, so that processes executing on one machine do not have access to the memory space of processes executing on another. Furthermore, if the reuse of software modules is to become a reality, then it should be possible to implement components of a system in different languages.In this paper we present a language-independent specification of how the use of a common class of imperative programming languages can be restricted for a distributed environment. A simple formal model, in Z, of imperative programming languages is developed, and restrictions are specified. The model is then instantiated for the languages Ada, Modula and C. It gives good results for Ada and Modula, but cannot be elegantly applied to C because the language lacks both a module and process facility. A distributed Ada programming environment based on the model is described briefly.
展开▼