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.

OddFlipEvenJump

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

OddFlipEvenJump is similar to TripJump in the sense that it's meant to be a Turing-complete version of FlipJump. It goes about that in a similar yet different way.

Description

Every OddFlipEvenJump command does the following things:

  • Create two variables a and b.
  • Starting from the current bit, check (current bit, bit to the right):
    • if it's (0, 0), add the bit 0 to the right end of both a and b
    • if it's (0, 1), add the bit 1 to the right end of a
    • if it's (1, 0), add the bit 1 to the right end of b
    • if it's (1, 1), break the loop
    • if the loop hasn't been broken, go to the bit 2 bits to the right of the current one
  • Evaluate a as a little-endian binary value and b as a big-endian binary value.
  • Flip the bit at a, then jump to the bit at b.

Implementation Details

Hypothetically, you could code this language such that changing the bit in b during the corresponding a can change what b jumps to, or such that b will always jump to where it was originally pointing. This has deliberately been left as undefined behavior and will be formalized based on which behavior is more powerful to have.

Computational Class

The leading zeroes don't affect the value of b and the trailing zeroes don't affect the value of a. Therefore, this doesn't have to be a bounded storage machine because a and b can be wildly different sizes.

It isn't the same as FlipJump because, as it is right now, flipping the bit in a command can't be trusted to immediately change the jump, only on the next instruction. Is there anything about that which could stop it from being Turing-complete?