A description scheme to aid the design of collections of concurrent processes

data types have recently emerged as an important facility for the specification of sequential programs. Originally defined in the language SIMULA,l abstract data types were soon recognized as useful in structured programming. 2 Their recent refinement has taken three directions. First, they have been developed to support top-down design methods. 3 Second, they have been extended so as to provide a basis for formal verification. 4 Finally, they have been used as the basis for a tool to aid program developmentS which admits rigorous, but perhaps incomplete, analysis. 6 The variety of these uses indicates the breadth of the benefits which accrue from facilities for high-level, abstract description. While abstract data types are convenient for the description of a software system's data storage components, they are not convenient for the succinct description of those system components which are more for the processing than the storage of data. This is particularly true when the components operate concurrently. ** The major problem is that abstract data types are oriented towards describing components as structures of data which are operated upon via * This work was supported by a grant from Sycor, Inc. ** By concurrent we mean parallelism which may be actually achieved by executing the system in a multiprocessing environment or which may be only apparent at abstract levels of system description and never achieved during