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.

Wheelliam

From Esolang
Jump to navigation Jump to search

Wheelliam is a family of Turning tarpits made by User:ChuckEsoteric08 which are inspired by conditionals of Advance The Wheel!.

General Description

Languages work on a tape infinite in both directions with program being in infinite loop

0 - advance instruction wheel n times
1 - execute current instruction
2 - advance instruction wheel either n or m times based on some condition

Languages are named as Wheelliam(l, n, m) in which l is amount of instructions on the wheel, if there are multiple variations with same name they are differentiated by adding a letter after it: Wheelliam(l, n, m)-A, Wheelliam(l, n, m)-B and so on

Wheelliam(6, 1, 3)-A

It has this instruction wheel, initially pointing to SET0:

SET0 - set current cell to 0
SET1 - set current cell to 1
RIGHT - move tape pointer right
ADV2 - advance instruction wheel 2 times
LEFT - move tape pointer left
NOP - do nothing

n is 1, m is 3 and it advances the wheel m times if cell is 0. This variation is Turing-complete as it can implement Two-Way Exasperation Machine:

TWEM Wheelliam(6, 1, 3)-A
0 1
1 0100000
> 0010000
< 0000100
^ 021010

Wheelliam(4, 1, 3)-A

It has this instruction wheel:

FLIP - flips current cell
RIGHT - moves tape pointer right
LEFT - moves tape pointer left
NOP - does nothing

It advances m times if cell is 1.

As can be seen it is fully reversible. The author think this variation could be Turing-incomplete but it isn't proved. One simple example showcasing the behaviour of 2 is:

101012

It evolves as such:

[1] 0 1 0 1 2 Instruction:FLIP Tape:...0[1]0...
1 [0] 1 0 1 2 Instruction:RIGHT Tape:...0[1]0...
1 0 [1] 0 1 2 Instruction:RIGHT Tape:...01[0]...
1 0 1 [0] 1 2 Instruction:LEFT Tape:...01[0]...
1 0 1 0 [1] 2 Instruction:LEFT Tape:...0[1]0...
1 0 1 0 1 [2] Instruction:RIGHT Tape:...0[1]0...
[1] 0 1 0 1 2 Instruction:RIGHT Tape:...01[0]...
1 [0] 1 0 1 2 Instruction:LEFT Tape:...01[0]...
1 0 [1] 0 1 2 Instruction:LEFT Tape:...0[1]0...
1 0 1 [0] 1 2 Instruction:NOP Tape:...0[1]0... 
1 0 1 0 [1] 2 Instruction:NOP Tape:...0[1]0...
1 0 1 0 1 [2] Instruction:FLIP Tape:...0[1]0...
[1] 0 1 0 1 2 Instruction:FLIP Tape:...0[0]0...
1 [0] 1 0 1 2 Instruction:RIGHT Tape:...0[0]0...
1 0 [1] 0 1 2 Instruction:RIGHT Tape:...00[0]...
1 0 1 [0] 1 2 Instruction:LEFT Tape:...00[0]...
1 0 1 0 [1] 2 Instruction:LEFT Tape:...0[0]0...
1 0 1 0 1 [2] Instruction:NOP Tape:...0[0]0...
[1] 0 1 0 1 2 Instruction:NOP Tape:...0[0]0...
1 [0] 1 0 1 2 Instruction:FLIP Tape:...0[0]0...
1 0 [1] 0 1 2 Instriction:FLIP Tape:...0[1]0...
1 0 1 [0] 1 2 Instruction:RIGHT Tape:...0[1]0...
1 0 1 0 [1] 2 Instruction:RIGHT Tape:...01[0]...
1 0 1 0 1 [2] Instruction:LEFT Tape:...01[0]...
...

It was this language that inspired the author to create this family of languages.