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 - Smalltalk
Squeak Smalltalk で。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | | bf st op in |
bf := FileStream fileNamed: 'hello.bf'.
in := FileStream fileNamed: 'in.txt'.
in binary.
st := WriteStream with: '| ss | ss := ReadWriteStream with: #(0). ss reset'.
[(op := bf next) notNil] whileTrue: [
st nextPutAll: (op caseOf: {
[$>] -> ['. ss next. ss atEnd ifTrue: [ss nextPut: 0; back]'].
[$<] -> ['. ss back'].
[$+] -> ['. ss nextPut: ss peek + 1; back'].
[$-] -> ['. ss nextPut: ss peek - 1; back'].
[$.] -> ['. Transcript show: (ss peek asCharacter)'].
[$,] -> ['. ss nextPut: ', in next printString,' value; back'].
[$[] -> ['. [ss peek isZero] whileFalse: ['].
[$]] -> [']']} otherwise: [''])].
bf close. in close.
World findATranscript: nil.
Compiler evaluate: st contents
|




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 ]