We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Unicodefuck

From Esolang
Jump to navigation Jump to search
This esolang is a brainfuck derivative.
Not to be confused with Unifuck, another brainfuck derivative focused around Unicode.

Unicodefuck is a brainfuck derivative created by User:DigitalDetective47. It is identical to Binaryfuck, except that the program must also be a valid UTF-8 string; each code point within this string must be a valid Unicode character. The language will become more permissive over time as the Unicode Consortium adds new characters, since these can make previously invalid code points valid.

Computational class

Unicodefuck is Turing-complete by reduction from brainfuck using the following substitution table.

Brainfuck Unicodefuck Binaryfuck decoding
start of program  !G [->++.++>+,+]
+ X@Ga4C >[+.+-+]<+><>-+<
- X@Ge4C >[+.+-+]<-><>-+<
> M0R ><><+->>
< M0[ ><><+-<<
. M0d ><><+-+.
, X@Gu4C >[+.+-+]<,><>-+<
[ X@Gd&F >[+.+-+]<-+><-+[
] ]>-+[>]<

This substitution uses even cells to store the data of the brainfuck tape, and leaves odd cells at 0 so that loops can waste symbols. Since every 3 bytes encode 8 instructions, parity manipulation is necessary encode an odd number of useful instructions.