Muriel ist eine Sprache, in der die einzige Möglichkeit zum Schleifen darin besteht, eine Quine zu erstellen und auszuführen. Ihre Aufgabe ist es, mit dieser Eigenschaft eine eigene Sprache zu erstellen und diese in einer bereits vorhandenen Sprache zu implementieren.
Wir werden eine Muriel-ähnliche Sprache wie folgt definieren:
- Es verfügt über einen integrierten Befehl zum Ausführen von Code in einer eigenen Sprache, ähnlich dem
@
Befehl von Muriel oder Pythonexec
. - Es ist Turing komplett.
- Wenn Sie den integrierten Ausführungsbefehl entfernen, ist Turing nicht mehr abgeschlossen.
Muriel ist Muriel-ähnlich mit @
seinem eingebauten Ausführungsbefehl. Schlumpf ist auch Muriel-ähnlich (sein eingebauter Ausführungsbefehl ist x
). Python ist nicht Muriel-ähnlich, da es beim Entfernen immer noch vollständig ist exec
.
Ihre Aufgabe ist es, eine Muriel-ähnliche Programmiersprache zu erstellen und diese dann in einer Sprache Ihrer Wahl zu implementieren. Ihre Punktzahl ist die Länge der Implementierung, die Sie minimieren möchten.
Anmerkungen:
- Ihre eingebaute Ausführung muss nicht genau wie Muriel funktionieren. Es liegt an Ihnen, wie mit der Beendigung des untergeordneten Programms, Fehlern, dem Umfang usw. umgegangen wird.
- Die Sprache, in der Sie die Implementierung schreiben, kann selbst nicht Muriel-ähnlich sein. (Dies ist also
@
kein gültiger Eintrag.) Es muss auch vor diesem Beitrag existiert haben.
eval
Befehle enthält? (ZB Pythons exec
und eval
) Müssen alle entfernt werden, um TCness zu verlieren?