Concurrent control with “readers” and “writers”
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
A Discipline of Programming
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Towards the construction of verifiable software systems
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
Process synchronization by counter variables
ACM SIGOPS Operating Systems Review
On the design and verification of operating systems.
On the design and verification of operating systems.
Specifying Ada Server Tasks with Executable Formal Grammars
IEEE Transactions on Software Engineering
Specifying and automatically generating Ada tasks in Prolog
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
Concurrency annotations for reusable software
Communications of the ACM
ACM Transactions on Programming Languages and Systems (TOPLAS)
The APOSTLE simulation language: granularity control and performance data
PADS '96 Proceedings of the tenth workshop on Parallel and distributed simulation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the 1986 ACM SIGSMALL/PC symposium on Small systems
Analyzing synchronization problems by using event histories as languages
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
Capsules: A Shared Memory Access Mechanism for Concurrent C/C++
IEEE Transactions on Parallel and Distributed Systems
ICSE '79 Proceedings of the 4th international conference on Software engineering
Practical applications of path pascal in systems programming
ACM '79 Proceedings of the 1979 annual conference
ACM SIGPLAN Notices
Structured Specification of Communicating Systems
IEEE Transactions on Computers
A programming environment for web services
Proceedings of the 2008 ACM symposium on Applied computing
Dependence graphs for verifications of web service compositions with PEWS
Proceedings of the 2008 ACM symposium on Applied computing
Generation of concurrency control code using discrete-event systems theory
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Concurrency control generation for dynamic threads using discrete-event systems
Allerton'09 Proceedings of the 47th annual Allerton conference on Communication, control, and computing
PEWS platform: a web services composition environment
Proceedings of the 6th International Workshop on Enhanced Web Service Technologies
Fundamenta Informaticae
Formal semantics and expressiveness of a web service composition language
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Concurrency control generation for dynamic threads using discrete-event systems
Science of Computer Programming
Hi-index | 0.02 |
Path expressions are a tool for synchronization of concurrent processes. They are an integral part of the data abstraction mechanism in a programming language, and specify synchronization entirely in terms of the allowable sequences of operations on an object of the abstract data type. This paper describes an attempt to push the path expression synchronization construct along three dimensions - specification, verification, and implementation - into a useful theoretical and practical tool. We define Predicate Path Expressions (PPEs), which allow for a more convenient specification of many synchronization problems. The predicate is a powerful extension to path expressions that increases their expressiveness. We formally define the semantics of PPEs by a transformation to a corresponding nondeterministic program, thus allowing the use of known verification techniques for nondeterministic programs to be used for proving properties of the PPE and the data abstraction of which it is a part. We also describe our existing implementation, in Algol 68, of a data abstraction mechanism that incorporates PPEs.