Muriel è un linguaggio in cui l'unico modo per eseguire il loop è creare un quine ed eseguirlo. Il tuo compito è creare la tua lingua con questa proprietà e implementarla in una lingua preesistente.
Definiremo un linguaggio simile a Muriel come il seguente:
- Ha un comando integrato per l'esecuzione del codice nella sua lingua, simile al
@
comando di Muriel o di Pythonexec
. - È Turing completo.
- Se si rimuove il comando di esecuzione integrato, Turing non è più completo.
Muriel è simile a Muriel con @
il comando di esecuzione integrato. Puffo è anche simile a Muriel (il suo comando di esecuzione integrato è x
). Python non è simile a Muriel, poiché è ancora Turing completo se lo rimuovi exec
.
Il tuo compito è quello di creare un linguaggio di programmazione simile a Muriel e quindi di implementarlo in un linguaggio a tua scelta. Il tuo punteggio è la lunghezza dell'implementazione, che stai cercando di minimizzare.
Appunti:
- La tua esecuzione integrata non deve funzionare esattamente come Muriel. Dipende da te come gestisce la chiusura del programma figlio, errori, scoping, ecc ...
- La lingua in cui scrivi l'implementazione non può essere di per sé simile a Muriel. (Questo è così che
@
non è una voce valida.) Deve anche essere esistito prima di questo post.
eval
comandi? (Ad esempio Python exec
e eval
) Richiede la rimozione di tutti per perdere TCness?