μFuck
μ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:
<>???????<>><><><>