GotoStart

From Esolang
Jump to navigation Jump to search
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.