Muddle

From Esolang
Jump to navigation Jump to 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 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]