brainf*ckインタプリタ
はじめに
brainf*ckインタプリタは一瞬で作ることが出来るので、気晴らしに最適であると知られています[tomabou, 2019]
せっかく作ったのでブログに書いておきます
https://github.com/tomabou/brainf-ck/tree/master
HelloWorldしてFizzBuzz出来たのでちょっと満足しました。
ちょっとした感想
brainf*ckインタプリタでただ一つちょっと注意しないとイケナイところは、括弧の対応を取るところです。 括弧の対応を取るのは正規言語ではダメで、文脈自由文法が必要なので、スタックをどこかに用意する必要があります。
しかしC言語の場合、関数呼び出しをすると勝手にスタックを用意してくれるため、何も頭を使うところはありません。 FPGA上で実装したりbrainf*ck自身でbrainf*ck処理系を作ったりするときは、関数呼び出しという高級な機能がないのでスタックの実装についてちょっと考える必要があるかもしれませんね。