A register machine is an idealized computing machine consisting of a fixed set of data registers and a set of instructions for operating on them. Register machines are also known as counter machines and program machines. Early investigators included Shepherdson and Sturgis (1963) and Minsky (1961). Somewhat similar constructs were also part of Kurt Gödel's 1931 work on representing logic within arithmetic (Wolfram 2002, p. 896).
Wolfram (2002) considers machines with two registers and two operations: "increments" and "decrement-jumps." The above illustration shows 30 steps of a five-instruction program that generate nonrepetitive output (Wolfram 2002, p. 99).
Calude et al. (2002, p. 366) define a register machine with a canonical compressed encoding
in 7-bit characters. Counting halting programs of total
length
bits, including both program and
data and excluding run-time errors, gives the initial counts 1, 1, 3, 8, 50, 311,
1012, 4382, 19164, 99785, 515279, 2559837, ... starting at
(OEIS A400878; Calude
et al. 2002, p. 367). These counts depend on the particular machine and
encoding. Weighting each count by
and summing over
gives the associated halting
probability, a Chaitin's constant.