Fairness in parallel programs: the transformational approach
- 1 July 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 10 (3) , 420-455
- https://doi.org/10.1145/44501.44504
Abstract
Program transformations are proposed as a means of providing fair parallelism semantics for parallel programs with shared variables. The transformations are developed in two steps. First, abstract schedulers that implement the various fairness policies are introduced. These schedulers use random assignments z := ? to represent the unbounded nondeterminism induced by fairness. Concrete schedulers are derived by suitably refining the ?. The transformations are then obtained by embedding the abstract schedulers into the parallel programs. This embedding is proved correct on the basis of a simple transition semantics. Since the parallel structure of the original program is preserved, the transformations also provide a basis for syntax-directed proofs of total correctness under the fairness assumption. These proofs make use of infinite ordinals.Keywords
This publication has 14 references indexed in Scilit:
- Countable nondeterminism and random assignmentJournal of the ACM, 1986
- Fair termination revisited—with delayTheoretical Computer Science, 1984
- Storage requirements for fair schedulingInformation Processing Letters, 1983
- Proof rules and transformations dealing with fairnessScience of Computer Programming, 1983
- A Weaker Precondition for LoopsACM Transactions on Programming Languages and Systems, 1982
- The Total Correctness of Parallel ProgramsSIAM Journal on Computing, 1981
- The Science of ProgrammingPublished by Springer Nature ,1981
- Transformational semantics for concurrent programsInformation Processing Letters, 1980
- Proving the Correctness of Multiprocess ProgramsIEEE Transactions on Software Engineering, 1977
- A new solution of Dijkstra's concurrent programming problemCommunications of the ACM, 1974