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.

User talk:ImOnlyHereForReversibleComputing

From Esolang
Jump to navigation Jump to search

Considering you have interest in reversible computing, what do you think about 3L? --ChuckEsoteric08 (talk) 14:14, 11 October 2026 (UTC)

I looked into it a little bit when there was some activity around it last month. I was struggling to figure out how to isolate unconditional single side effects. Returning to it today, though, I think I might have been a little too focused on making mirror-symmetric patterns to accommodate the way the programs branch when I was looking into it earlier, as if you make the patterns less symmetrical looking, and encode every logical bit as a sequence of 4 bits, then I think you can isolate some of the basic operations.
This little subprogram implements a toggle of a 4-bit block without moving the data pointer (assuming that the 4-bit block has a uniform value to begin with):
       ++
-> }}}} +
       +   ->
       ++
And, if we then do the toggle-and-right-shift operation 4 times, we get an unconditional right shift without toggling:
       ++
-> }}}} +
       + }}}} ->
       ++
That same internal Z shape can be used by itself to shift the instruction pointer left without changing direction based on the 4-bit block's value.
    ++
->   +
    +  ->
    ++
For a little sketch of a Reversible Bitfuck loop, imagine that > is a stand-in for the above right shift construct, operating on 4-bit blocks at a time, with the appropriate spacing of the below structure to accommodate it. Then we can implement a Reversible Bitfuck loop (abcde) as something like:
      ++       ++
      +  abcde> +
      +         +
->   > +       +   ->
      +       > +
      ++       ++
If you wanted to avoid having the program gradually drift downwards (which might make writing loops awkward), you could alternate between Z shapes and S shapes, which would be functionally equivalent, but shift the vertical position of the instruction pointer in opposite directions. --ImOnlyHereForReversibleComputing (talk) 15:32, 11 October 2026 (UTC)

It seems that translation wouldn't be that hard as I thought. Few hours ago I tried again and my resulting structures looked similar to yours. --ChuckEsoteric08 (talk) 16:00, 11 October 2026 (UTC)

What helped me is translation I made for 2-ill proof, though 2-ill is not reversible and I would later create a translation of regular brainfuck loops for it. --ChuckEsoteric08 (talk) 17:47, 11 October 2026 (UTC)

If you used 8-bits instead of 4 for each cell it would not drift downwards. --ChuckEsoteric08 (talk) 11:29, 12 October 2026 (UTC)

Oh, yeah. By just double loop-de-looping? That makes sense. --ImOnlyHereForReversibleComputing (talk) 13:32, 12 October 2026 (UTC)