Jumplang
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
,?.?!>-<!