We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Redo

From Esolang
Jump to navigation Jump to search

Redo is an esolang created by User:cleverxia and iss a try to prove Alarm Clock Radio Turing complete, and I chose the name because Rewind is taken.

Syntax

Redo operates on a tape which initially has only 1 cell. A cell can store multiple (albeit the amount of numbers are bounded, and the numbers themselves are also bounded) numbers.

Redo has the following commands:

Caption text
command meaning
# goto the first cell.
~ extend the tape 1 cell at the end.
{n}[...] while the number n at the current cell is not 0 do ...
+{n} increment number n at the current cell.
> move the pointer to the right, moving off the tape is UB

Computational class

The language itself is Turing-complete as the reanslation from BF exists.

> ~+{2}>
< +{2}^(MAX-1) #{2}[>]
+ +{1}
- +{1}^(MAX-1)
[ {1}[
] ]

With MAX being the integers' bound.

This works using the following tape structure:

(x,1)(x,1)(x,1) ... (x,1)(x,0)(x,0)...(x,0)
                           ^ data pointer

However if this language's subset > +{n}# ~# {n}[# ]# is TC then Alarm Clock Radio must be too as this translation exists:

>            >^P
+{n}#        >^n+>^(P-n)[>^P]>
~#          [>^P]+}>^(P+1)
{n}[#...]#  >^n[>^(P-n)[>^P]> ... >^n]>^(P-n)[>^P]>

where P is PADSIZE. n must be a positive integer and less tha PADSIZE