難解プログラミング言語の一つであるBrainf*ckのオンラインデバッグ環境を作った話をします。debugger👈👈👈👈👈Brainf*ckデバッガについてBrainf*ckはその仕様上、極めてバグを埋め込みやすいです。<命令はよく連続して使われて数え間違えやすく、しかも使う個数を1個でも間違えるとバグるしたがって、(特に大規模な)Brainf*ckプログラムを作成する上ではデバッガの存在はとても大切です。いうことで数年前にmoon.kmc.gr.jpというデバッガを作ったのですが、如何せん古くなってきたので新しく作り直すことにした、というのが今回の内容です。現在の機能インタプリタBrainf*ckのコードを実際に実行することができます。標準入力を与えることもできます。デバッグモードを有効にすると、100msごとなど指定した時間間隔で命令を実行させられます。入出力をUTF-8の文字列と解釈するか、16進数と解釈してバイナリを扱うかを選択できます。Brainf*ckではEOFに達したときに入力命令を実行した場合の値は規定されていませんが、これを0と-1(255)で選択できます。デバッグ機能プログラムカウンタとデータポインタの位置を表示します。@命令に達するとそこで実行を停止させることができます。停止させた後はステップ実行などで細かくプログラムの動作を追うことが可能です。:命令に達すると標準エラー出力に今のポインタの指す値を出力します。.の標準エラー出力版です。指定した範囲のメモリの内容を見ることができます。