InfiniTUM
InfiniTUM is a language made by User:iconmaster that stands for Infinite TUring Machine. It is a language that describes Turing machines with one twist: there is an infinite tape with infinite values, and the head has an infinite number of states. Rather than rulesets, state and value change is dependant on mathematical expressions.
Description
An InfiniTUM program is a series of if statements: If the state is in a range, set the state and the value to the result of an expression, and then move the head. They are structured like this:
IF condition STATE state_expression VALUE value_expression MOVE direction
The first three arguments, condition
, state_expression
and value_expression
, must be mathematical expressions, and the last one must be either <
, >
, or X
. The first argument is the condition to check. If it is true, the machine sets the head's state to the second argument, the value under the head to the third, and moves the head based on the fourth. The following variables may be used:
s
: the head's state number.v
: the value under the head.
If the MOVE
statement is a <
, it moves the head to the left; if it is >
, it goes to the right; if it equals X
, the program halts.
The tape is initially filled with all 0's, and the state is 1.
Examples
Counts up forever:
IF s != 0 STATE s+1 VALUE s MOVE >
Interpreter
- Common Lisp implementation of the InfiniTUM programming language.