Muddle

From Esolang
Jump to: navigation, search
Muddle
Paradigm(s) "Tape-based"
Designed by User:Singingbanana
Appeared in 2018
Computational class Unknown computational class
Reference implementation See below(PyMuddle)
File extension(s) {{{files}}}


Muddle is a programming language which was meantto be stack-based, but ended up tape-based, was meant to interpret in Python 2.7 but ended up interpreting into Python 3, was meant to be Unimplemented, purely conceptual, but ended up being designed while writing a interpreter for it. It was meant to be revealed on IRC, but [User:Singingbanana|The author] started disliking IRC, so it was released directly to the wiki.

Commands

Muddle is quite hard to explain. So, let me clear some stuff up: c is the tape, the pointer points to a cell on the tape. Command "*" is followed by a number or string. * puts that number of string into the tape(c). * is a useful command. > decreases the pointer variable. < increases the pointer variable. ! prints the whole tape. ^ prints the cell on the time with index = pointer. ? erases all the tape. If you dont understand the definitions, look at the code of the interpreter. NB: between every command is a space.

Example programs

Hello world:

* Hello * World! !

It pushes Hello into the tape and then pushes World! into the tape, making the tape look like this: [Hello, World!]. Then ! outputs [Hello, World!]. Pointer Peculiarities:

* hello * world < < ^

First, it pushes hello, then world, increases pointer 2 times(by default pointer = 0). This employs wrap-around, as c[2] is c[0](Our tape has ended at c[1]). So the output is hello. Warning: No control flow exists in Muddle. No Looping is available. So Truth-machines are impossible.

Computational class

There is no input, there is no control flow. A truth-machine can not be simulated in it. Looks like it is Turing-incomplete! Note: This language is meant to be Turing-incomplete to study the bounds of computation. A Essay, On Computing bounds of Computation, Using a Example Turing-Incomplete Language(OCBCUETIL) is being written along side Currency exchanges and computation(CEC).

Interpreter

See: [1]