JUCS - Journal of Universal Computer Science 2(11): 756-768, doi: 10.3217/jucs-002-11-0756
Conditional Branching is not Necessary for Universal Computation in von Neumann Computers
expand article infoRaul Rojas
‡ University of Halle, Department of Mathematics and Computer Science, Germany
Open Access
Abstract
In this paper we discuss the issue of the minimal instruction set necessary for universal computation. Our computing model is a machine consisting of a processor with a single n-bit register and a separate memory of n-bit words. We show that four simple instructions are sufficient in order to evaluate any computable function. Such reduction of the instruction set can only be achieved by exploiting the properties of self-modifying programs. Then we prove that, surprisingly, conditional branching can be substituted by unconditional branching. This is the main result of this paper. Therefore any computable function can be computed using only the instructions LOAD, STORE, INC and GOTO (unconditional branching). We also show that externally stored looping programs using indirect addressing and no branches are as powerful as conventional computer programs.