Slingshot
Slingshot is an esolang created by User:ChuckEsoteric08 in 2025 based on Incrementing machine and ZISC
Description
Program is a list of nonnegative integers seperated by spaces which represent initial memory tape with indexes starting at 0. After it is initialised execution starts
Execution
Increment cell x
(where x
is the value of current cell), move pointer right and if the resulting value is equal to the cell y
(where y
is the value of current cell after the pointer is moved) pointer is moved z
cells to the right (where z
is the value of cell right after the current cell), else it would move pointer 2 times forward. If pointer moves out of bounds it warps around to the start of the tape.
Computational class
It is trivial to translate Incrementing machine into Slingshot, proving that it is Turing-complete. It uses special version of Incrementing machine (IM) with line numbers:
a b c
Increment register a
and if it is equal to register b
jump to command c
, else execute the next command. Indexes of both registers and line numbers start at 0. Translation uses this definitions:
m
refers to the number of IM commands multiplied by 3n
refers to number of countersp
refers to the number of commands executed, excluding the current one, multipled by 3q
refers to number of commands after the current one multiplied by 3
If line c
is after the current command:
m+a m+b c*3-p-1
If line c
is before the current command or it jumps to itself:
m+a m+b c*3+q+n-1
As an example there is this 4-register IM program which simulates 2-register Minsky Machine calculating 3+2 and storing the result in the first register, and then incrementing second register infinitly:
0 0 1 0 0 2 0 0 3 2 2 4 2 2 5 2 2 6 3 2 8 0 0 6 2 2 8
Which results in:
27 27 2 27 27 2 27 27 2 29 29 2 29 29 2 29 29 2 30 29 5 27 27 22 29 29 27 0 0 0 0