トップ «前の日記(■2004-04-04) 最新 次の日記(■2004-04-09)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|07|10|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2004-04-07

* [今月のAcme] Acme::BrainFuckB!

  ふとCPANでみかけたお馬鹿モジュールAcme::BrainFuckBrainF**k(今更伏せ字にしてどうする?)というのはプログラミング言語だそうで、覚えるのは大変簡単にみえます。その簡単さたるや、Perlの比ではありません。何しろたった8個しか命令がないのですから。でもこの言語でチューリングマシンをつくれるらしく、つまり現在のコンピュータができることは、理論上は何でもできるということですか。
  今、永遠に続く一直線の箱が並んでいまして、その上にポインタが一つ置いてあります。

+ ポインタのある箱の値に1足す - ポインタのある箱の値から1引く > ポインタを一つ前の箱に進める < ポインタを一つ後ろの箱に戻す , 入力されたデータを今いる箱の値に入れる . 今いる箱の値を出力する [ 現在の箱の値が0ならポインタを  対応する]の後ろに移動する ] 対応する[にポインタを戻す

  ご覧のように、必要なのは上の8種類だけです。で、実際にやってみます(Acme::BrainFuckにあるサンプル例から)。

+++[>++++++<-]>

  この魚の骨みたいのが、3×6の計算で、(最後にポインタが乗っている箱は)18になります。う〜ん、こりゃ大変。いつものようにperldocjpに登録しましたので、perldoc.jpからブラウズできます。

[]