bifuck
Paradigm(s) | imperative |
---|---|
Designed by | User:SpaceByte |
Appeared in | 2022 |
Memory system | Cell-based |
Dimensions | one-dimensional |
Computational class | Turing complete |
Major implementations | [1] |
Influenced by | brainfuck |
File extension(s) | .biff (Previously .bi) |
Bifuck is a brainfuck inspired esolang created by User:SpaceByte on 8/3/22. Bifuck is exactly the same as brainfuck, proving its turing completeness, however, code is written more tediously, using only two characters, however, programs will have much greater length.
Language Overview
Bifuck has the exact same capabilities as brainfuck, and is built off of brainfork, the creators first experience with esolang development, which was a brainfuck interpreter written in C#. The interpreter for bifuck is the same as brainfork, except it uses switch cases for better preformance, and it converts bifuck code, to brainfuck before executing. Because it converts before executing, the interpreter on its own is a brainfuck interpreter, it just converts bifuck to brainfuck, proving the convertibility between languages is 100% possible and very easy to create. Bifuck operates using two characters, similarly to how two characters are used in B, however B has commands that involve the "stack" item count, bifuck does not. In bifuck, like B, one character (.
), is a separator, and the other character (+
), is used in between the seperator, to identify by length of each command, each length of a string in-between the Seperator, being a command.
Conversion Commands
The following are the lengths of commands (with exact examples) of what bifuck commands convert to which brainfuck commands.
Length 1 (bifuck:.+.
) converts to (brainfuck:>
) Length 2 (bifuck:.++.
) converts to (brainfuck:<
) Length 3 (bifuck:.+++.
) converts to (brainfuck:+
) Length 4 (bifuck:.++++.
) converts to (brainfuck:-
) Length 5 (bifuck:.+++++.
) converts to (brainfuck:.
) Length 6 (bifuck:.++++++.
) converts to (brainfuck:,
) Length 7 (bifuck:.+++++++.
) converts to (brainfuck:[
) Length 8 (bifuck:.++++++++.
) converts to (brainfuck:]
)