Turing number

From Esolang
Jump to navigation Jump to search

THIS IS A WORK IN PROGRESS. IT WILL NEVER END BEING ONE, AS INFINITE THINGS CAN BE SAID ABOUT IT. A Turing number is the concept of numbering the operations of a a machine like aTuring machine, but doesnt read any data. For example, a Turing machine that moves Left and writes a 0, in System Number 1, will be called 18. The author hopes that this page WILL NOT have billions of derivatives, like Brainfuck. Evidently, it is Turing-complete. Even more importantly, every language is its derivative! It is called Turing number not because it was developed by Turing, but because it is related to Turing machines. Actually, they where created by User:Singingbanana, but you understand that Singingbanana number does not sound good!

System Number 1

Left is 1, Right is 2. Erase is 3. Writing a zero is 8, meanwhile writing a one is 9. This system was the first made up, just to illustrate the concept. A trivial definition in a language is:

L -> 1
R -> 2
O -> 8
Z -> 9

The program you just saw is written in a standard format for all Turing numbers, which you can call TNDL, or TNML. The author prefers to call it Subset, but he does not know why.

Subset/TNDL/TNML

Subset is very simple. We assign a 'meaning' to one these: L, R, O and Z. They mean: Left, Right, One(Write one) and Zero(Write Zero). The arrow mean 'is equal to'.

System Number 2

More intuitive that System Number 1, this may help beginners to understand Turing Machines.

L -> >
R -> <
O -> 0
Z -> 1

System Number 3

Just plain simple.

L -> 1
R -> 2
O -> 3
Z -> 4

System Number 4

This requires an addition to the Turing number rules. A command can be equivalent to a couple of commands smashed together.

LO -> 1
RO -> 2