AbstractWe consider the problem of simplifying the control structure of programs that manipulate numbers. In particular, we examine some simple programming language constructs which have sufficient computational power to eliminate all or most branching instructions (e.g. ‘while’, ‘if-then-else’ and ‘goto’ constructs) from such programs. We show that the operation of integer division by 2 is of considerable importance in this context. We also show that integer division by 2 cannot be computed by any loop-free program over the set of rational instructions, and hence that the power of integer division by 2 is, in a sense, greater than that of the conditional and unconditional branching instructions. We also investigate the power of indirect ad...