30
インタラクティブなDeadfishインタープリターを作成する
Deadfishは、4つのコマンドを備えたジョーク「プログラミング言語」です。Esolangページは少し矛盾しており、そのページのインタープリターはまったく同じように機能しないため、次のバリエーションを実装する必要があります。 仕様 少なくとも 16ビットのサイズのアキュムレータがあり、それ以上は許可されますが、それ以下は許可されません。負の数をサポートする必要はありません。アキュムレーターは0、プログラムの開始時にあります。 次の2セットの4つのコマンドがあり、プログラムは両方を同時にサポートする必要があります。 標準Deadfish│XKCDバリアント│意味 ─────────────────────┼──────────────────┼─────────── ────────────────────────────── i│x│累積アキュムレーター d│d│アキュムレーターを減少させる s│k│平方(acc = acc * acc) o│c│数値としての出力アキュムレーター コマンドの実行後、アキュムレータがまたはのいずれ-1かである256場合、アキュムレータをゼロにリセットする必要があります。これは通常のラップアラウンドではないことに注意してください。たとえば、アキュムレータが20であり、sコマンドが実行された場合、アキュムレータは400その後になります。同様に、アキュムレータが257あり、dコマンドが実行されると、アキュムレータはになり0ます。 これらのコマンドのいずれでもない入力は無視する必要があります。 テストプログラム xiskso 出力する必要があります 0 xiskisc 出力する必要があります 289 I / O プログラムにプロンプトが表示されます>>。プロンプトは、新しい行の先頭にある必要があります。次に、ユーザー入力の行を読み取り、指定されたコマンドを左から右に実行します。数字を出力するときは、数字を区切る必要があります。すなわち、12 34大丈夫、12,34大丈夫、 12 34 大丈夫ですが、そうで1234はありません。 プログラムは、少なくともこれにEOF達するまで、ループでこれを実行し続ける必要があります。 セッションの例: >> xiskso 0 >> xiskisc 289 >> ddddo ddddo 285 281 >> ddddo ddddo 277 …