プログラミング

Brainfuckのサンプルコード集

Brainfuck

みんな大好きBrainfuckです.

この記事は,完全に個人用なのでクオリティは無視して下さい.

個人で作っているブラウザ上で動作するインタプリタはこちら

Sample Codes

Hello, world!

いくつか種類がある.

「w」が小文字か大文字か,または「,」や最後の「\n」の有無によっても変わってくるが,一番短いのはこれ.

17,896ステップと,Hello, World!のくせにかなり難解.

これを実行できるインタプリタは,1バイト文字およびポインタのオーバーフローとアンダーフローに対応していないと実行できない.
(ポインタが先頭のときにデクリメントをしたら,ポインタは最後尾を指すようになる等)

単純な「Hello, world!」の場合こんな感じ.

384ステップ (改行含む).

ASCII出力

全てのASCIIコード文字を出力するコード.

とてもシンプル.

FizzBuzz

有名な言葉あそび.

13,063ステップ.

入力をそのまま出力

Brainfuckの得意分野(?)

100までの素数

参考:http://hakugetu.so.land.to/program/brainfuck/1-4.php

453ステップ

02~1002までを出力

157,267ステップ.

長い.ここまでくるとサーバスペックや,実装言語,実装の仕方によって出力までにかかる時間に差が出る.

私が作ったBrainfuckインタプリタは,インタプリタ自体はC++なので問題はないけれど,サーバスペックの問題でレスポンスはやや遅い.

Pythonのみで作成した場合,かなり遅くなると思う.

値の移動

単体で41ステップ.

上は1つ右隣に移動するパターン.

2つ移動したければ,

もし,{5 | 0 | 0}を{0 | 5 | 0}にしたければ,このように使う.

メモリのセルサイズ算出

スペース改行含めて2,232ステップ.

もしメモリのセル上限値が255であれば「8 bit cells」と出力される.

コメントをつけると以下のような感じ.

なかなか難解.

参考:https://esolangs.org/wiki/Brainfuck#Examples

 


スポンサードリンク