BrainFuckとは
難解プログラミング言語の一つ。
オシシメサイトはhttp://www.google.co.jp/
以下俺的見解
・スレッドタイトルに全命令が入る素敵な言語。
・1レス内に全命令のリファレンスが入る素敵な言語。
> ポインタをインクリメント
< ポインタをデクリメント
+ ポインタが示すメモリ位置のデータをインクリメント
- ポインタが示すメモリ位置のデータをデクリメント
. ポインタが示すメモリ位置のデータを出力
, ポインタが示すメモリ位置のデータに入力
[ ポインタが示すメモリ位置のデータがヌルなら対応する]までジャンプ
] ポインタが示すメモリ位置のデータがヌルじゃないなら対応する[までジャンプ
前スレ: BrainFuck Part.2 <[+-.,]>
http://pc11.2ch.net/test/read.cgi/tech/1177988460/
過去スレ: BrainFuck <[+-.,]>
http://pc11.2ch.net/test/read.cgi/tech/1036013915/
BrainFuck Part.3 <[+-.,]>
■ このスレッドは過去ログ倉庫に格納されています
2009/01/08(木) 12:09:18
2009/02/15(日) 13:34:23
魂が?w
2009/02/15(日) 14:31:34
>>79
++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
2009/03/15(日) 02:48:14
sage
2009/03/15(日) 14:53:08
age
2009/03/21(土) 19:00:51
sagi
2009/03/23(月) 17:43:14
いい加減飽きただろうがどうしても置換ネタ
> → r(right)
< → l(left)
+ → p(plus)
- → m(minus)
[ → s(start)
] → e(end)
. → o(output)
, → i(input)
BFの命令を上の表で対応する英字から始まる任意の英単語に置換して英文を作る。解釈の際に、記号や表で対応関係に無い英字から始まる英単語は無視される。
例) pineapple → +
例) She must go east. → [-]
Hello, world!↓
> → r(right)
< → l(left)
+ → p(plus)
- → m(minus)
[ → s(start)
] → e(end)
. → o(output)
, → i(input)
BFの命令を上の表で対応する英字から始まる任意の英単語に置換して英文を作る。解釈の際に、記号や表で対応関係に無い英字から始まる英単語は無視される。
例) pineapple → +
例) She must go east. → [-]
Hello, world!↓
2009/03/23(月) 20:55:06
普通に「読めない文字はスルーする」という従来通りの挙動でいいのでは
2009/03/23(月) 22:18:12
無駄に英文が長くなる 却下
2009/03/23(月) 22:19:31
88は86に対するレスね >>87でいいと思う
2009/03/23(月) 23:14:10
なんとか意味の通じる英文を・・・と考えての仕様だろうが
残念ながら君には50音版を作ってもらう
残念ながら君には50音版を作ってもらう
2009/03/24(火) 00:31:18
+ → E
- → A
> → T
< → I
[ → S
] → N
. → R
, → U
2009/03/24(火) 18:17:48
>>91
-<[<>+.,
-<[<>+.,
2009/03/24(火) 19:15:54
>>92
[<+][,.,
[<+][,.,
2009/03/26(木) 21:34:05
+ → いろはにほへと
- → ちりぬるを
> → わかよたれそ
< → つねならむ
[ → うゐのおくやま
] → けふこえて
. → あさきゆめみし
, → ゑひもせす
濁音・半濁音・小文字は清音と一緒
「ん」はスルー
- → ちりぬるを
> → わかよたれそ
< → つねならむ
[ → うゐのおくやま
] → けふこえて
. → あさきゆめみし
, → ゑひもせす
濁音・半濁音・小文字は清音と一緒
「ん」はスルー
2009/03/27(金) 04:37:11
ルール考えるのはいいけど、
それで自分でプログラム書いてみろってばさ。
それで自分でプログラム書いてみろってばさ。
2009/03/28(土) 15:17:10
Urban Muellerさんに言ってるんだな
2009/03/30(月) 23:42:15
もう痴漢ネタは秋田
2009/04/10(金) 11:23:47
ほしゅ
2009/04/16(木) 22:58:24
ほしゅう
100デフォルトの名無しさん
2009/04/25(土) 15:59:46 ごしゅう
101デフォルトの名無しさん
2009/05/08(金) 00:39:19 じ
102デフォルトの名無しさん
2009/05/15(金) 21:03:39 +
103デフォルトの名無しさん
2009/05/17(日) 20:47:00 []
104デフォルトの名無しさん
2009/05/17(日) 23:05:24 > > > > > >
105デフォルトの名無しさん
2009/06/04(木) 21:57:56 無ネタ
106デフォルトの名無しさん
2009/06/13(土) 16:24:34 +++[>+++<-]>[>+>+<<-]>->>++++++++++[<++++++++++>-]<------------.++++++<.>.<.>--.++<.>
107デフォルトの名無しさん
2009/06/20(土) 16:17:42 ]
108デフォルトの名無しさん
2009/06/22(月) 01:30:36 、
109デフォルトの名無しさん
2009/08/02(日) 21:49:41_.。ャぁて丕刀フ7ゎ。._
,.ィ炙ヲi≠┴⇒弍j込ス>。
. ,ィ升ヲナ'´ `゙'<弖心、
. ;夕フア´ \ホi心.
んfiУ ▽ij∧
从j'Y ∨iハ
. 斤W kい
|友カ }ソ川
. い叭 仄ガ
. Wi从 从ノリ
. ∀t△ ∧fリ/
゙マじへ、 /リiУ
\夊id、_ ,.イ!刋/
`マ才i「≧ェ。。.。。っ夭テ少'゚
`゚'' ミ芝玉竺壬云=‐'´
 ̄ ̄
110デフォルトの名無しさん
2009/08/03(月) 22:46:35 一応BFとして動くな
111デフォルトの名無しさん
2009/08/03(月) 23:31:46 [と]の個数があってればなんでも一応動くだろ
112デフォルトの名無しさん
2009/08/03(月) 23:52:00 個数が合っててもネスト構造がおかしかったら処理系によっては動かないだろ
113デフォルトの名無しさん
2009/08/04(火) 00:49:19 あー言い間違えた。そうそうそういうことが言いたかった
114デフォルトの名無しさん
2009/08/04(火) 16:49:05 というかム板じゃない他スレにも貼ってあったから無視したが
これはコードだったのか
これはコードだったのか
115デフォルトの名無しさん
2009/08/04(火) 17:49:22 BFコードとして解釈できないレスの方が珍しい
116デフォルトの名無しさん
2009/08/04(火) 19:41:55 処理系によっては動くおかしなネスト構造ってどういうやつ?
117デフォルトの名無しさん
2009/08/04(火) 21:46:45 [ ] ] [ [ ]
とかじゃね
処理系によっては過剰の ] をプログラムの終了と解釈するとかもあるので
そのような処理系の場合は正常に終了する
とかじゃね
処理系によっては過剰の ] をプログラムの終了と解釈するとかもあるので
そのような処理系の場合は正常に終了する
118デフォルトの名無しさん
2009/08/04(火) 21:47:47 ん、ちょっと言い間違えた
終了するかはともかく、正常に実行される
終了するかはともかく、正常に実行される
119デフォルトの名無しさん
2009/08/18(火) 21:46:42 BrainFuckでライブラリを書けば、どんな言語、どんな環境にも極めて簡単にポーティング可能!
BrainFuckライブラリを充実させることこそ我々の急務ではないだろうか!
BrainFuckライブラリを充実させることこそ我々の急務ではないだろうか!
120デフォルトの名無しさん
2009/08/18(火) 23:36:08 再入可能どころか再配置可能も怪しいぞ
121デフォルトの名無しさん
2009/08/20(木) 06:23:46122デフォルトの名無しさん
2009/08/25(火) 18:52:06 >>120
相対位置でできれば良いんじゃない?
相対位置でできれば良いんじゃない?
123デフォルトの名無しさん
2009/08/25(火) 23:08:59 まずは再入、再配置のライブラリを書いてみようか?
124デフォルトの名無しさん
2009/08/26(水) 02:46:50125デフォルトの名無しさん
2009/08/26(水) 11:09:01 中間言語→BFにコンパイルするコンパイラを作ればいいんじゃね
逆ポーランド記法な言語からのコンパイラならなんとかできるかな
逆ポーランド記法な言語からのコンパイラならなんとかできるかな
126デフォルトの名無しさん
2009/08/26(水) 11:30:45127デフォルトの名無しさん
2009/08/26(水) 22:42:52 どうせ有限なんだから時間さえあればいける
128デフォルトの名無しさん
2009/08/26(水) 23:31:10 ついでにBrainFuckを逆アセンブル?してCソースにするコンパイラもよろしく。
129デフォルトの名無しさん
2009/08/26(水) 23:43:45 それは最適化しなくていいなら簡単
130デフォルトの名無しさん
2009/08/27(木) 00:02:29 もちろん可能な限り元のコードの意味を推測して、それらしいコードを復元してほしい。
131デフォルトの名無しさん
2009/08/27(木) 00:22:41 今JSでそういうの書いてる
132デフォルトの名無しさん
2009/08/27(木) 17:47:54 期待
133デフォルトの名無しさん
2009/08/27(木) 19:07:31 がんばってくれ
134デフォルトの名無しさん
2009/08/27(木) 23:43:54 前スレより
http://www.clifford.at/bfcpu/bfcomp.html
A compiler for a c-like high-level language which generates brainf*ck code
http://www.clifford.at/bfcpu/bfcomp.html
A compiler for a c-like high-level language which generates brainf*ck code
135デフォルトの名無しさん
2009/08/29(土) 21:39:59 まだか?
2009/08/30(日) 08:20:26
>>128
guy shirts
guy shirts
137デフォルトの名無しさん
2009/08/31(月) 23:10:26 >134
linuxか・・・
linuxか・・・
138デフォルトの名無しさん
2009/09/01(火) 23:56:37 BrainFuckでビジービーバーゲームをやるのも面白いかもしれない。
http://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%BC%E3%83%93%E3%83%BC%E3%83%90%E3%83%BC
ここでやるのはスレチかな?
http://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%BC%E3%83%93%E3%83%BC%E3%83%90%E3%83%BC
ここでやるのはスレチかな?
139デフォルトの名無しさん
2009/09/02(水) 07:09:25140デフォルトの名無しさん
2009/09/02(水) 07:31:28 >>139
それはチューリングマシンの説明で、ビジービーバーゲームとは違う。ビジービーバーの要点は
>停止するまでにテープに 1 を最も多く出力するような n-状態チューリングマシンを見つけ出そう、というゲーム
だよ。
それはチューリングマシンの説明で、ビジービーバーゲームとは違う。ビジービーバーの要点は
>停止するまでにテープに 1 を最も多く出力するような n-状態チューリングマシンを見つけ出そう、というゲーム
だよ。
141デフォルトの名無しさん
2009/09/02(水) 07:43:26142デフォルトの名無しさん
2009/09/02(水) 07:56:56 ビジービーバーゲームの説明はそれでおk。
普通はチューリングマシンでやるところをBrainFuckでやってみようと。
普通はチューリングマシンでやるところをBrainFuckでやってみようと。
143デフォルトの名無しさん
2009/09/02(水) 08:03:58 まず遷移関数をどうやって
BFプログラムに変換するかが問題だな
BFプログラムに変換するかが問題だな
144デフォルトの名無しさん
2009/09/02(水) 17:55:03 状態数は、BFでいえばコードのバイト数と似たようなもんだよ。
だから、
同じバイト数のBFコードで、
より大きな10進数を標準出力に生成する
こんな競技になる。
だから、
同じバイト数のBFコードで、
より大きな10進数を標準出力に生成する
こんな競技になる。
145デフォルトの名無しさん
2009/09/02(水) 18:01:24 +[.]
じゃあかんの
じゃあかんの
146デフォルトの名無しさん
2009/09/02(水) 18:24:18147デフォルトの名無しさん
2009/09/02(水) 19:06:13 つまんないけど最強だろ
148デフォルトの名無しさん
2009/09/02(水) 19:10:37 ビジービーバーゲームでのプログラムは停止しなきゃいけないんだ。
じゃなきゃ比較なんて出来ないからな。
じゃなきゃ比較なんて出来ないからな。
149デフォルトの名無しさん
2009/09/02(水) 20:00:00 じゃこれ
[>+.]
ポインタがオーバーフローすれば止まる
[>+.]
ポインタがオーバーフローすれば止まる
150デフォルトの名無しさん
2009/09/02(水) 20:03:58151デフォルトの名無しさん
2009/09/02(水) 20:52:53152デフォルトの名無しさん
2009/09/02(水) 21:58:45 後出しルールうざい
153デフォルトの名無しさん
2009/09/02(水) 22:41:24 後出しルールって言うか>>138のリンク先に全部書いてあるのに読んでないのが悪いんだと思うんだが
154デフォルトの名無しさん
2009/09/02(水) 22:51:29 てか、一般的なBFの話をするなら無限長のテープじゃないとダメだろ
実装ではしょうがないかもしれないけどさ
実装ではしょうがないかもしれないけどさ
155デフォルトの名無しさん
2009/09/02(水) 22:56:09 テープの長さが有限だとチューリング完全にならない
156デフォルトの名無しさん
2009/09/02(水) 23:28:56 そうそう、実際の処理系じゃなくて理想の処理系で動かさないと。
157デフォルトの名無しさん
2009/09/02(水) 23:37:01 なあ、詳しい人教えてくれ。
ある100状態のチューリングマシンがあって、
そのチューリングマシンがΣ(100)ステップ後に停止したとする。
このチューリングマシンがΣ(100)ステップ後に停止することを証明しようとしたら、
その証明は少なくともΣ(100)文字程度のオーダーの長さになる。
これは正しい?
ある100状態のチューリングマシンがあって、
そのチューリングマシンがΣ(100)ステップ後に停止したとする。
このチューリングマシンがΣ(100)ステップ後に停止することを証明しようとしたら、
その証明は少なくともΣ(100)文字程度のオーダーの長さになる。
これは正しい?
158デフォルトの名無しさん
2009/09/03(木) 03:57:09159デフォルトの名無しさん
2009/09/04(金) 22:47:53 ほ
160デフォルトの名無しさん
2009/09/06(日) 18:28:26 ho
161デフォルトの名無しさん
2009/09/08(火) 00:22:48 h
162デフォルトの名無しさん
2009/09/10(木) 07:01:39 ho
163デフォルトの名無しさん
2009/09/10(木) 15:59:52 ++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
164デフォルトの名無しさん
2009/09/10(木) 19:50:09 >>163
グロ注意
グロ注意
165デフォルトの名無しさん
2009/09/15(火) 22:01:45 ほ
166デフォルトの名無しさん
2009/09/18(金) 23:51:37 +[ほ+]
167デフォルトの名無しさん
2009/09/21(月) 19:44:06 ho
168デフォルトの名無しさん
2009/09/22(火) 07:00:44 俺的にBrainFuckの文法に最小限の拡張を加えて最大限パワーアップさせるには
どうしたらいいか考えてみた結果次のようになった。
まず、メモリはテープではなく無限の高さを持つ2分木のようなものを想定。
L ポインタを2分木メモリの左の子へ移動
R ポインタを2分木メモリの右の子へ移動
U ポインタを2分木メモリの親へ移動
+ BFと同様
- BFと同様
. BFと同様
, BFと同様
[ BFと同様
] BFと同様
まあ、大体BFでlispのconsセルが使えるようなイメージ。
どうしたらいいか考えてみた結果次のようになった。
まず、メモリはテープではなく無限の高さを持つ2分木のようなものを想定。
L ポインタを2分木メモリの左の子へ移動
R ポインタを2分木メモリの右の子へ移動
U ポインタを2分木メモリの親へ移動
+ BFと同様
- BFと同様
. BFと同様
, BFと同様
[ BFと同様
] BFと同様
まあ、大体BFでlispのconsセルが使えるようなイメージ。
169デフォルトの名無しさん
2009/09/22(火) 14:13:50 そんなもん普通のBFの範囲でできるがな
170デフォルトの名無しさん
2009/09/22(火) 14:17:53 BFはチューリング完全だから
変わらないぞ
変わらないぞ
171デフォルトの名無しさん
2009/09/22(火) 16:31:49 この拡張でコードが劇的に短くなる例が欲しいな
172デフォルトの名無しさん
2009/09/22(火) 17:20:27 んで、最終的にアセンブリやCになる・・・と
拡張=BFの死なんだよな
過去ログの通り、拡張行為すればするほどBFの簡潔さが失われていき
別にBFを使う理由がなくなる
拡張=BFの死なんだよな
過去ログの通り、拡張行為すればするほどBFの簡潔さが失われていき
別にBFを使う理由がなくなる
173デフォルトの名無しさん
2009/09/22(火) 18:50:58 うだうだ言ってないでインタプリタとコンパイラかけ
500バイト以内で書けたら合格にしてやる
500バイト以内で書けたら合格にしてやる
174デフォルトの名無しさん
2009/09/22(火) 20:51:37 既出じゃね?
175168
2009/09/22(火) 22:56:17 んが。既出なのか。ま、既出でも全然不思議ではないけど。
一応このスレの中はチェックしたつもりだったけど
前スレはチェックしてないんだよね。
>>168のプログラム言語をBTBF(BinaryTree BrainFuck)と呼ぶとして、
BTBFのコードをBFのコードに変換するトランスレータを実装しろってのは
学生向け演習問題として良問じゃね?
一応このスレの中はチェックしたつもりだったけど
前スレはチェックしてないんだよね。
>>168のプログラム言語をBTBF(BinaryTree BrainFuck)と呼ぶとして、
BTBFのコードをBFのコードに変換するトランスレータを実装しろってのは
学生向け演習問題として良問じゃね?
176デフォルトの名無しさん
2009/09/22(火) 22:59:16 >175
まだ出てなかったぞ
まだ出てなかったぞ
177デフォルトの名無しさん
2009/09/22(火) 23:06:44 コード短くする役に立つとすればこんなのかなぁ
まあいらないけど
x 直前のコマンドを*p回繰り返す
* p=*p
& *p=p
c 最も近い前方の[にジャンプ
b 最も近い後方の]にジャンプ
まあいらないけど
x 直前のコマンドを*p回繰り返す
* p=*p
& *p=p
c 最も近い前方の[にジャンプ
b 最も近い後方の]にジャンプ
178168
2009/09/22(火) 23:42:17 >>172
俺は拡張=BFの死とは思ってないんだよね。
シンプルさがBFの価値なのは同意だけど、
もっともシンプルなチューリング完全言語BFと
Cやlispといった高級言語の生産性の溝がどれだけあるかってのを
把握できるのもBFの存在価値だと思う。
だから「BF+α=lisp」のαの部分がどれだけあるのか、俺は興味があるです。
#どっちもチューリング完全だから等価って乱暴な議論はなしね。
俺は拡張=BFの死とは思ってないんだよね。
シンプルさがBFの価値なのは同意だけど、
もっともシンプルなチューリング完全言語BFと
Cやlispといった高級言語の生産性の溝がどれだけあるかってのを
把握できるのもBFの存在価値だと思う。
だから「BF+α=lisp」のαの部分がどれだけあるのか、俺は興味があるです。
#どっちもチューリング完全だから等価って乱暴な議論はなしね。
179デフォルトの名無しさん
2009/09/23(水) 00:05:02 純lispはBFと同じくらいシンプルだけど考え方が全然違うから
そんな+α的な物はない
そんな+α的な物はない
180168
2009/09/23(水) 00:08:29 ないわけはない。
チューリング完全的に考えて。
極端な話、理屈の上ではBFでlispインタプリタは書けることになっている。
それがどれくらい大変か?と言う問題はある。
lispでBFインタプリタを書くのは簡単だけど、
BFでlispインタプリタを書くのはきつそう。
チューリング完全的に考えて。
極端な話、理屈の上ではBFでlispインタプリタは書けることになっている。
それがどれくらい大変か?と言う問題はある。
lispでBFインタプリタを書くのは簡単だけど、
BFでlispインタプリタを書くのはきつそう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【高市首相】「日本人が日本各地を旅行するのも大切」 中国からの渡航自粛巡り [ぐれ★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★3 [阿弥陀ヶ峰★]
- ファミマ「遊べるコンビニ」へ ゲーム機を5000店舗に設置方針 IP強化 [七波羅探題★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★4 [少考さん★]
- 町山智浩氏の「パンダ中国への返還」めぐって私見述べるも共感集まらず「『パンダで暮らす人々』って誰?」「上野でグッズ売ってる人?」 [muffin★]
- 【東京・赤坂の“個室サウナ店夫婦死亡火災”】 タオルがサウナストーンに触れたことで発火したか 警視庁 [ぐれ★]
- サウナで火災が起きて避難しようとしたらドアノブが外れて非常ボタンも機能しなくてパニックになってる男女の画像ください
- 永野芽衣って透明感あったっけ
- 地獄のニラ玉丼できた
- 俺の口癖が「はは、こりゃ手厳しい」なんだが
- 蛭子さんとかいうヤバい人いるでしょ
- ガチで日本の衰退やばくねって思った、身近な出来事 [943688309]
