Jumplang

From Esolang
Jump to navigation Jump to search

Jumplang is a brainfuck-derived esolang by User:PythonshellDebugwindow designed to be easier to implement in another esolang than normal brainfuck.

Commands

A list of commands and what they do in Jumplang are listed here. To see the differences between brainfuck and Jumplang see “Differences from brainfuck”.

Jumplang Command Description
+ Increment the current cell by 1
- Decrement the current cell by 1
> Increment the cell pointer
< Decrement the cell pointer
, Input an ASCII character to the current cell
. Output the current cell as an ASCII character
^ Increment the current cell by 2
v Decrement the current cell by 2
? Skips the next command if the current cell is 0
! Performs an absolute jump to the 0-based Nth character in the source, where N is the cell pointer + 1th cell (jumping negative or out of bounds halts the program)

All others are nops.

Differences from brainfuck

Jumplang has most of the same commands as brainfuck, but it adds two new commands: ^, which increments the current cell twice, and v, which decrements the current cell twice. While it removes the looping commands, it adds the ? conditional skip command which skips the next command if the current cell is zero and the ! command, which jumps to the 0-based Nth command where N is the cell pointer + 1th cell (jumping <0 or out-of-bounds = halt). This requires interpreters to use at least right-unbounded integers for the cells.

Turing-completeness

Turing-complete by translation from brainfuck with zero loops (loop on 0 instead of nonzero). See talk page for details.

Minimization

See Jumpmin.

Examples

Cat

,?.?!>-<!

See also

  • Jumpmin, a minimalization of Jumplang

External resources

Interpreter