brainf*ckの状態遷移図
今までのひらがなの状態遷移図に加えて今度はbrainf*ckのソースコードの状態遷移図を書いてみる。
ソースコード自体はひらがなで使ったやつをほとんど流用できる。
できたのがこのグラフ。
ひらがな全体の図に比べると3589x1600, 796KBときわめて健全な状態遷移図。
なおひらがなの時と同様にgraphvizで出力しているが、brainfuckの文字列
$bf_chars = "><+-.,[]".split(//)
これを単純にgraphvizのノードのラベル(?ノードのキー値かも)に設定すると以下のようなエラーを吐く
$ ruby bf_graph.rb {"+"=>2, ","=>5, "-"=>3, "."=>4, "["=>6, "<"=>1, "]"=>7, ">"=>0} Error: /tmp/bf_graph.rb..40519.0:5: syntax error near line 5 context: >>> > <<< ;
どうも記号が使用できないようなので
$bf_chars = ["for", 'back','inc','dec','print','input','jumpfor','jumpback']
とした。