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 - R
Wikipediaの説明をそのままコードにしただけですが・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | bf <- function(str){
cat("ptr <- 1", "\n")
cat("buf <- numeric(1)", "\n")
for(c in unlist(strsplit(str, ''))){
switch(c,
'>' = cat("ptr <- ptr+1; if(is.na(buf[ptr])) buf[ptr] <- 0", "\n"),
'<' = cat("ptr <- ptr-1; if(is.na(buf[ptr])) buf[ptr] <- 0", "\n"),
'+' = cat("buf[ptr] <- buf[ptr]+1", "\n"),
'-' = cat("buf[ptr] <- buf[ptr]-1", "\n"),
'.' = cat("cat(rawToChar(as.raw(buf[ptr])))", "\n"),
',' = cat("buf[ptr] <- as.integer(charToRaw(readLines(n=1)))", "\n"),
'[' = cat("while(buf[ptr]){", "\n"),
']' = cat("}", "\n"))
}
}
|




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 ]