Tttt
Jump to navigation
Jump to search
Intro
what is Tttt?
Tttt is a programming language that is so simple that it has 10 characters: 1.) a 2.) b 3.) c All the way to j.
the data
The data is kind of like brainfuck, an array of cells, 3 in the original, and infinite in Ttttt. There is a pointer, also like brainfuck.
the symbols
- a gets the cell under the pointer and adds 2 to it. Why 2? So it is inefficient!
- b gets the cell under the pointer and subtracts 1. There is no limit for cells. -infinity to +infinity.
- c pushes the pointer forward by one.
- d pushes the pointer backward by two.
- e prints the ascii character of the cell under the pointer.
- f prints the value of the cell under the pointer.
- g prints a new line.
- h does a brainfuck (ASCII) input.
- i is a brainfuck ‘[‘.
- j is a brainfuck ‘]’.
k and l can be used for comments. Example:
k this is a comment l.
programs
Hello, World!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaeabaaaaaaaaaaaaaaeabaaae eabaebbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbebbbbbbbbbbbbeabaa aaaaaaaaaaaaaaaaaaaaaaaaaeaaaa aaaaaaaaeabaebbbbbbebbbbbbbbeb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbe
That took me a while to make. One line:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeabaaaaaaaaaaaaaaeabaaaeeabaebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbebbbbbbbbbbbbeabaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaeabaebbbbbbebbbbbbbbebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbe
Truth-machine
hchdcicbdcbjcifjf
You need two inputs. The first one is zero. The second one is 1 or 0.
aaaicaaaacdbjhcibcdbcjcdifjf
You only need one input for this truth machine, which can be either 0 or 1.
Implementations
This is an implementation in Python which works with the examples above. However, it is not the official implementation.
def run_tttt(data: str) -> None:
code = list(data)
variables = [0, 0, 0]
pointer = 0
which_var = 0
while pointer < len(code):
if 'a' == code[pointer]:
variables[which_var] += 2
elif 'b' == code[pointer]:
variables[which_var] -= 1
elif 'c' == code[pointer]:
which_var += 1
elif 'd' == code[pointer]:
which_var -= 2
elif 'e' == code[pointer]:
print(chr(variables[which_var]), end="")
elif 'f' == code[pointer]:
print(variables[which_var], end="")
elif 'g' == code[pointer]:
print("\n", end="")
elif 'h' == code[pointer]:
variables[which_var] = ord(input())
elif 'i' == code[pointer]:
if variables[which_var] == 0:
while code[pointer] != 'j':
if code[pointer] == 'k':
pointer += code[pointer:].index('l')
pointer += 1
elif 'j' == code[pointer]:
if variables[which_var] != 0:
while code[pointer] != 'i':
if code[pointer] == 'l':
while code[pointer] != 'k':
pointer -= 1
pointer -= 1
pointer -= 1
elif 'k' == code[pointer]:
pointer += code[pointer:].index('l')
pointer += 1