Access-Right Expressions
- 1 January 1983
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 5 (1) , 78-96
- https://doi.org/10.1145/357195.357201
Abstract
Data types, and in particular those that are designed to provide resources for use by concurrently executable programs, are often designed to be used only in certain ways. The intended constraints on use of an instance of such a type can be expressed in two principal ways: as assertions on the domain of values input to each operator, and as constraints on the sequences in which the operators of the type can be called by a customer process. These constraints must be enforced in the environment in which an instance of the type is used. Nevertheless, they are very much a part of the type specification, for its definition is not complete, nor can the consistency of its representation be proved, without them. A notation is provided in which to express sequential constraints, which are here called access- right expressions. It is suggested that these expressions should be declared in a programming language that supports the definition of monitors or resource managers. Implications for the proof rules of monitors are discussed, and suggestions are made for a programming language implementation. Categories and Subject Descriptors: D.3.3 (Programm|ng Languages): Language Constructs-- abstract data types; concurrent programming structures; D.4.5 (Operating Systems): Reliability-- verification; D.4.6 (Operating Systems): Security and Protection--access controlsKeywords
This publication has 11 references indexed in Scilit:
- The specification of process synchronization by path expressionsPublished by Springer Nature ,2005
- Software Specification Languages Based on Regular ExpressionsPublished by Springer Nature ,1980
- Pascal‐plus—another language for modular multiprogrammingSoftware: Practice and Experience, 1979
- Capability ManagersIEEE Transactions on Software Engineering, 1978
- Software Descriptions with Flow ExpressionsIEEE Transactions on Software Engineering, 1978
- Towards the construction of verifiable software systemsPublished by Association for Computing Machinery (ACM) ,1976
- The programming language Concurrent PascalIEEE Transactions on Software Engineering, 1975
- MonitorsCommunications of the ACM, 1974
- A technique for software module specification with examplesCommunications of the ACM, 1972
- Proof of correctness of data representationsActa Informatica, 1972