Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Concurrent reading and writing
Communications of the ACM
A language for formal problem specification
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
A new solution of Dijkstra's concurrent programming problem
Communications of the ACM
ACM Computing Surveys (CSUR)
Describing and analyzing distributed software system designs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Axioms for memory access in asynchronous hardware systems
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
The mutual exclusion problem: part I—a theory of interprocess communication
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
On Lamport's interprocessor communication model
ACM Transactions on Programming Languages and Systems (TOPLAS)
win and sin: predicate transformers for concurrency
ACM Transactions on Programming Languages and Systems (TOPLAS)
How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor
IEEE Transactions on Computers
Parallel programs: proofs, principles, and practice
Communications of the ACM
Lamport on mutual exclusion: 27 years of planting seeds
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
On the temporal analysis of fairness
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
"Sometime" is sometimes "not never": on the temporal logic of programs
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
GEM: A tool for concurrency specification and verification
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Theoretical Computer Science
Shared-memory mutual exclusion: major research trends since 1986
Distributed Computing - Papers in celebration of the 20th anniversary of PODC
A framework for numeric analysis of array operations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specifying memory consistency of write buffer multiprocessors
ACM Transactions on Computer Systems (TOCS)
Structured Specification of Communicating Systems
IEEE Transactions on Computers
On specification of Read/Write shared variables
Journal of the ACM (JACM)
Formal Analysis of the Bakery Protocol with Consideration of Nonatomic Reads and Writes
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Race-free and memory-safe multithreading: design and implementation in cyclone
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
A type and effect system for deadlock avoidance in low-level languages
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
Logical classification of distributed algorithms (Bakery algorithms as an example)
Theoretical Computer Science
Context-bounded model checking of LTL properties for ANSI-C software
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
Static safety guarantees for a low-level multithreaded language with regions
Science of Computer Programming
Hi-index | 0.02 |
A new, nonassertional approach to proving multiprocess program correctness is described by proving the correctness of a new algorithm to solve the mutual exclusion problem. The algorithm is an improved version of the bakery algorithm. It is specified and proved correct without being decomposed into indivisible, atomic operations. This allows two different implementations for a conventional, nondistributed system. Moreover, the approach provides a sufficiently general specification of the algorithm to allow nontrivial implementations for a distributed system as well.