Symmetric Echo Tag
Symmetric Echo Tag is an esoteric programming language created by User:ais523 in 2025, as an attempt to fulfil an aesthetic goal: often, one of the easiest ways to write an interpreter that proves Turing-completeness of a low-level language is to implement something like cyclic tag via using a data queue and another queue to hold the program, with those two queues being manipulated in similar but slightly different ways, so what would a language look like if the rules for handling the two queues were symmetrical?
Symmetric Echo Tag intentionally blurs the line between program and data: its two queues can be interpreted either as a program and a data queue (either way round), in which case it is a self-modifying language, or as two data queues, in which case it is a ZISC.
Specification
A Symmetric Echo Tag program consists of the initial state of two queues of bits, and a positive integer N. Program execution proceeds by initialising two queues from the given initial states, then performing the following step repeatedly: dequeue a bit from each queue, then for each queue from which a 1 bit was dequeued, enqueue onto that queue N copies of the bit that was dequeued from the other queue. Program execution halts if (and only if) either queue becomes empty.
Computational class
Symmetric Echo Tag seems like it has the potential to possibly be Turing-complete, but so far its author is not sure how to get started on a proof.
External resources
- Interpreter written by User:Hakerh400