Muriel is a language where the only way to loop is to create a quine and execute it. Your job is to create your own language with this property and an implementation of it in a pre-existing language.
We will define a Muriel-like language like as follows:
- It has a built-in command for executing code in its own language, similar to Muriel's
@
command or python'sexec
. - It is Turing complete.
- If you remove the built-in execution command it is no longer Turing complete.
Muriel is Muriel-like with @
as its built-in execution command. Smurf is also Muriel-like (its built-in execution command is x
). Python is not Muriel-like, since it is still Turing complete if you remove exec
.
Your job is to create a Muriel-like programming language, and then to provide an implementation of it in a language of your choice. Your score is the length of the implementation, which you are trying to minimize.
Notes:
- Your built-in execution does not need to function exactly like Muriel. It is up to you how it handles termination of the child program, errors, scoping, etc...
- The language you write the implementation can not itself be Muriel-like. (This is so that
@
is not a valid entry.) It also must have existed before this post.