μFuck

From Esolang
Jump to navigation Jump to search

μFuck or MuFuck (μF or MuF) was conceived and written by Nathan Fugleberg in March of 2014. MuFuck is an esoteric programing language inspired by Urban Muller's Brainfuck. It was made in an attempt to create to shortest possible Turing tarpit. It falls short of that though, being bested by Iota and Jot. It uses an infinite (bounded by RAM) array of bits that can be manipulated by the three commands (>, <, and ?).

Commands

There are only three commands in μFuck. The manipulate a tape of bits, just as in Brainfuck and Smallfuck.

μFuck Smallfuck Meaning
> >* Advance tape one cell and flip the bit.
< < Rewind tape one cell.
? [ If current cell is equal to 1, run the following commands, if not, skip those commands.

The ? is a special case when translating to Smallfuck, as μF does not have a ] or a similar command. Instead, loops are determined by the number of ?'s before the commands to be looped.

The μF commands:

??<>

would translate in to the Smallfuck commands:

[*]

The number of ? 's specifies how many of the next commands to loop over. When the instruction pointer gets to the end of that set of instructions, it loops back to the ?. If the bit at the current cell is 0, the instruction pointer will skip the number of commands specified by the?'s.

More loop examples:

In µFuck:

???><>

in Smallfuck:

[>]


In µFuck:

?<

in Smallfuck:

[<]

Turing complete

μFuck is thought to be Turing-complete by reduction of Smallfuck with unbounded tape. Smallfuck is Turing-complete by reduction of Brainfuck.

Examples

Finds next 0:

???><>

Finds next 1:

<>???????<>><><><>