MiniBitMove

From Esolang
Jump to navigation Jump to search

MiniBitMove is an language with only two-commands. It takes two inputs, the code and the data tape. Both consist of ones and zeros.

Commands

Each character is one command.

Command Effect
1 Flip the bit at the current cell
0 Move the tape head to the next cell

The program only stops when the tape head reaches the end of the data tape, looping continuously until it does so. This means that if a program has no zeros, it is an infinite loop.

Examples

Flips all the bits in the tape:

Code: 10
Data: 11111
Result: 00000

Infinite loop:

Code: 1
Data: 111
Result: Program never ends

Computational class

MiniBitMove can't be a linear bounded automaton because it wouldn't be Turing-complete if it had an infinite tape. One reason is because it can't access values from before once it moves right, which sounds like a finite state machine at first. However, it can't do conditional jumps, which implies that it is less powerful than even a finite state machine.

External resources