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:Raiseafloppafan7741
Appeared in 2025
Memory system Cell tape, accumulator-based, ring buffer-like
Computational class Unknown
Reference implementation Saccharin
Influenced by BF, deadfish
File extension(s) .ccrc

The Cyclic Clockwise Rotating Contraption or CCRC is an esoteric programming language by User:raiseafloppafan7741 in 2025 when he discovered ring buffers.

Memory

The program and memory are stored on two separate ring buffer-like structure that can expand and contract with the start and the end linked together. The rings rotate counterclockwise, contrary to the name, and the acceleration of the rotation of the memory ring can be adjusted with instructions.

Each memory cell of both rings are unsigned and at least 32 bits in size.

Initially, the acceleration of both rings is 0c and the speed is 1c. If the speed of either of the rings becomes zero or less, the perpetual motion machine loses power and halts the program. The data ring starts out with one cell initialized to zero. The accumulator is set to zero.

The program is loaded up until the end or a carriage return or newline.

Instructions

Command Action
I Takes in a UTF-32 character as input and stores it in the accumulator. EOF is the maximum cell value.
O Outputs the accumulator as a UTF-32 character.
P Adds another cell at the end of the data ring with the value of the accumulator.
Z Stores the accumulator in the current data cell.
e Sets the accumulator to the value of the current data cell.
[ Increases the acceleration by 1c.
] Decreases the acceleration by 1c.
i, d, s Same as their deadfish originals; respectively increments, decrements, and squares the accumulator.
X Removes the last cell of the data ring. If the data ring is empty, does nothing.
{ Decelerates data ring acceleration by 1.
} Accelerates data ring acceleration by 1.
( Jumps one cell past the matching ) if the current data cell is 0
) Jumps one cell in front of the matching ( if the current data cell is not 0

All other characters are NOPs. This probably makes them useful for timing instructions with the rotation of the data ring.

Computational class

Assuming infinite-sized memory cells, Cyclic Clockwise Rotating Contraption could possibly be Turing-complete by simulation of a 2-register Minsky machine, however this is yet to be proven.

Examples

Cat program

Stops at EOF.

IiZ(dO[)]]][

Loops forever.

IO

One Time Cat

Pretty funny how this one is longer than the never-ending cat program, isn't it?

IO]

Truth-machine

This one only accepts 1. Anything else is printed once.

IdddddddddddddddddddddddddddddddddddddddddddddddddZ(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiO])iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiZ(O)

"Hello, world!" program

This one is mostly the same as the one in deadfish, except o is switched with O and there is a ] at the end.

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiOiiiiiiiiiiiiiiiiiiiiiiiiiiiiiOiiiiiiiOOiiiOdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddOddddddddddddOiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiOddddddddOiiiOddddddOddddddddOdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddOZ(dZ)iiiiiiiiiiO]

Infinite loop

Any program that doesn't contain an unpaired ] or } loops infinitely.

This also means that the empty program is also a valid program and loops forever, as both rings are still spinning clockwise.

There is also the particle accelerator program [ which speeds up the code ring until it reaches the maximum acceleration and speed.

See also