Stacker

Stacker is an esoteric programming language created by Fletcher Cutting (User:DatCodingGuy) and takes inspiration from multiple languages including Stack Up, Calcutape and Befunge while adding its own unique features.

Stacker started as Fletcher making an interpreter for Stack Up but realizing that it's extremely painful to write code in and doesn't have much functionality. Throughout making the interpreter he decided to start adding more functionality and it eventually reached the point of it being different enough to be called a separate language.

Overview
Stacker has two stacks, the main stack and the extra stack. Most of the commands affect the main stack, the extra stack is just there to store data that you want to use later on and don't want it to be affected. Stacker also includes a flag register that is either true or false. This flag is used for commands such as if and loop and can be manipulated by the compare and flip commands.

Commands
Each command consists of a single character (being either a digit, letter or symbol), there are a total of 33 commands:

Examples
Hello World: 4 8 * 1 + 5 2 *:* 5 2 *:* 8 + 5 2 *:* 9 + 5 + 52 *:* 9 + 2 + 9 9 * 6 + 4 8 * 5 2 *:* 9 + 2 + 5 2 *:* 8 + 5 2 *:* 1 + 8 9 * ........... h

Cat (inputs integer outputs integer): &%h

Cat (inputs a single character, outputs it as an integer): ,%h

Cat (inputs a single character, outputs it as a character): ,.h

By default input is not displayed in the console as it is being inputted, one way to work around this is by doing this: ,:. This works because it takes input as a character, duplicates it and then prints the top value leaving a copy of the character on the stack. If you want to input a string then turn it in to a loop like this: [,:.]

A simple while loop: 9[::%0.00=d]h All this does is loop through a number (number 9 is pushed at the start), checks to see if it equals 0 and if it doesn't it decrements the number and loops again.

Computational Class
Stacker is Turing-complete, meaning that it has the same computational class as universal Turing machines. This is proven by a process of deduction when comparing Stacker with Brainfuck. Stacker has all of the commands that Brainfuck does which shows it is turing complete. To simulate Brainfuck's tape with our stacks you can push as many 0s as you need to and use the > and < commands to move values from one stack to the other emulating the tape.

Implementation
You can find the official interpreter here