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/
2010/07/10(土) 08:20:05
有難うございます。
でもどうして256何ですか?
2010/07/10(土) 08:55:40
http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88_(%E6%83%85%E5%A0%B1)
2010/07/10(土) 09:53:40
有難うございます。
符号無しで0から255の意味が最初分かりませんでしたが255から+したら0に戻るんですね
何千って数値が行くと思っていました
2010/07/10(土) 14:12:28
>>319
どうでもいいけどLinuxの実行バイナリのサイズ大きいな
静的リンクするとこんなにでかくなるのか
以下に本元の小ささの凄さが分かるわ
2010/07/12(月) 01:23:09
バイナリ配るって発想が・・・・
2010/07/12(月) 02:27:30
つーか32bitでUbuntuならARMでも動くのかとか突っ込みたくなるな
2010/07/12(月) 11:10:21
そういやCで書かれたBrainFuckのインタプリタのソースコードって公開されてなくないか?
JSとかは良く見るけどさ
328デフォルトの名無しさん
垢版 |
2010/07/12(月) 12:23:37
逆じゃね?

一番多くサンプルあるのがCだろ
実装が楽だし、よくポインタ理解度チェックとして初心者の練習問題に使われてるし

歴史的経緯から考えてもCが多いだろうよ
2010/07/12(月) 15:11:14
ARMだったらCよりThumbで書いた方が楽しそう
2010/07/12(月) 17:07:05
thumbはマゾいな
楽しさなら個人的にはarmの方が上だなぁ
2010/07/15(木) 21:10:21
新しいesolang覚えたらHelloWorldとQuineの次は大体BFインタプリタ
332デフォルトの名無しさん
垢版 |
2010/07/15(木) 23:11:09
BFのQuine書けるやつは凄い
2010/07/16(金) 15:37:19
BFインタプリタ作ってみようと思ったが[][][]のようにループが複数ある時どう書けばいいの?
[[]]とか中に複数あるならいいんだけど、[][]と離れると動かない
2010/07/16(金) 19:07:44
バックトラックのときに"]"の数を数えるカウンタを用意して、
"]"が来たらカウンタを増やす
"["が来たらカウンタを減らす
カウンタが0のときに"["が来たら、そこに飛ぶ。
でいいと思うよ。
2010/07/22(木) 03:16:23
こっちの方が構文が複雑だな
http://extreme.pcgameshardware.de/attachments/64656d1232652813-fallout-3-das-uberlebenshandbuch-terminal-60-.jpg
2010/07/22(木) 08:14:33
FO3か。それメモリダンプからパスワード当てるって設定だから、
構文も何もないよ。
2010/07/22(木) 12:25:38
女の没論理性はいかんともし難い。
2010/07/22(木) 12:43:24
仕事中暇だったから、上のbr系使ってhelloworldを出力するCソースを吐き出し
それをビルドして実行させてみた

++++++++[****{*****{*************}}-]***|>{{|+>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|<<<
<<<<<<<<<<<++++++>----->++++>+++++++++++++>---->--->}}&{>&++++++++++++++++++++>
+++++++++++>++++++++++++>---->+>+++++++>&++++++>>|}|+++++++++++++++++++>{{{&+++
+++++++>}|+>|++++++>|++++++++++++>}}|--->{{|+++++>|------->|+>|++++++>}|>|+>{|+
++++++++++++++++++>++++++++++>}}///|>|>|>|>{{|++++++++>|+++++++++++++>|++++++++
++++>|+++++++++++>}|>}|++>{{|>++++++[<----->-]<-->|--->|++++>|++++>|+++++++>}|+
+++>}|>{{|+++++++++++++++>|+++++++>|++++++++++>|++++>|---->}}|+>|++>{|+>|>++++[
<+++++>-]<->++++++++++>}|>|>|>|>{{|++++++++++>|--->|++++++++++++>|+++++++++++++
>|++++++++++>|++++++>}}|>{|++++++++>|>++++[<+++++>-]<->++++++++++>{|>+++++[<+++
+>-]<+@

./braineasing hello.txt > hello.c && gcc -o hello.o hello.c && ./hello.o && rm hello.o hello.c

ふぅ…何やってるんだろ俺…
2010/07/22(木) 14:09:55
暇すぎるだろw
俺にその暇分けろ!
2010/07/22(木) 15:43:41
暇は作り出すものだ
2010/07/22(木) 15:47:44
暇乞い
2010/07/22(木) 19:13:26
俺もやろうとしたらめんどくさ過ぎてやめたw
何時間掛かったんだ?
2010/08/19(木) 23:07:17
おい、おまえら向けのサイトができてたぞ。
SqueakやScartch 系列のビジュアルプログラミング言語だが、かなり難解

衝突プログラミングがキモ

プログラミン | 文部科学省
http://www.mext.go.jp/programin/

ドラッグ&ドロップで簡単プログラミング 文科省が子ども向けに公開、まとめサイトも登場 - ITmedia News
http://www.itmedia.co.jp/news/articles/1008/19/news082.html

まとめ:プログラミン作品ギャラリー 『プログラミンでつくったよ!』を集めるサービス
http://programin.jp/


サンプルのジャンケンとシューティングを見ればできることがわかるとおもう

加算器
http://www.mext.go.jp/programin/share/?share_id=afde3d7c491b1839b35fe89ab8bf9dd0
2010/08/20(金) 22:13:12
プログラミンでbrainfuckきてたw

作りかけのbrainfuck: http://bit.ly/cpn2FL

瓶詰堂日記
http://www.binzume.net/diary/2010-08-20#A1
345デフォルトの名無しさん
垢版 |
2010/08/20(金) 22:13:35
落ちそうになってるのでage
2010/08/20(金) 23:05:28
sage
2010/08/20(金) 23:58:38
sageでも落ちないよ
2010/09/13(月) 05:39:26
あげ
2010/09/25(土) 22:52:38
Malbolgeを読める、または書ける香具師っているのかな?w
2010/09/26(日) 05:21:38
某大学の研究でHello Worldは書けたらしいが…
読むのは無理だろw
2010/11/02(火) 02:10:50
自作Brainfuck系難解プログラミング言語 Braincunt (ブレインカント) の仕様とインタプリタを公開しました。
http://www.boleros.x0.com/doc/ktlwiki/index.php?Braincunt

特別な技術も何もありませんが。
2010/11/02(火) 02:15:56
拡張飽きた
2010/11/02(火) 07:58:58
シンプルさが売りなのにごてごて付け足してもね・・・
誰もそれでプログラムを書こうとするはずない
2010/11/02(火) 08:17:33
むしろ命令を減らすほうに力を注ぐべきだな…
2010/11/02(火) 12:20:50
全メモリの正負および左右の位置を反転させるコマンドを入れれば+-と<>は節約できる?
2010/11/02(火) 13:32:32
できるね
それを@とすると、
< → @>@
- → @+@
と書き換えればおk
2010/11/02(火) 13:40:54
それでは美しさに欠ける
2010/11/02(火) 13:43:28
(@-@;)
2010/11/02(火) 15:38:46
というか、単に記号を減らしたいだけなら
> → 000
< → 001
+ → 010
- → 011
っていうふうに置き換えれば記号数は2個だ。
2010/11/02(火) 16:24:23
http://www.sksk.info/a.html
記号数1
2010/11/02(火) 16:48:19
>273を置換した。(フォントにも拠るだろうけど)場所を取らないw
;;;lllllllllli:l::l;;;'I:i:llll;;llllll;llllllllll::'Illlll
lllll;;i::l;;;;l::'Illlli;lllll:'I;;i:l:l;;'I;llllli:llllll
l;'I:.::::'''''.lllll.;;'.::''.;;;'''.:l.l.;;'''.:::.;;''.l
.:'.lllll.::lll.:llllll.;;;'.:ll.:::.;;;;l.::'.;;;.;.::::'.
;;''''''''.::''''.lllll.:''''''.l.:.;;;;;lllllll.:::::.;;;;
;;....::::ll.ll.'''''''''.lllll.;;;'''''''.:lllll.:::'.''''
''.;;;ll.'''.::''..lll.;;;;.:lll.:::.lll.''''''.;;'.;;l.'::
''''''''.::ll.:.lllllll.;;'''.:::.;;;;;;....::::llll.;;llll
lllll.;'''.l.:::.''''.;;;;.:::::lllllll.;;.:::.;;;;;llllllll.
2010/11/02(火) 17:04:38
bfコードをURLに圧縮してそのURLに飛ぶとすぐに実行できるサービスマダー?
2010/11/02(火) 19:12:54
>>355-360
それらは命令をエンコードして記号数を減らしてるだけで、命令数は相変わらず8だよね。
2010/11/02(火) 20:19:41
これ以上減らしたらなんも出来なくなるだろ・・
2010/11/02(火) 21:14:31
>>355は立派に一命令だろう
2010/11/02(火) 21:15:19
記号数だけではなく内部状態数も気にしないとね。
2010/11/02(火) 21:27:38
全メモリを書き換えるんだと思えば状態数は増えない
2010/11/02(火) 21:31:43
ttp://ja.wikipedia.org/wiki/Brainfuck
>開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。
これ大事
処理が増えてはダメだろ
2010/11/02(火) 21:34:53
コンパイラがなるべく小さくなるつっても
コンパイラの言語にもよるからなぁ
2010/11/02(火) 22:53:30
perlインタプリタをperlで書けば確実にBFより短く書けるからな
2010/11/03(水) 01:30:04
コンパイラを何か勘違いしてないか?
2010/11/03(水) 01:42:32
どういうCPUかにもよるよなあ
2010/11/03(水) 05:08:07
判ってない香具師が間欠泉的に置換ネタに走るスレ
2010/11/06(土) 15:15:15
命令数維持または微増で可読性を大幅に高めるた言語ってないのかね
2010/11/07(日) 15:01:52
それは知らないけど、Cのプリプロセッサ使って書いたら楽になる気はする。
376デフォルトの名無しさん
垢版 |
2010/11/09(火) 02:20:18
>>362
http://ideone.com/1cNvO

URLに圧縮されてるぞw
2010/11/09(火) 07:46:10
>>376
これは知らなかった
確かにそれっぽいけど便利なのか・・・?
378デフォルトの名無しさん
垢版 |
2010/11/10(水) 09:14:31
>>377
BrainFuckに限らず、長いソースを掲示板に貼るはるとか、
2chに貼るとソースコードのライセンスうんたらかんたらとか
その他のサンプルソース実際に動かしたらこうだぜ、ってときに便利だよ
379デフォルトの名無しさん
垢版 |
2010/11/10(水) 09:15:47
>>377
一応マジレスすると、短縮URLみたいなもんだろうけどね
DBのidみたいな一意のもを常に短くなるようにhash化してるようなもんだろ。

多分同じソースコードを貼っても同じURLにならないと思うよ
2010/11/10(水) 12:24:02
>>378-379
処理結果が表示されてたから処理系組み込んであるのかなって思ったけど
やっぱりこれbrainfuckを動かすためのものじゃないよね
URLはハッシュだろうと単にBFコードを圧縮したものだろうとどっちにしろ読めないからいいけど
やはり専用のサイトがあったほうが便利
2010/11/10(水) 12:33:41
いや処理系が組み込んであるよ
brainfuckを含む多言語に対応してるだけ
2010/11/10(水) 13:06:08
まじかよ
使い方はよくわからんがすげーな
383デフォルトの名無しさん
垢版 |
2010/11/11(木) 09:20:46
>>380
疑問に思ったら、トップページくらい見ろw

http://ideone.com/

この手のオンラインの処理系はいくつかある
今気づいたら、ここUnlambdaやwhitespaceまであるし誰得なんだよ
2010/12/10(金) 18:05:07
あげ
2010/12/24(金) 23:32:39
[]は不要
2010/12/24(金) 23:33:41
bFでマルチスレッドできないの?
mallocできねえの?
2010/12/24(金) 23:39:59
C→bfトランスレータがどっかにあったはず
2010/12/24(金) 23:42:19
>>386
bfでCのソース吐き出して
コンパイルコマンド打ち込め

2011/02/01(火) 16:40:33
携帯用のFlashで遊べるのってまだどこかに残ってる?
2011/02/17(木) 07:30:40
ttp://mits.s59.xrea.com/flash/down.php?id=32&h=1
2011/02/17(木) 14:17:38
>>390
ありがとう
2011/03/04(金) 21:15:22.67
すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?
2011/03/05(土) 00:09:56.02
のーみそこねこねこんぱいる
2011/03/08(火) 04:24:09.65
脳みそくすぐっちゃうよ?
2011/03/08(火) 11:11:18.90
古い!
396デフォルトの名無しさん
垢版 |
2011/03/30(水) 01:34:04.99
BFのTuring完全性の証明ってどこかに無いですか?
2011/03/30(水) 06:47:20.33
>>396
チューリングマシンをエミュレートすることができればチューリング完全だけど、
ほとんど自明だからだれもやらないんじゃね?
2011/03/30(水) 11:05:45.53
http://www.iwriteiam.nl/Ha_bf_Turing.html
2011/03/30(水) 17:53:35.05
>>398
ありがとうございます
400デフォルトの名無しさん
垢版 |
2011/04/23(土) 13:57:46.22
163 以下、名無しにかわりましてVIPがお送りします[] 2011/04/23 (土) 13:25:20.95 ID:7z50yigJ0 (3/3) [PC] ?2BP(1000)
http://up3.viploader.net/pc/src/vlpc007110.png
ぼくのかんがえたさいきょうのぶれいんふぁっく^^;;;;;;;;;;
2011/04/23(土) 15:34:09.43
BrainFuckでソースを出力するとCインタプリタが動くような
二重の仮想環境を作れば、ほぼなんでも出来るようになるな
2011/04/23(土) 15:51:44.40
なにこのVIPくさい
2011/04/23(土) 22:40:02.52
borlandのコマンドラインのやつでつくったら?
2011/04/24(日) 01:47:20.62
こういう拡張は仕様が物を言うから
手軽にできん
機能を絞るならいけるかもだが
2011/04/24(日) 23:18:51.42
>>401
bfで出力した文字をコマンドラインに投げればいい
2011/04/27(水) 00:54:00.81
プログラミングとかよくわからないけど、結局この言語だけで何作れんの?
文字しかつくれないの?
2011/04/27(水) 01:11:52.64
理屈の上ではなんでも作れるよ

なんでもっていう意味は、C言語やFortlanみたいな普通の言語と
同じだけの表現力があるっていうこと
たとえば、C言語で書ける処理は、かならずBFでも書ける

もちろん書きやすさにはだいぶ違いがあるけれど
2011/04/27(水) 02:49:19.21
なんでも作る為には独自の実装をしないといけないと思う
メモリ配置とかシステムコールみたいな
主に番地を割り当てるのかね

純粋にBFだけ考えると入出力と計算、ループだけ

これ単体でグラフィカルなプログラミングとかは無理って解釈で良いと思うよ
2011/04/27(水) 03:59:46.57
bfから各種APIを呼ぶエレガントな仕様案お待ちしてます
2011/04/27(水) 04:41:17.72
理屈は可能なのか・・・
BFが気になったからBFでプログラムの勉強してみようかなと思ったんだけど
やっぱCとかからはじめたほうがいいのかね
2011/04/27(水) 04:45:52.77
いくらなんでも釣りだろ
ネタ言語だぞ
これで学べることはかなりプリミティブなものに限定される
2011/04/27(水) 05:08:41.41
bfはアセンブラとか基本情報とか勉強した人が遊ぶ言語だから
cとは全く別物

何言語から始めるかは目的によるが
そういう話はこのスレで扱わない

この板にそういうスレあるから見たらいいよ
2011/04/27(水) 09:56:47.27
よく知らない言語でも、BFと同じ処理ができればチューリング完全だと言える。
その点がBFの存在意義なんじゃないかと思っている。
マトモにプログラム書く気でBFを使うのは、やめとけ。
2011/04/27(水) 10:53:58.08
BFマシンの開発はまだですか?
2011/04/27(水) 11:37:48.30
>>414
今時ならエミュレータでも充分実用的な速度が出るだろう。
2011/04/27(水) 11:45:50.32
言語が実用的でないのに
2011/04/27(水) 11:51:06.41
トランスレータを作れば……なんて胡乱なw
2011/04/27(水) 15:30:13.35
FPGAで誰か作ってるはず
2011/05/01(日) 08:21:07.40
>>409
エレガントかどうかは分からんが、これくらいしか思い浮かばない。

API呼び出し命令を追加。
(関数ポインタか何か)APIを識別する数字と、APIに渡す引数をメモリにセットしてから
API呼び出し命令を処理すると、APIが呼ばれ、戻り値がセットされる。
2011/05/01(日) 10:20:12.92
特定の番地のメモリがインクリメントされることをOSがトリガとして感知して起動とかかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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