Brainfuck インタープリタ書いた
Brainfuck のコードを PostScript に変換して実行するタイプです。
使い方は
gs -q -dNODISPLAY -dBATCH -- このPSファイル Brainfuckプログラム
です。
%!PS /in(%stdin)(r)file def /out(%stdout)(w)file def /source ARGUMENTS 0 get(r)file def /memory [30000{0}repeat] def /pointer 0 def /p++{/pointer pointer 1 add def}def /p--{/pointer pointer 1 sub def}def /++{memory pointer 2 copy get 1 add put}def /--{memory pointer 2 copy get 1 sub put}def /putchar{out memory pointer get write}def % End of File を読んだら -1 をセットする /getchar{memory pointer in read not{-1}if put}def % End of File を読んだら何もしないバージョン % /getchar{memory pointer in read{put}if}def /if0break{memory pointer get 0 eq{exit}if}def [ { source read{ /char exch def char 62 eq{/p++ cvx}if char 60 eq{/p-- cvx}if char 43 eq{/++ cvx}if char 45 eq{/-- cvx}if char 46 eq{/putchar cvx}if char 44 eq{/getchar cvx}if char 91 eq{[/if0break cvx}if char 93 eq{]cvx/loop cvx}if }{ exit }ifelse }loop ]cvx exec