Ihre Aufgabe ist es, einen Dolmetscher für die Nutzlosen zu bauen Sprache :
Hier sind die funktionalen Anforderungen:
- Alle beschriebenen Befehle sollten vom Interpreter akzeptiert werden.
NO.
,NOOP
UndINCLUDE-xxx
geehrt werden müssen.DONTUSEME(n)
Das Basisdatum muss für Testzwecke einfach konfigurierbar sein.INCLUDE-xxx
muss in der Lage sein, jeden Befehl mit ungefähr gleicher Wahrscheinlichkeit zu generieren. Wenn es a erzeugtDONTUSEME(n)
, sollte er zufällig einen kleinen Wert für n auswählen.DONTUSEME(n)
Fenster sollten dieNO.
Anweisung überstehen. Tipp: Starten Sie für diese Fenster einen neuen Prozess.BOOM!
undKABOOM!
muss etwas Schlimmes und Unheimliches tun undKABOOM!
muss schlimmer sein alsBOOM!
. Dies darf jedoch nicht zu ernst genommen werden, damit es nicht destruktiv, übermäßig störend oder schwer zu widerrufen ist. Bitte, dies nicht tun, nicht , und nicht macht diese Anweisungen , um einen ausführenrm -rf \
Befehl, eine Gabel Bombe ausführen, installiert Malware beschädigte Daten im Dateisystem oder Post an oder laden unangemessene Inhalte aus dem Internet oder jede anderen Sache eindeutig missbräuchlich.TURINGVSALONZO
sollte so laufen, als würde es tatsächlich das tun, was es tun sollte. Tipp: Entscheiden Sie nach dem Zufallsprinzip, ob es für eine zufällige sehr lange Zeit oder eine zufällige kurze Zeit oder für immer schlafen würde.- Alle anderen vordefinierten Anweisungen sollten etwas anderes tun als die oben genannten Anweisungen und sich voneinander unterscheiden, aber niemals etwas Schlimmeres als
BOOM!
oderKABOOM!
. Was sie genau tun, liegt bei Ihnen, aber eine einfache Implementierung würde nur eine Fehlermeldung oder einen anderen Text ausgeben. - Sie sollten dem Benutzer eine einfache Möglichkeit bieten, das vom Interpreter auszuführende Programm bereitzustellen. Das Lesen von Klartext aus einer Datei oder aus
stdin
ist in Ordnung. Das Lesen aus einer verschlüsselten Datei irgendwo im Internet ist nicht möglich.
Optional:
- Wenn Sie möchten, können Sie einige neue Befehle erfinden, die jedoch denselben Regeln unterliegen sollten wie die anderen. Verwenden Sie dies nicht, um die Einschränkungen zu umgehen
BOOM!
und /KABOOM!
oder zu besiegenDONTUSEME(n)
. Und wenn Sie neue Befehle erfinden, erklären Sie, was sie tun. - Sie sollten sich überlegen, was der Interpreter tun soll, wenn er Eingaben mit unbekannten Befehlen (oder sogar völlig unparsbarem Quatsch durch zufällige Bytes) empfängt.
- Obwohl keine Anweisung den
DONTUSEME(n)
Befehl besiegen sollte , können Sie dafür einen Kill-Schalter hinzufügen. Nur nicht in der Sprache aussetzen.
Wir haben einige nicht funktionierende Anforderungen, um Missbrauch zu vermeiden:
- Ihr Eintrag muss so vollständig und automatisch wie möglich sein. Dies bedeutet, dass es sich nicht einfach um eine Art Installationsprogramm oder ein eindeutig unvollständiges Programm handeln sollte. Auf diese Weise ist das Herunterladen und Verwenden von Bibliotheken wie jQuery oder Paketen von maven central in Ordnung, das Herunterladen von beliebigem Code und Paketen von Ihrem benutzerdefinierten Server jedoch nicht.
- Ihr Eintrag sollte keinen Inhalt von dieser Seite oder von einem Spiegel oder einer Kopie dieser Seite erhalten, um eine Art Reflexion oder für einen anderen Zweck durchzuführen. Dies ist wichtig, um zu vermeiden, dass ein Programm versucht, die Antworten anderer Teilnehmer auf diese Frage zu lesen oder die Frage oder die Antworten auf irgendeine Weise zu stören.
- Ihr Interpreter sollte unveränderlich sein und seine Eingabedatei nicht selbst modifizieren oder modifizieren. Es ist jedoch in Ordnung, eine mutierte Kopie des Interpreters oder der Eingabedatei zu erstellen, ohne das Original zu ändern.
Und schließlich, wenn man bedenkt, dass:
- Es wird erwartet, dass die Programme in den Antworten ziemlich nutzlos sind, selbst wenn sie vollständig konform sind.
- Die Sprache ist (absichtlich) sehr unterbestimmt, und die Antwortenden haben eine Menge Freiheiten zu nehmen und sind motiviert, sie zu nehmen.
- Die Anforderungen und die möglichen Implementierungen haben viele subjektive Punkte;
- Das Ziel dabei ist es, Spaß und Kreativität zu bekommen.
Dann ist dies ein Beliebtheitswettbewerb , und die am besten bewertete Antwort, die den Regeln entspricht, gewinnt! Sie müssen also nicht Golf spielen oder Ihre Antwort verschleiern (aber Sie können dies tun, wenn Sie möchten). Stelle nur sicher, dass du etwas Originelles und Kreatives postest, um die Upvotes zu verdienen, dh bitte poste keine langweiligen Einträge.
popularity-contest
interpreter
Victor Stafusa
quelle
quelle
Antworten:
TI-BASIC
Es gibt eine Kill-Taste für
DONTUSEME
, können Sie herausfinden, welche es ist? :)quelle
:Goto 1
, dass diesBOOM!
nur ein No-Op ist?INCLUDE-
.HTML + Javascript + jQuery + jQuery-Benutzeroberfläche
Die Eingabe sollte im Textbereich erfolgen und wie jeder Befehl in einer Zeile formatiert sein. Die Befehle unterscheiden nicht zwischen Groß- und Kleinschreibung. Alle Befehle wurden vollständig implementiert. Ich hoffe es gefällt euch.
Sie können es unter http://jsfiddle.net/bCBfk/ ausprobieren.
Es hat einen neuen Befehl:
Andere Spoiler:
quelle