The programming language that is used here is 2L designed by Gregor Richards with some minor modifications proposed by Mathijs Romans to make it more suitable for the Busy Beaver problem. The resulting language is called 2LBB here.
The language is two-dimensional. The instructions are put on a 2D grid with limited size. The directional program pointer (PP) moves across this grid, executing instructions as it encounters them. It starts just below the left-most cell at the bottom of the grid, moving upwards.
There is also a one-dimensional, infinite tape that acts as data. All cells of the tape are initially filled with zeros. The data pointer (DP) points to one of these cells.
The language consist of only two symbols:
Program cells can also be empty, representing a NOOP instruction; PP simply keeps moving in its current direction.
The program terminates when PP leaves the board.
Figure 1 shows a visualisation of 2LBB, annotated with the above terms.
Compared to the original 2L language, 2LBB differs as follows:
A program that uses all operations is shown in Figure 2 below. Use the button to step through the program. At the bottom right you will see a step counter appear. The program does the following:
Figure 3 shows a program that is equivalent to the one in Figure 2, but condensed to fit on a smaller grid.