Search code examples
esoteric-languages

Identify esolang with two alternating instruction wheels


Long time ago (probably circa 2005), I've encountered an esolang that had two separate 'instruction wheels', and two possible instructions, and a brainfuck-like array with pointer as memory. The instructions were 'rotate the given wheel' and 'execute instruction and switch wheels' - kind of what Braincrash does to brainfuck, but with more instructions. The only instruction common to both wheels was NOOP. I think the language was turing-complete (possibly by a trivial reduction to BF).

Does anyone here remember such a language and has any resources on it?


Solution

  • This sounds a lot like you're remembering Whirl.

    probably circa 2005

    Plausible, Whirl was created in 2004.

    two separate 'instruction wheels'

    There's an Operations Ring and a Math Ring.

    a brainfuck-like array with pointer as memory

    It has "An 'infinite' supply of data memory" (which is used like a BF tape). It also has a register for each ring though.

    The instructions were 'rotate the given wheel' and 'execute instruction and switch wheels

    Sort of, the second instruction is a bit more complicated and is really two different instructions. 0 reverses the direction of the current ring. 00 does the same but also executes the current command and switches the rings.

    The only instruction common to both wheels was NOOP.

    Sort of. Both wheels also have a Load and Store command, but they work with different registers.

    I think the language was turing-complete (possibly by a trivial reduction to BF).

    Indeed. I can't find an actual reduction anywhere, but we can easily see that <> can be implemented with DAdd, [] with PAdd and If and +- with Add and Neg (in all cases with Load and Store thrown in for good measure).