TripletNOR

From Esolang
Jump to navigation Jump to search

This is an esolang created by User:ZCX islptng. Inspired by the game Turing Complete.
It let us make computers only with NAND at first.
According to De Morgan's laws, we can start with NOR, too.

Rules

It is based on a binary memory.
Use in for input, out for output, and pc for program counter. .num and .char comes after in or out.
The memory provides 0x,1x,2x,etc. use a hexadecimal number for the address.
A hexadecimal number without *x will be a constant value.
0x**+# means a #-length binary list that starts with the address **.
0x0x**+# means the bit that the 0x**+# shows.
[val]plus means the value of [val] +1.

The only command is:

{[val1],[val2],[dest]}

It does:
For every bits of val1 and val2,
do NOR and save it into dest.
dest mustn't be a constant value.

When the length of val1 and val2 is different,
the shorter one starts to loop: for example
val1 = 110010101111
val2 = 10110101

    110010101111
NOR 101101011011
            ^^^^ LOOP
    000000000000

I'm not sure if this is a Turing-Tarpit.

Programs

Hello World

{48656c6c6f20576f726c6421,0,0x00+96}
{0x00+96,0,out.char}

I haven't tested it yet because there is no interpreter. I'm trying to make it.