In this paper we present the defininition, and implementation of a concurrent language mp (Message Passer), which is aimed at programming embedded multi micro-processor systems. The novel features of the language includes the ability to program and develop the entire distributed system as a single unit, and the provision of simple restricted concurrency constructs that make such systems modular and deadlock free. mp programs are invariant with respect to the characteristics of a particular target machine, for instance, the number of processors, and their mutual connectivity. Programs written in mp can be transformed to a restricted set of Communicating Sequential Processes (CSP), in which particular specifications can be shown to be satisfied. The restricted model of concurrency, does not prevent the language being able to express all of the known course grained parallel programming paradigms. However, the structured nature of the code makes the model particularly attractive in concurrent embedded systems, where deadlock freedom and program correctness are prime issues. An mp program is a collection of objects which execute concurrently, maintain their own local state and connect with other objects via bound variables. Explicit communication between objects is totally transparent to the application programmer. A compiler for the language has been built and a multiprocessor run time environment has been established for any system with a C compiler and the message passing standard MPI library. Several applications have been tested, ranging from a clocked digital circuit simulation, to a simple event driven process controller.
Read full abstract