© 1979 by British Computer Society
On the safety of the IO primitive in Concurrent PASCAL*

Department of Mathematical Sciences, The University of Texas at Dallas Richardson, Texas, USA
In Concurrent PASCAL the peripheral device disc is viewed as an array of pages which can only be accessed via the standard procedure IO. On of the input parameters to the procedure is an index I to indicate which page in the array has to be accessed. The IO procedure can be invoked from any system module and the index I can be set arbitrarily by that module. Hence, one system module can jeopardise the integrity of a system written in this language.
This paper proposes an extension to Concurrent PASCAL to resolve this difficulty. In particular, we define a new concept scope which specifies the names of the program components which can declare an instance of a particular type. Given this concept and the program component manager, we devise a mechanism which will be shown to be consistent with the design goals of Concurrent PASCAL and which can be used to enforce processes to use the IO procedure with the index I set to only those pages which they have a legal right to access.
Received January 1978.
* An early version of this paper was presented in the IEEE Computer Software and Application Conference, Chicago 1977
This work was partially supported by the National Science Foundation under Grant No. MCS 7702463
¶ Department of Mathematical Sciences, The University of Texas at Dallas Richardson, Texas 75080, USA