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.
Idel
Idel is a two-dimensional esolang by User:ChuckEsoteric08 which uses 2DChanger-like syntax to represent a reversible counter machine.
Description
It has two counters: a and b, each storing a nonnegative integer of any size. At any point only one counter could be accessed, which is called active, initially a is an active counter. It has these instructions:
+- increment active counter.-- decrement active counter.~- make another counter active.@- if active counter is nonzero turn 90 degrees clockwise, else turn counter-clockwise..- ouptut active counter as an integer.,- input a value and store it in active counter.- Everything else is a NOP
Program halts when out of bounds.
All commands except , (as it overwrites value of the current cell) can be reversed:
+- decrement active counter.-- increment active counter.~- make another counter active.@- if active counter is nonzero turn 90 degrees counter-clockwise, else turn clockwise..- remove an integer from the output- NOP is it's own reverse, just like
~.
Examples
Multiply 3 by 2 and output the result
+@
@@@@
@ @ @@ @@ @@@@
@ -@ @ @ @ @
@@ @+++~@@~@@++~-@@~.
@ @
@ @
@@@@
First it sets a to 3 and then it loops moving contents from a to b by one at a time and then adding by one more at each cycle into b, implementing doubling, then it outputs b and moves out of bounds, halting the program.
Computational class
As seen in the above example, it is fairly easy to implement a reversible counter machine with 2 registers and in which halt can only occur as a last instruction, with each state transition being
Sn inst inst Spos/Sz
With Spos being state if nonzero and Sz if zero (one of which could be ommited), and in which there could at most be only two branches that can get to the same state and these branches must get from different conditions. Above multiplication example can be expressed as follows:
0 inc inc inc swap /2 1 swap 2/ 2 inc inc swap dec 1/3 3 swap out halt
Thus it means Idel is Turing-complete.