タスクは簡単です。2つの言語で実行できるプログラムを作成します。言語1では通常のクイン(独自のソースコードを出力)、言語2ではエラークイン(独自のソースコードと同じエラーメッセージを生成)である必要があります。
これはcode-golfであるため、最短の有効な送信(バイト単位)が優先されます。
ルール:
タスクは簡単です。2つの言語で実行できるプログラムを作成します。言語1では通常のクイン(独自のソースコードを出力)、言語2ではエラークイン(独自のソースコードと同じエラーメッセージを生成)である必要があります。
これはcode-golfであるため、最短の有効な送信(バイト単位)が優先されます。
ルール:
回答:
^"
>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p:1: error: declaration expected
オンラインで試してみてください!:Befunge-93、C
randomdude999には、ファイル名が機能するために一致する引用符が必要であることに注意してくれました。
filenameの下に保存する必要があります。^"\n>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p
ここ\n
で改行です。このため、CのTIOは意図したとおりに動作しません。Lubuntuで動作するようにテスト済み。
プログラムはコンパイルに失敗し、tccはファイルの名前をエラーメッセージの一部として喜んで出力します。コードの先頭に基づいて、複数のコンパイルエラーが発生する可能性があります。^
最初にはを与えますdeclaration expected
。これは短く、のような問題のある文字は含まれていません"
。一方、gccおよびclangの開発者は非常に悲観的であり、一度に複数のエラーを出力することを選択しましたが、これはあまり良くないため、コンパイラを使用していません。
Befungeは"
、文字列モードを切り替えるコマンドのおかげで、コードを文字データとしても利用できるという点で、クインにとって便利です。最初に、いくつかの役に立たないスタック操作を実行してから、p
(0、1)にNUL文字を配置する(putコマンド)を発行します。次に、命令ポインタを左に反映して、すべてを文字列として読み取り始めます。スタックのLIFOの性質のため、これは左側で行う必要があります。ラップして"
文字に再び到達すると、文字列は終了します。NUL文字が$
文字、文字列の途中で区切り文字を作成します。次に、3つの数字をスタックにプッシュし、NULを飛び越えます(命令として実行すると、残念ながらインタープリターがハングするため)。エラーメッセージの静的な部分はここで実行する必要があります。ほとんどの文字はノーオペレーションですが、p
コマンドは3つの引数を消費します(そのため、3つの数字をプッシュしたため、文字列の一部がここで食べられます)。:
&1
文字は合計4つの値をスタックにプッシュします。p
し、$
(POPや廃棄)命令。次に、算術演算を実行してASCIIコードをプッシュし^"\n>#001p#"
、最後にNUL文字を見つけて終了するまで、ループ上のすべての値を文字として出力します。
/
。私は今自分でそれをテストすることはできません。
<define>:1: error: missing terminating " character
。
?SYNTAX ERROR
Apple] [エミュレータで、RESETキーを押してBASICモードに入ります。
Commodore LCDエミュレーターで、ヒットRightArrowEnterしてBASICアプリケーションに入ります。
どちらの場合も、?SYNTAX ERROR
すべて大文字で入力しないでください。自動的に大文字になるためです。