Simplack is a simple, stack-based language created by User:Saka. Simplack is designed to be easy to learn.
In Simplack, only integers can be stored in the stack, although they can be outputted as ASCII characters.
Each instruction is on a separate line.
Comments are any line that start with
Certain arguments can use values from other items in the stack by using
$n where n is the index that the value will be taken from. These arguments are marked by an asterisk (*) after them.
|push n||Push the integer n to the top of the stack.|
|pop n||Pop/remove item at index n.|
|increase i n*||Increase integer at index i by n|
|set i n*||Set the integer at index i to n|
|if i n* goto l||If the integer at index i is n, go to line l, otherwise, carry on.|
|goto n||Go to line n.|
|output i t||Output item at index i as either ASCII (t = a) or an integer (t = i).|
|input t||Get either ASCII (t = a) or integer (t = i) input and push it to top. If a string is inputted, each character will get pushed one by one, not as the whole string.|
|exit||End the program.|
Here are some examples:
input i if 0 1 goto 4 output 0 i exit output 0 i push 1 goto 4
input a push 0 output 0 a pop 0 if 0 0 goto 6 goto 2 exit
push 72 push 101 push 108 push 108 push 111 push 44 push 32 push 87 push 111 push 114 push 108 push 100 push 33 push 0 output 0 a pop 0 if 0 0 goto 18 goto 14 exit
Square of Input
#Calculates the square of whatever input i push 0 push 0 increase 2 $0 increase 1 1 if 1 $0 goto 8 goto 4 output 2 i
push 0 push 1 push 0 push 0 push 10 set 3 $0 increase 3 $1 set 2 $3 set 0 $1 set 1 $2 output 3 i output 4 a goto 5
Available on GitHub
There is an simplack extension, with more functionalities called Complack