Guarded commands, nondeterminacy and formal derivation of programs

  title={Guarded commands, nondeterminacy and formal derivation of programs},
  author={Edsger W. Dijkstra},
  journal={Communications of the ACM},
  pages={453 - 457}
  • E. Dijkstra
  • Published 1 August 1975
  • Computer Science
  • Communications of the ACM
So-called “guarded commands” are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possibly even the final state, is not necessarily uniquely determined by the initial state. For the formal derivation of programs expressed in terms of these constructs, a calculus will be be shown. 
Implementations of Nondeterministic Programs
This paper treats the problem of suppressing the non-determinism of a given program, within the framework of the relational semantics of non-Deterministic programs, and provides the justification of the validity of some usual techniques which are based on an intuitive understanding of the concept.
Output Guards and Nondeterminism in “Communicating Sequential Processes”
This paper points out two problems that arise in connection with guarded commands and nondeterminism in a language for concurrent programming and addresses one of them.
Semantics of Nondeterministic and Noncontinuous Constructs
The semantics of the nondeterministic and noncontinuous constructs of the descriptive and applicative parts of the wide spectrum language CIP-L is given by defining both, a "breadth-function",
Proving Total Correctness of Programs in Weak Second-Order Logic
Weak second-order logic is used to formalize the weakest precondition for an imperative programming language similar to Dijkstra's language of guarded commands and a new normal form representation for wp plays an important role.
Nondeterminism and Guarded Commands
By discussing the relevance and impact of his guarded commands language proposal, Alan Turing is reminded of the role of nondeterminism in computer science at the time his original article [Dijkstra 1975] appeared.
Logical reversibility
A technique is developed that transforms any program in the probabilistic Guarded Command Language (pGCL) into an equivalent but reversible program and the expectation-transformer semantics for pGCL is used to prove the result.
An Exercise in Transformational Programming: Backtracking and Branch-and-Bound
Semantic Models for Total Correctness and Fairness
On the Total Correctness of Nondeterministic Programs
  • D. Harel
  • Computer Science
    Theor. Comput. Sci.
  • 1981
Analysis of infinite loops using S-formulas
This paper considers formulas of the firstorder predicate logic defined on the abstract state space (briefly S-formulas) that describe three possible behavioral patterns for the WHILE loop: it does


An axiomatic basis for computer programming
An attempt is made to explore the logical foundations of computer programming by use of techniques which were first applied in the study of geometry and have later been extended to other branches of mathematics by elucidation of sets of axioms and rules of inference.
Report on the algorithmic language ALGOL 60
It was decided to hold an international meeting in January 1960 for improving the ALGOL language and preparing a final report, and seven representatives were selected to attend the January 1960 international conference.