Erstellen Sie eine Muriel-ähnliche Sprache und Implementierung


9

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:

  1. Es verfügt über einen integrierten Befehl zum Ausführen von Code in einer eigenen Sprache, ähnlich dem @Befehl von Muriel oder Python exec.
  2. Es ist Turing komplett.
  3. 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:

  1. 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.
  2. 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.

Ist Underload eine Muriel-ähnliche Sprache?
Alephhalpha

@JerryJeremiah Macht meine Bearbeitung es klarer?
PyRulez

@alephalpha In diesem Wiki heißt es: "Ohne ^ wird das verbleibende Programm immer kleiner und schließlich angehalten." Wenn dies wahr ist, dann ist Underload Muriel-ähnlich.
PyRulez

Was tun Sie, wenn Ihre Zielsprache mehrere evalBefehle enthält? (ZB Pythons execund eval) Müssen alle entfernt werden, um TCness zu verlieren?
CalculatorFeline

1
@ PyRulez Ich denke, dies sollte eher ein Beliebtheitswettbewerb als ein Code-Golf sein, da sonst die Wahl der Implementierungssprache es zu einer Chamäleon-Herausforderung machen würde
Uriel

Antworten:


3

Python 3 und "Die minimale TC-Teilmenge von Underload, jedoch mit geänderten 2019, umgekehrten und angezeigten Zeichen 0", 156 Byte

c=input()
n=1
t=c
s=[]
while c:
 *c,i=c
 if n:
  if"6">i:n+=int(i)-1
  if n:t=[i]+t
  else:s+=[t];t=[]
 elif"2"==i:n=1
 elif"2">i:s+=s[-1:]
 else:c+=s.pop()

Probieren Sie es online aus!

Erklärungen in der Kopfzeile, kommentierter Code in der Fußzeile.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.