Concurrent Programming Concepts
ACM Computing Surveys (CSUR)
An exercise in proving parallel programs correct
Communications of the ACM
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Correctness in operating systems
Correctness in operating systems
Axiomatic proof techniques for parallel programs.
Axiomatic proof techniques for parallel programs.
Complementary definition of programming language semantics.
Complementary definition of programming language semantics.
Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems
Journal of the ACM (JACM)
Formal Justification of a Proof System for Communicating Sequential Processes
Journal of the ACM (JACM)
A Proof System for Communicating Sequential Processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving the correctness of coroutines without history variables
ACM-SE 16 Proceedings of the 16th annual Southeast regional conference
Complexity of expressions allowing concurrency
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Applications of high level control flow
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Completeness of the Owicki-Gries System for Parameterized Parallel Programs
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Can message buffers be characterized in linear temporal logic?
PODC '82 Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing
A shared-variable concurrency analysis of multi-threaded object-oriented programs
Theoretical Computer Science
A sound and complete shared-variable concurrency model for multi-threaded Java programs
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Efficient methods for formally verifying safety properties of hierarchical cache coherence protocols
Formal Methods in System Design
Reasoning about recursive processes in shared-variable concurrency
Concurrency, Compositionality, and Correctness
Formal verification of distributed algorithms: from pseudo code to checked proofs
TCS'12 Proceedings of the 7th IFIP TC 1/WG 202 international conference on Theoretical Computer Science
Hi-index | 0.00 |
The semantics of a simple parallel programming language is presented in two ways: deductively, by a set of Hoare-like axioms and inference rules, and operationally, by means of an interpreter. It is shown that the deductive system is consistent with the interpreter. It would be desirable to show that the deductive system is also complete with respect to the interpreter, but this is impossible since the programming language contains the natural numbers. Instead it is proved that the deductive system is complete relative to a complete proof system for the natural numbers; this result is similar to Cook's relative completeness for sequential programs. The deductive semantics given here is an extension of an incomplete deductive system proposed by Hoare. The key difference is an additional inference rule which provides for the introduction of auxiliary variables in a program to be verified.