Es gibt viele Herausforderungen, die "X interpretieren" sagen, wobei X eine einfache Sprache ist. Das ist meiner Meinung nach viel zu langweilig. Um allen zögernden Leuten im Internet etwas Interessantes zu bieten, können Sie versuchen, diese Herausforderung zu meistern:
Herausforderung
Wähle eine Sprache $LANG
. $LANG
kann eine beliebige vollständige Programmiersprache oder eine vollständige Teilmenge einer Programmiersprache sein. Beachten Sie, dass Sie ein Feature Ihrer Sprache nicht $LANG
für die Interpretation verwenden dürfen, da Ihre Einreichung auch in geschrieben sein muss $LANG
.
Schreiben Sie einen Compiler / Interpreter für $LANG
geschrieben $LANG
. Sie können alle Einrichtungen (einschließlich eval
und Freunde) Ihrer Sprache verwenden, die verfügbar sind, um diesen Compiler zu schreiben. Um die Aufgabe herausfordernder zu gestalten, gibt es eine Einschränkung: Ihr Programm sollte in der Lage sein, alle gültigen Programme mit $LANG
Ausnahme Ihres Interpreters / Compilers selbst zu interpretieren / kompilieren . Wenn das zu interpretierende / zu kompilierende Programm Ihr Interpreter oder Compiler selbst ist (unabhängig vom Dateinamen), sollte Ihr Programm etwas tun, das nichts mit der Funktionalität eines Interpreters oder Compilers zu tun hat (z. B. Barfing oder Drucken Hello, world!
).
Um diese Aufgabe noch komplexer zu gestalten, darf Ihr Programm beim Kompilieren oder Interpretieren keinen eigenen Quellcode lesen.
Spezifikationen
- Diese Aufgabe ist Code Golf. Die Einsendung mit den wenigsten korrekten Zeichen gewinnt. Bei einem Unentschieden gewinnt die zuerst eingereichte Lösung.
- Ihr Programm / Skript sollte das zu interpretierende Programm aus einer Datei lesen. Sie können den Pfad und den Namen fest codieren. Wenn die Datei gelesen wird, können Sie sie entweder in eine andere Datei kompilieren (die auf Ihrem System ausführbar sein muss) oder direkt ausführen. Wenn die
$LANG
Dateilesefunktionen fehlen, können Sie den passenden Code auf eine andere Weise einlesen$LANG
. Sie können möglicherweise nicht$LANG
als Teilmenge einer anderen Sprache auswählen, aber die Funktionen zum Lesen von Dateien wurden entfernt. - Es gelten die üblichen Code-Golf-Regeln. Das heißt: Ihre persönliche Haustier-Sprache, die Sie nur erfunden haben, um diese Herausforderung zu lösen, ist verboten, wenn die Lösung damit trivial wird (z. B. die Definition eines Single-Char-Programms, das die Lösung genau implementiert). Der Missbrauch von Regeln wird gefördert.