Guarded Command Language
選択(一般に、条件文とかif文と呼ばれる)はガード付きコマンドのリストであり、そのうちの1つの文が選択実行される。複数のガードが真である場合、実行する文はランダムまたは非決定的に選択される。どのガードも真でない場合、結果は未定義である。少なくとも1つのガードが真でなければならないので、空文の Skip を使うことが多い。
代入文は変数に値を代入する。
Skip と Abort は非常に単純だがガード付きコマンドと同様に重要な要素である。Abort は未定義命令であり、何もしない。Abort は完了することさえ保証されていない。プログラムが何らかの証明の定式化であるとすれば、Abort は証明の失敗に対応する。Skip は空の命令であり、何もしない。文法上、文が必要とされるが、プログラマが状態を変更したくない場合、プログラム内で使われる。
Perlの Commands::Guarded モジュールは、ダイクストラのガード付きコマンドを決定論的に修正したバージョンである。
全てのガードが真でない場合: Skip
G x {\displaystyle G_{x}} だけが真の場合: S x {\displaystyle S_{x}} を実行し、再度ガード群を評価する
G x 0 . . . G x m {\displaystyle G_{x_{0}}\ ...\ G_{x_{m}}} が真の場合: いずれかの S x y {\displaystyle S_{x_{y}}} (ただし、 0 ≤ y ≤ m {\displaystyle 0\leq y\leq m} )を実行し、再度ガード群を評価する