GotoStart
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
GotoStart is an esolang by User:ChuckEsoteric08 and is Turing complete descendant of UBLANG.
Specification
GotoStart uses registers (0-indexed) to store data. Language requires at least 3 registers to be Turing-complete
Instruction | Description |
---|---|
+(x) |
Increment register x .
|
-(x) |
Decrement register x if it is bigger than 0.
|
=(x:y) |
Set register x to y .
|
.(x) |
Output register x .
|
?(x=y>abc) |
If registerx is equal to y execute instructions abc .Note that parenthesis should match to make nested if statements possible.
|
^ |
Go to the start of the program. |
Infinite GotoStart
Programs in this version of GotoStart always end with ^
and ^
is not allowed to appear elsewhere. Despite this, the language still remains Turing-complete.
GotoStartpocalypse
In this version if statements always looks like ?(x=0>^)
and ^
is not allowed everywhere else, and the command =(x:y)
is also removed. That would make it almost equivalent to the Brainpocalypse II and Subtractpocalypse, also making it Turing-complete
Examples
Repeating Counter
This GotoStart and Infinite GotoStart program counts from one (1) up to inclusive three (3), and perpetually repeats the process, printing each stage to the standard output:
?(0=0>+(0).(0)) ?(0=1>+(0).(0)) ?(0=2>+(0).(0)) ?(0=3>=(0:0)) ^
Computational class
See GotoStart Turing-completness proof
Interpreter
- Common Lisp implementation of the GotoStart and Infinite GotoStart programming languages.