TLIJMMWTRAMCBICHWTPITCSIBCTII

From Esolang
Jump to navigation Jump to search

TLIJMMWTRAMCBICHWTPITCSIBCTII (This Language Is Just Minsky Machine With Twenty Registers And More Commands, But I Choose Hard Way To Prove It Turing Complete So I Wrote Bitwise Cyclic Tag Interpreter In It) is an esolang by User:ChuckEsoteric08.

Specification

TLIJMMWTRAMCBICHWTPITCSIBCTII has 20 registers. Indexes starts at zero.

inc(x,y) - increment register x by y
dec(x,y,z) - if register x is bigger than y decrement it by y, else goto z
mul(x,y) - multiply register x by y
div(x,y,z) - if register x is divisible by y, then divide it by y, else goto z
inp(x) - set register x to user input. Unindentified behavior if input is not an integer
out(x) - output register x's current value
copy(x,y) - copy value of register x to register y

BCT interpreter itself

Program is inputed first, then data. They are encoded as follows: string is reversed and 1 is appended before the string.

inc(5,1)
inp(0)
copy(0,1)
inp(2)
div(0,10,7)
mul(0,10)
dec(4,1,8)
inc(3,1)
out(2)
dec(0,2,17)
inc(0,2)
div(0,10,21)
div(2,10,14)
dec(4,1,8)
dec(2,1,63)
div(2,10,63)
dec(4,1,8)
dec(2,2,63)
inc(2,2)
copy(1,0)
dec(4,1,8)
dec(0,2,60)
inc(0,1)
div(0,10,63)
div(0,10,37)
dec(2,2,35)
inc(2,2)
div(2,10,30)
mul(5,10)
dec(4,1,25)
dec(2,1,63)
div(2,10,63)
mul(5,10)
inc(5,1)
dec(4,1,25)
mul(2,10)
dec(4,1,50)
dec(0,1,63)
dec(2,2,48)
inc(2,2)
div(2,10,43)
mul(5,10)
dec(4,1,25)
dec(2,1,63)
div(2,10,63)
mul(5,10)
inc(5,1)
dec(4,1,38)
mul(2,10)
inc(2,1)
dec(5,2,8)
inc(5,2)
div(5,10,55)
mul(2,10)
dec(4,1,50)
dec(5,1,63)
div(5,10,63)
mul(2,10)
inc(2,1)
dec(4,1,50)
dec(3,1,25)
inc(3,1)
dec(4,1,38)

Examples

Cat Program

An infinitely repeating numeric cat program shall be adduced:

inp(0)
out(0)
dec(1,0,0)

Truth-Machine

The following program furnishes a truth-machine implementation:

inp(0)
dec(0,0,4)
out(0)
dec(0,1,2)
out(0)

Interpreter

  • Common Lisp implementation of the TLIJMMWTRAMCBICHWTPITCSIBCTII programming language.