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.

GTBF

From Esolang
Jump to navigation Jump to search

GTBF (Generalized Two-dimensional BitFuck) is a meta-language by User:ChuckEsoteric08 which is a can describe multiple 1-bit Brainfuck derivatives which use binary tape.

Description

It has a binary tape infinite to the right. Program is a 2d grid made out of ASCII characters, on the top of which there are definitions made using a 5-tuplet:

character: (a, b, c, d, e)

In which a is an integer from 0 to 2, b is a signed integer, c is could be 0 or 1, and d and e is an unsigned integer

  • If a is 0 it moves tape pointer b times to the right (negative numbers go left and 0 doesn't move it at all)
  • If a is 1 it would first flip current cell and then move tape pointer.
  • If a 2 it would first move the tape pointer and only after that it will flip current cell.

c would check value of the current cell, if it is 0 it will do it before tape pointer moves and / or cell is flipped, if it is 1 it will check after operations are done (if both a and b are 0 or d and e are equal, then it doesn't matter what it would be). d would represent what happens if cell is / was 0, and e if 1. It is encoded as an unsigned integer:

  • 0 would not change the direction.
  • 1 would turn clockwise.
  • 2 would turn counter-clockwise.
  • any other integer n would skip next n-2 instructions in the current direction.

Characters that aren't defined are treated as NOPs.

Some examples

2DChanger

}: (1, 1, 0, 0, 0)
<: (0, -1, 0, 0, 0)
+: (0, 0, 0, 2, 1)

3L

}: (1, 1, 0, 0, 0)
<: (0, -1, 1, 2, 1)

Computational class

It is Turing-complete as it can describe a lot of two-dimensional languages which use binary tape infinite to the right.