9
0
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.
Is Underload a Muriel-like language?
– alephalpha – 2017-06-01T03:25:44.727@JerryJeremiah Does my edit make it clearer? – PyRulez – 2017-06-01T03:31:01.660
@alephalpha That wiki says "Without ^, the remaining program will always decrease in size, eventually halting." If this is true, then yes, Underload is Muriel-like. – PyRulez – 2017-06-01T03:31:37.750
What do you do if your target language has multiple
eval
commands? (Eg Python'sexec
andeval
) Require the removal of all of them to lose TCness? – CalculatorFeline – 2017-06-24T21:07:46.2101@PyRulez I think this should be [tag:popularity-contest] rather than code-golf, because otherwise the choice of implementation language would make it a chameleon challenge – Uriel – 2017-06-24T23:38:26.470
@Uriel what's a chameleon challenge? – PyRulez – 2017-06-25T08:47:00.227
A challenge that looks like one thing (implement a language) but is another (choose your base language very carefully). – CalculatorFeline – 2017-06-25T17:25:22.137