On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
Formal verification of parallel programs
Communications of the ACM
Reduction: a method of proving properties of parallel programs
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
Limitations of synchronization primitives with conditional branching and global variables
STOC '74 Proceedings of the sixth annual ACM symposium on Theory of computing
Proving structured programs correct, level by level
Proceedings of the international conference on Reliable software
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A class of synchronization systems that permit the use of large atomic blocks
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Exploiting purity for atomicity
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Exploiting Purity for Atomicity
IEEE Transactions on Software Engineering
Atomizer: A dynamic atomicity checker for multithreaded programs
Science of Computer Programming
Types for atomicity: Static checking and inference for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying Michael and Scott's lock-free queue algorithm using trace reduction
CATS '08 Proceedings of the fourteenth symposium on Computing: the Australasian theory - Volume 77
Effects for cooperable and serializable threads
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Hi-index | 0.00 |
We develop a theory for the correctness of asynchronous parallel programs. A program is considered correct if its behavior is in some sense similar to that of an abstract version of the program. We discuss various criteria for this similarity. We then concentrate on one of them and develop a technique for showing that a parallel program is correct with respect to this criterion.