BFコンパイラー
以下のようにonelinerで可能です。
ただしLanguage::BF 0.03が必要です。
CodeRepos経由
で、
- svn co svn.coderepos.org/share/lang/perl/Language-BF
- cd Language-BF/trunk
- perl Makefile.PL
- make install
するか、CPANにVersion 0.03が現れるのをお待ち下さい。
Dan the Brainf.cker
1 2 3 4 | perl -MLanguage::BF \
-e 'print Language::BF->new_from_file(shift)->as_perl' t/hello.bf \
| perl
Hello World!
|
Posted feedbacks - なでしこ
なでしこへ変換。1.50047以降用。出力されるコードはもはや日本語でもなんでもない(^ ^;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | !変数宣言が必要
FNとは文字列
BFCODEとは文字列
NAKOとは文字列=`mとは配列
pとは整数=0
//コード開始
`
INDとは文字列=""
TABとは整数=0
FN="bf"の""でファイル選択
もし(FN="")ならば、おわり
BFCODE=FNを開く
BFCODEの改行を""に置換して文字列分解
反復
対象で条件分岐
">"ならば
NAKO=NAKO&IND&`p=p+1`&改行
"<"ならば
NAKO=NAKO&IND&`p=p-1`&改行
"+"ならば
NAKO=NAKO&IND&`m[p]=m[p]+1`&改行
"-"ならば
NAKO=NAKO&IND&`m[p]=m[p]-1`&改行
"."ならば
NAKO=NAKO&IND&`継続表示(CHR(m[p]))`&改行
","ならば
NAKO=NAKO&IND&`m[p]=INT("${HEXエンコード(文字抜出(入力(空),1,1))}")`&改行
"["ならば
NAKO=NAKO&IND&`(m[p]<>0)の間`&改行
TAB=TAB+1
IND=リフレイン(タブ,TAB)
"]"ならば
TAB=TAB-1
IND=リフレイン(タブ,TAB)
「nako」のファイル名抽出(FN)&「.nako」で保存ファイル選択
NAKOをそれに保存
おわり
|




dankogai
#3886()
Rating0/2=0.00
「どう書く?」でまだ出ていないのが不思議なお題。それがBF処理系。 ここでは、BFで書かれたソースを、同じ言語に変換するコンパイラーを募集します。
私自身、すでにPerlとJavaScriptに関しては http://blog.livedoor.jp/dankogai/archives/50545151.html でやっているのですが、他の言語バージョンも是非見たいので。
Dan the Brainf.ucker
see: Brainfuck - Wikipedia
1 reply [ reply ]