Two-instruction madness! (fr this time)

From Esolang
Jump to navigation Jump to search

Two instruction madness! (fr this time) is my first esolang after my hiatus from esolanging for a long time.

Main

As it's name implies, Two instruction madness! (fr this time) is Two-instruction madness! with actually 2 instructions, and it's still turing complete! (Also so that people cant complain "I/D machine has two instructions!!!") It keeps the micro transactions, using e and a. Before understanding the instructions, we need to understand the data direction. The data direction is the direction the data pointer moves when executing a e instruction. The e instruction checks if the current cell the data pointer is pointing to and if it is 255, (cells are 8 bit numbers) e will flip the direction of the data pointer, jump execution to the instruction before the last e in the code, however, if it is a e, move the code pointer back until the last a, then go to the e in front, and then move the data pointer. If the cell is not 255, e just moves the data pointer. a adds 1 to the current cell without moving the data pointer.

I/O

There is a optional instruction , fittingly named i/o which if the data pointer is on a cell with 255, it takes all cells up to the next 255 and displays them as a string. If not, it sets the current cell to the input value.

Turing completeness proof

The proof is by reduction to everyones favorite language!!!!! brainfuck. (a modified version of it) We are readucing to the instructions of brainfuck. - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

+ a

[] (0=255) (assuming code ends in a and has 1 255 padding byte 2 bytes after the main data and the data pointer is at the end of the data (not the padding byte) and the data direction is facing the padding byte and the code is designed for the data direction to be facing the opposite direction of the direction to the padding byte 2 bytes of movement after the "end of the data") ee(insert code here)eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaee