Smallfuck

Smallfuck is an esoteric programming language invented by Nikita Ayzikovsky around March 2002 for the purpose of compiling it to SMETANA. It is a sized-down version of Brainfuck that operates only on bits, has limited data storage, and does not define input or output.

Command set
The Smallfuck command set is that of Brainfuck with two alterations:  and   are omitted, and   and   are replaced by   (because, when applied to bits,   and   would do the same thing anyway.)  The command set is summarized as follows:

> Move pointer right < Move pointer left * Flip current cell [ Jump past matching ] if cell under pointer is 0 ] Jump back to matching [

If a program attempts to move the memory pointer to the left of the first cell, or to the right of the (implementation-defined) last cell, it terminates normally.

Because input and output are not defined, it is generally assumed that input is encoded in the initial state of the data storage, and that output must be decoded from the final state of the data storage.

Computational class
If we were to grant Smallfuck an unbounded tape, we could show it to be Turing-complete by a trivial reduction from Boolfuck. All that is missing are I/O commands, which are not required for Turing-completeness.

However, while the number of bits in Smallfuck's data store capacity is completely left up to each implementation, the number is defined to be finite. Thus, Smallfuck is in the computational class of bounded-storage machines with bounded input.

External resources

 * is a Smallfuck-to-lookup-table compiler.