brainf*ckの状態遷移図

kayn_koen2009-07-31

今までのひらがなの状態遷移図に加えて今度は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'] 

とした。