Programming with Transition Diagrams

In situations where the avoidance of goto statements would be inhibiting, programs can be methodically constructed by using transition diagrams. The key requirement is that the relevant assertions must be simple enough to permit exhaustive reasoning. The method is illustrated by programs for fast exponentiation, merging, and path-finding in a directed graph.