AtCoderでWhitespace
AtCoder Regular Contest #12に参加してきました。真面目にやった時の成績はお察し下さい。
で、終わった後に
http://arc012.contest.atcoder.jp/submissions/71399
C#のソースコード自体をWhitespaceのソースとして実行する、最低限のインタプリタを実装しています。完全にやっつけです。
Whitespace部分の変換前はこんな感じ。
IChar(); Dup(); Dup(); Dup(); JmpEq('M',"mon"); JmpEq('T', "tue?"); JmpEq('W', "wed"); JmpEq('F', "fri"); Print("0\n"); //sat,sun End(); Label("mon"); Print("5\n"); End(); Label("tue?"); IChar(); Dup(); JmpEq('h', "thu"); Print("4\n"); End(); Label("wed"); Print("3\n"); End(); Label("thu"); Print("2\n"); End(); Label("fri"); Print("1\n"); End(); End();
順番に比較してるだけですね。普通のスタックマシンなのでアセンブラ作ってしまえば難なく書けます。Bfと比べるとネタのインパクトに欠けるのがなんとも。
インタプリタを書き直すのとWhitespaceのコードをC#部分に紛れ込ませるのは次回までの課題ということで。