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.

Cyclic Clockwise Rotating Contraption

From Esolang
Jump to navigation Jump to search
Cyclic Clockwise Rotating Contraption
Designed by User:RaiseAfloppaFan3925
Appeared in 2025
Memory system Cell tape, ring buffer-like
Computational class Unknown
Reference implementation Unimplemented
Influenced by BF, Deadfish

The Cyclic Clockwise Rotating Contraption or CCRC is a "machine system thing" by User:RaiseAfloppaFan3925.

Memory

In CCRC, the program and memory are stored on a ring buffer-like structure that can expand and contract with the start and the end linked together. The ring rotates clockwise, and the acceleration of the rotation of the memory ring can be adjusted with instructions.

Each memory cell is of unsigned and of unbounded size.

Initially, the acceleration of the ring is 0c and the speed is 1c. If the speed of either of the rings reaches zero, the perpetual motion machine loses power and halts the program.

Instructions

Command Action
I Takes in a UTF-32 character as input and stores it in the temporary register. EOF is zero.
O Outputs the temporary register as a UTF-32 character.
[ Increases the acceleration by 1c.
] Decreases the acceleration by 1c.
i, d, s Same as their Deadfish originals, respectively increments, decrements, and squares the current memory cell
X Removes the end of the memory ring.
{ Decelerates data ring acceleration by 1.
} Accelerates data ring acceleration by 1.
( Jumps one cell past the matching ) if current cell is 0
) Jumps one cell in front of the matching ( if current cell is not 0

Examples

Cat program

Stops at EOF, requires EOF to be 0

I(O[)]]][

Example:

Input: ab

Iter 0
  Code: I(O[)]]][
        ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: 0
  Input: a
         ^
  Output:
Iter 1
  Code: I(O[)]]][
        ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output:
Iter 2
  Code: I(O[)]]][
         ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output:
Iter 3
  Code: I(O[)]]][
          ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output: a
Iter 4
  Code: I(O[)]]][
           ^
    Speed: 2
    Acceleration: 1
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output: a
Iter 5
  Code: I(O[)]]][
             ^
    Speed: 2
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output: a
Iter 6
  Code: I(O[)]]][
               ^
    Speed: 1
    Acceleration: -1
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output: a
Iter 7
  Code: I(O[)]]][
                ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: a
  Input: a
          ^
  Output: a
Iter 8
  Code: I(O[)]]][
        ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: NUL (0)
  Input: a
          ^
  Output: a
Iter 9
  Code: I(O[)]]][
         ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: NUL (0)
  Input: a
          ^
  Output: a
Iter 10
  Code: I(O[)]]][
            ^
    Speed: 1
    Acceleration: 0
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: NUL (0)
  Input: a
          ^
  Output: a
Iter 11
  Code: I(O[)]]][
             ^
    Speed: 0
    Acceleration: -1
  Data:
        ^
    Speed: 1
    Acceleration: 0
  T: NUL (0)
  Input: a
          ^
  Output: a
Halt

Infinite loop

Any program that doesn't contain an unbalanced ]

This is pretty weird lol because these are commands but don't really do
anything

This also means that the empty program is also a valid program and loops forever, as the memory ring keeps spinning.

There is also the particle accelerator program [ which speeds up the ring infinitely.