BrainFuck Part.3 <[+-.,]>

■ このスレッドは過去ログ倉庫に格納されています
2009/01/08(木) 12:09:18
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/
2011/05/01(日) 11:21:13.15
CPUと外部割込み機器の通信みたいになってきたな…
もしくはシステムコール呼び出しか…w
2011/05/03(火) 00:12:38.86
http://ray.sakura.ne.jp/asm/index.html
423デフォルトの名無しさん
垢版 |
2011/05/06(金) 10:25:20.65
>>410
プログラマ向けのパズルみたいなものですよ
2011/06/05(日) 11:24:55.74
「ほむほむ」だけでプログラミングできる言語登場 わけがわからないよ
http://nlab.itmedia.co.jp/nl/articles/1106/02/news040.html
2011/06/05(日) 16:17:20.90
なんだBF系じゃないのか
長門有希とかあったよなぁ
2011/06/05(日) 16:40:10.65
BFジェネレータマダー
2011/06/05(日) 17:21:52.56
BF コンパイラが BF で記述される日はまだまだ遠い‥‥。
2011/06/05(日) 17:30:41.00
ほむほむ出力命令しかないのか
2011/06/05(日) 17:46:47.91
入力命令もあるよ
標準入力を標準出力にコピー

ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ
2011/06/05(日) 18:22:55.31
Scalaなんだな。
うまくコンパイルできないのだが。
2011/06/05(日) 20:18:58.75
なるほど、解らん
2011/06/06(月) 00:58:31.39
>>427
ttp://code.google.com/p/awib/
2011/06/06(月) 20:26:44.71
>>432
へー、こりはおどきました。thanks
2011/07/02(土) 11:22:56.87
土方に何をいわれても
2011/07/02(土) 19:43:24.37

マルチスレッド対応まだ?
SIMDいつ対応するの?
グラフィックどうするの?
2011/07/04(月) 16:35:35.78
>>429
↓↓↓↓↓↓
「「「「「「「「「 入力命令もあるよ 」」」」」」」」」(キリッッ!!!!キリッッ!キリッきリッッッッッ
↑(キリきリッ!!!!
↓↓↓↓↓↓↓↓↓
「「「「「「「「「 標準入力を標準出力にコピー 」」」」」」」」」(←キリッッ!!ッッッッ!!!!
↑↑↑↑↑↑↑↑↑(キリッッ!!!!
↓↓↓↓↓↓↓↓↓↓
「「「「「「「 ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ 」」」」」」」(キリッ!キリッ!!!キリ!!!!!!
↑↑↑↑↑↑↑↑↑(キリッ!!
死ねゴミ
2011/07/16(土) 13:33:21.82
また糖質が暴れてんのか
2011/07/16(土) 14:03:33.90
キ ポインタをインクリメント
リ ポインタをデクリメント
↑ ポインタが示すメモリ位置のデータをインクリメント
↓ ポインタが示すメモリ位置のデータをデクリメント
き ポインタが示すメモリ位置のデータを出力
り ポインタが示すメモリ位置のデータに入力
「 ポインタが示すメモリ位置のデータがヌルなら対応する」までジャンプ
」 ポインタが示すメモリ位置のデータがヌルじゃないなら対応する「までジャンプ
2011/08/26(金) 08:39:55.96
sage
2011/10/10(月) 17:08:24.66
http://www.forest.impress.co.jp/docs/review/20111006_481829.html
誰得w
2011/10/10(月) 18:04:50.60
そこから来たぞw
2011/10/17(月) 14:57:12.47
ブレインファック娘マダー
2011/10/20(木) 03:13:06.37
今度はKQか。
2011/10/21(金) 00:33:17.39
すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?
2011/10/21(金) 10:54:05.09
>>444
日本語でOK!
つーか、きっとスレ違いだ。
2011/11/19(土) 20:12:50.22
ポインタを例えば100進めるのに、>を100回書かずもっと短く書く事って可能?
俺の頭じゃやり方が思いつかなかった
2011/11/20(日) 00:49:41.35
>>446
ループを使うんだよ
100=10*10

++++++++++[>++++++++++<-]
2011/11/20(日) 03:28:44.77
えっ
2011/11/20(日) 06:07:40.34
+を100じゃなくて、>を100って話でしょ
2011/11/20(日) 06:16:52.90
メモリ破壊しながらなら出来る?
2011/11/20(日) 13:23:17.26
現在地から100番地先まで全部ぶっ壊しても良ければ
[-]>++++++++++[<++++++++++>-]<[>[-]<[->+<]>-]
2011/11/20(日) 22:01:13.38
2〜99番地のデータを0〜97番地に退避しながら100まで移動
0〜1番地は破壊される
[-]>[-]++++++++++[<++++++++++>-]<--
[[>+<-]>>[<<+>>-]<-]>>

100まで行った後にデータを元に戻しながら0まで戻るのも書いてみたけど、
合計すると100バイト超えちゃったよ
2012/01/08(日) 23:01:39.83
2012/01/24(火) 00:09:44.35
misaをLinuxに導入できないんだが
2012/01/25(水) 16:50:44.57
ttp://www.hevanet.com/cristofd/brainfuck/dbfi.b
ここのより短いインタプリタってある?
456デフォルトの名無しさん
垢版 |
2012/02/01(水) 04:20:22.93
これって一応C言語並に複雑な事出来るらしいけど
実際そこまで作りこんだソフトとかあんの?
2012/02/01(水) 14:05:51.04
あるわきゃない
2012/02/21(火) 12:51:21.12
書きたいなら止めない
2012/03/17(土) 10:19:23.06
標準入力と標準出力しか無いからな。出来ることは自ずと限られてくる。

そこでだ、画面同期('?')や出力位置設定('X','Y')といったゲーム用命令を追加した拡張BF
"a brainf**k console develop environment for game" (ABCDEFG)
というのを考えた。
お前ら実装してくれていいぞ。
2012/03/17(土) 10:51:14.07
標準入出力があればXと通信できる
2012/03/17(土) 11:26:35.24
お前ABCDEFGが言いたかっただけちゃうんかと
2012/03/17(土) 14:05:06.19
エスケープシーケンスでいいじゃんね
2012/04/20(金) 00:55:10.37
這い寄る混沌:「(」・ω・)」うー(/・ω・)/にゃー」でプログラムが書ける言語「Nyaruko」登場 - ねとらぼ
http://nlab.itmedia.co.jp/nl/articles/1204/19/news112.html

この手のネタは正直お腹いっぱいだけどまあ一応
2012/04/28(土) 09:01:42.47
http://toro.2ch.net/test/read.cgi/tech/1160406514/573

これだから年寄りは……
2012/06/29(金) 23:15:40.90
BFのほかにミニマルな言語ってないのかね
2012/06/30(土) 00:44:26.73
unlambdaとかpure lispとか。
2012/06/30(土) 02:16:07.04
Grassとか。
2012/06/30(土) 15:20:20.63
lazy-Kのiotaとかjotとか
2012/07/02(月) 02:52:05.32
ttp://code.google.com/p/zozotez
bfで書いた pure lispなんてのもあるんね
2012/07/27(金) 05:29:25.22
デバッグ支援ツールみたいなものを作ったけど需要ある?

http://www.dotup.org/uploda/www.dotup.org3242807.7z.html
2012/07/27(金) 05:55:58.63
なくもない。
が、今は余裕がないので
暇になったら貰う。
472470
垢版 |
2012/07/29(日) 22:08:54.95
>>470は期限切れ削除されました。必要な方いらっしゃったらレス下さい。
2012/07/30(月) 16:08:41.10
ttp://www.hevanet.com/cristofd/brainfuck/dbfi.b
なんでインタプリタとして作動するのかだれか解説してください
2012/07/30(月) 18:27:46.26
ここに解説があるよ
http://www.hevanet.com/cristofd/08.html
2012/07/30(月) 22:08:46.02
>>474
thx
476470
垢版 |
2012/08/01(水) 09:14:17.07
http://www.dotup.org/uploda/www.dotup.org3262233.7z.html

ステップ実行,ブレーク,コンソール出力とかできます.
メモリは勝手にダンプします.HEXとASCII文字(21-7E)で1行に8つずつ吐きます.
実行した命令の数を吐きます.かかった時間も吐きます.
入力は,事前にたくさん打っとけば,なくなるまで一時停止せずに使います.何も入力されていなければ一時停止します.
Cっぽい擬似コードも吐きます.
477デフォルトの名無しさん
垢版 |
2012/08/29(水) 15:11:57.69
BFって気合次第でバイナリファイルの出力とかできるんじゃね?
と思い、bmp出力をさせてみた。
http://www.mediafire.com/?r853ewgh62fv11k
2012/11/24(土) 23:06:48.77
+++++[>++>+++[<]>-]>[<+++++>>+++
++>+++<<-]<[>++<-]+++[>>++<<-]>>+.<+.<+
++[>++<-]>+..<++[>+<-]>+.>>++.[<]++
+++[>>+++<<-]>>.<.<++[>++<-]>-.>>>++
+[<<<-->>>-]<<<.<++++[>--<-]>.>>[<+>-]++[<-->-]<.

やっとできた(´・ω・`)
2012/11/25(日) 00:27:44.86
++++[>+++<-]>[<+++++++>->+++++<]+
+[<-->-]>[<++>>++<->-<]++++[>>+++
++<<-]>[<++>-]>[<<->+>-]+++[>++
+<-]>+<<[>>+<<-]>>[<+<+[>]<-]<[<]>.>>--
-.>++>>++++[>++<-]>[<++>-]<[<+>-]<.<.[<]>.>
>.>>.<.[<]>.>>.[<]>.>>.>>.[<]>.>>.>.[<]>.[>]+
+[<<<++>>>-]<<<.[>]+++[[<]>>--[>]<-]<[<]>>.[>]+
++[<<<++[>]<-]<<<+.[<]>++.>>---.[>]>++
++[<++++>-][[<]>+[>]<-]<[[<]>+[>]<-]<[<]>+.++.
2012/11/26(月) 21:01:14.60
最近、Brainfuckにはまりました。
JavaScriptインタプリタを作ってみましたので、ぜひ使ってみてください。
http://upup.bz/brain_f.html
2012/11/26(月) 21:13:54.07
JavaScriptをBFで書いたのかと思って期待したじゃないか
2012/12/27(木) 21:09:24.77
そろそろ実用的なライブラリを
つくれうぜ
2012/12/27(木) 21:33:56.78
何番地と何番地を引数にして何番地に返すってか?
2012/12/31(月) 01:42:33.47
実行環境で一番おすすめのってどれ?
ぐぐったらたくさん見つかるのだけどどれもイマイチ
2012/12/31(月) 01:51:12.51
>>484
大して難しくないんだから自分で「イマイチ」じゃないように作ればいいじゃん。
尤も、他人に「イマイチ」である理由を説明できない位だと難しいかも試練が。
2012/12/31(月) 03:03:23.04
ttp://4mhz.de/bfdev.html
2012/12/31(月) 13:03:46.90
brainfuckでbrainfuckインタープリタを作ってみた
2012/12/31(月) 13:18:52.64
http://www.hevanet.com/cristofd/brainfuck/dbfi.b
2013/01/09(水) 05:22:09.66
部室の入り口にbrainf*ckのコードが書いてあった
2013/01/09(水) 21:44:15.84
>>489
うp
2013/01/22(火) 23:39:43.75
変形版Brainfuck

ジャンプ先のプログラムカウンタの値を記憶するためのスタックを用意しておく

  > ポインタをインクリメント
  < ポインタをデクリメント
  + ポインタが示すメモリ位置のデータをインクリメント
  - ポインタが示すメモリ位置のデータをデクリメント
  . ポインタが示すメモリ位置のデータを出力
  , ポインタが示すメモリ位置のデータに入力
  * 現在のプログラムカウンタの値をスタックに入れる
  / ポインタが示すメモリ位置のデータがヌルでなければ、スタックから取り出した値までジャンプ
   ヌルならばスタックから値を抜き去り、次の命令にジャンプ


本家BFの場合は対応する括弧を調べる作業が必要だが変形版だとその必要はない
そのかわり後方へのジャンプはできないが、原理的には本家と同じくチューリング完全(…だと思う)
2013/04/05(金) 03:22:33.38
ぼくもはじめます
2013/04/13(土) 20:04:41.89
>>491
後方ジャンプがないとチューリング完全にならないと思う
2013/05/04(土) 01:56:17.45
代入式を導入してみたい
2013/05/05(日) 18:18:52.80
どこになにを代入すんだよ
2013/05/05(日) 20:44:08.00
=(>>)
二つ後の値を現在の場所に代入

とか
497デフォルトの名無しさん
垢版 |
2013/05/05(日) 21:43:34.84
いっそのこと膨大な糖衣構文を作ったほうがいいかと
2013/05/05(日) 21:51:36.40
"Syntactic sugar causes cancer of the semicolon."
2013/05/05(日) 21:55:07.84
(>)|(>>)
1つ後の値と二つ後の値のビット論理和を現在の場所に代入

(>)||(>>)
ビット論理和じゃなくて普通の論理和
2013/05/05(日) 21:59:04.74
(>)|(>>))
2013/05/05(日) 22:00:24.43
((>)|(>>))|((<<)|(<))
1つ後の値と二つ後の値のビット論理和と
2つ前の値と一つ前の値のビット論理和の
ビット論理和を現在の場所に代入
2013/05/05(日) 22:02:34.14
([[[[[)<
2013/05/05(日) 22:14:45.86
Error: No right blanket
2013/05/05(日) 22:40:48.91
Use newspaper, instead.
2013/05/05(日) 22:52:05.37
([[[[[)< >(]]]]])
2013/05/06(月) 00:41:08.24
メモリフィールドが階層的になってて
特定の番地を全ての階層で同期とかできると楽しそう
507デフォルトの名無しさん
垢版 |
2013/05/06(月) 08:26:09.23
オブジェクト指向のBrainFuckとか作れないかな?
2013/05/06(月) 08:31:01.82
コンパイラ大きくしたら意味無いじゃん(至言)
2013/05/06(月) 09:40:04.34
プリプロセッサを巨大化させよう(提案)
2013/05/06(月) 13:55:57.84
fork機能つけようぜ
2013/05/06(月) 19:27:05.67
brainfuck拡張するなら既存の言語でいいじゃん?
2013/05/06(月) 19:33:06.10
ぐぬぬ
2013/05/07(火) 03:27:27.06
ぐ  ポインタをインクリメント
ぬ ポインタをデクリメント
2013/05/10(金) 21:00:06.63
入力された文字列の文字数の取得なんてできるんですかね
2013/05/10(金) 21:04:10.53
[;>+<].

わかんね

そもそもint[]の要素数とか無いだろ
2013/05/11(土) 01:48:40.71
文字入力は入力された一文字をポインタが指すメモリに代入するだけだろ
文字列を入力しているのは処理系がバッファを使ってるだけなんでは
2013/05/11(土) 20:01:40.22
>>515
最後は「>.」じゃないかな
あと、文字数が256以上の時と、マルチバイト文字を含む場合にも対応できるようにしたいね
2013/05/28(火) 14:26:09.78
ためしに 256回回る空ループを書いてみてくれ

それを見れば >>514 も安心して成仏することだろう
519デフォルトの名無しさん
垢版 |
2013/05/28(火) 21:10:00.01
+[+]

こんなんでいいの?
2013/05/28(火) 23:01:12.42
文字入力は呼び出し側の責任としても
ループ回数はコード内に書かれるべき…じゃないのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況