ETC
Jump to navigation
Jump to search
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
ETC, standing for both "etc." and ETC, is a minimalist esolang, created by user:Elbereth, with only 3 commands excluding NOP: E, T, C.
E
means increment counter by 1;
T
means multiply counter by 2;
C
means jump to command with position same as the counter. However, if the counter points to the same location, to prevent an infinite loop, it acts as E but also prints the ASCII/Unicode character represented by value of the counter.
All other characters are NOP; The standard form is .
Note the counter increments are done modulo the program size, which means that infinite loops are still possible and very easy to make, for example:
CCCTC
Computational class
ETC could be Turing-complete, though not proven yet.
Examples
XKCD Random Number
ettttteeeeeeeeeeeeeeeeeeee Chosen by fair di e roll. Guarenteed to be random.
etc.py
program = input('Program: ').upper()
index = 0
counter = 0
while index < len(program):
if program[index] == 'E':
counter += 1
elif program[index] == 'T':
counter *= 2
elif program[index] == 'C':
if index == counter:
print(chr(index), end="")
counter += 1
else:
index = counter - 1
index %= len(program)
counter %= len(program)
index += 1