5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

BrainFuck <[+-.,]>

1 :BF:02/10/31 06:38
BrainFuckとは
 難解プログラミング言語の一つ。
 オシシメサイトはhttp://www.google.co.jp/
 でも日本語だと情報は皆無に等しいぞ☆
 月刊Interfaceは神の雑誌です。

以下俺的見解
 ・スレッドタイトルに全命令が入る素敵な言語。
 ・1レス内に全命令のリファレンスが入る素敵な言語。
  > ポインタをインクリメント
  < ポインタをデクリメント
  + ポインタが示すメモリ位置のデータをインクリメント
  + ポインタが示すメモリ位置のデータをデクリメント
  . ポインタが示すメモリ位置のデータを出力
  , ポインタが示すメモリ位置のデータに入力
  [ ポインタが示すメモリ位置のデータがヌルなら対応する]までジャンプ
  ] ポインタが示すメモリ位置のデータがヌルじゃないなら対応する[までジャンプ

2 :BF:02/10/31 06:39
んじゃ2getでもしとこうかね

3 :デフォルトの名無しさん:02/10/31 06:41
マイクロBASICみたいな物か。

4 :BF:02/10/31 06:50
@を出力するコードを以下に示しますヨ。
@のアスキーコードは64なので、文字表示用メモリ(おまえらが決めれ)を
64回インクリメントして、.で表示するわけだ。
まずは単純に
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
64回インクリメントー。だせー。
次はループとか使って
>++++++[<++++++++++>-]<++++.
とりあえず月刊Interface2002/9に習って、
1bite目を文字用、2bite目をカウンタ用とす。
んで、カウンタ用にポインタを移動(>)して、6回インクリメント(++++++)
ループに突入([)文字用のメモリにポインタを移して(<)
10回インクリメント(++++++++++)んで、カウンタをデクリメント(>-)する。
これで10*6で60回インクリメントするわけだ。あとは++++と64まで合わせて表示!
出たぜおいアットマーク!ヤフー!ミッションコンプリー!

5 :デフォルトの名無しさん:02/10/31 06:52
>>3
それに近いけど、難解プログラミング言語の名前が指す通り
わざと読みにくくするって魂胆だね。いやらしい。
でもアレだよ。プログラミングのパズル的な面白さを
思い知らせてくれやがる憎いぜあんちくしょうなわけさ。
受け売りだけどね。

6 :BF ◆leSXCx/JO2 :02/10/31 06:54
>>5はmeだけど、まあ別に固定じゃなくてもいいけどSA
つかさ、ワシ今日初めて触ったんですけどさ、
本当に>>5に書いた通り面白いんですってば。
まあ真の面白さはその単純っぷりを活かして激しく特殊な
処理系を作ったりすることらしいけどね。C言語をポインタやっと理解したての
ワシにゃちょっとまだキツイかにゃー。

7 :BF ◆leSXCx/JO2 :02/10/31 06:57
http://esoteric.sange.fi/brainfuck/
とりあえずここからいろいろと落としたりしてみましょうよ。
とりあえずワシはcompiled/win/BFI.exeを使ってマスヨ。
何やらアイコンがゲイツっぷりを発揮してるけど。

8 :デフォルトの名無しさん:02/10/31 07:11
これif文とかどうすればいいんだ?

9 :デフォルトの名無しさん:02/10/31 08:49
むしろMIUシステムみたいであこがれてしまうな、最小限の
インストラクションセットw
つか、この言語に0(またはNULL)はないの?

10 :デフォルトの名無しさん:02/10/31 08:58
>>1読んだだけだけど
これチューリングマッスィーンじゃないの?
>8 if文作ってみた。
[->-<]>[ ]
メモリ[0][+1]をコンペアして同じならカッコ内実行。元の値は完璧破壊。
それよりこれどうやって値コピーすんだ

11 :デフォルトの名無しさん:02/10/31 09:27
>>9
最初は全て0にセットされてるよ

12 :デフォルトの名無しさん:02/10/31 10:39
.NET Frameworkに対応してるの?


13 :デフォルトの名無しさん:02/10/31 10:43
http://www.ecs.soton.ac.uk/~sdh300/stuffage/bf.net/
http://p-nand-q.com/brainfuck.net.htm
http://www.omlettesoft.com/software.php3

14 :デフォルトの名無しさん:02/10/31 18:46
正負判定だけでこんななってしまった
>>>++[<++++++++[<++++++++>-]>-]<<<[>>>+<<<[>[-[>]]>>+[<]<<-]]>>>>[-]<-[<<<->>>[-]]<<[<+>[-]]<


15 :BF ◆leSXCx/JO2 :02/10/31 19:41
それが醍醐味ですよ
つかまったくわからん。

16 :デフォルトの名無しさん:02/10/31 20:30
おもしろそうだね。暇なとき遊んでみよう。

17 :デフォルトの名無しさん:02/10/31 20:38
>>10
値のコピー
[>+>+<<-]
>>[<<+>>-]<<
元の値を消耗して2つの値を作る

18 :デフォルトの名無しさん:02/10/31 20:50
>>1
この言語って、制限付の環境でランダムに配置して実行したら、
進 化 し ま す か ね ?

19 :デフォルトの名無しさん:02/10/31 22:31
す る ん じ ゃ ね え の ?

20 :デフォルトの名無しさん:02/10/31 22:35
>++++++++[<++++++>-]<[>+>+>+<<<-]>[<+++>-]<.>>[<++++>-]<.<---
-----------.>+.<.>+++.<.>>>--[<+++++>-]<.<<.>---------------.

かなり汚いし、全然最適化されていないが、とりあえず、>>1へのメッセージです。
単に文字列作成するだけでも、これ楽しいよ。
とくに、どうしたら最も短くできるとかとか考えると面白いかもよ。

21 :20:02/10/31 22:37
ああ、一つ言い忘れた。文字コードはShift_JIS。

22 :デフォルトの名無しさん:02/10/31 22:39
せめて関数定義かマクロ定義が欲しい
あと、ループ組めるの?

23 :デフォルトの名無しさん:02/10/31 23:22
>>22
あるよ。[]

24 :デフォルトの名無しさん:02/11/01 01:01
Shift-JISが使える処理系がそもそもないよな

25 :デフォルトの名無しさん:02/11/01 01:15
>>24
インタプリタなら一時間もあれば作れると思うが

26 :デフォルトの名無しさん:02/11/01 14:59
Esoteric Topics in Computer Programming
ttp://www.catseye.mb.ca/esoteric/


27 :20:02/11/01 18:05
>>24
ごめん、windowsでインタプリタで走らせていたから、
Shift_JISで作っちゃった…。
nkfなり使って、変換してくれ。

28 :デフォルトの名無しさん:02/11/01 21:58
>>27
うpしろ

29 :デフォルトの名無しさん:02/11/01 23:20
おまいら、七行スレの有志が作ってくれたぞ
http://pc3.2ch.net/test/read.cgi/tech/1033143528/l50

30 :デフォルトの名無しさん:02/11/01 23:43
Ruby!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>BrainFuck

31 :デフォルトの名無しさん:02/11/02 00:02
            .∧_∧  )
            (    ) |
          / f (   _ノ
          \ | |  ~ |                    A_∧
            | |   |   _ _     .' .  ・,‘ <Ru)`y´>.
            /    - ―― = ̄  ̄ ̄`:, .∴, .’ ⊂⊂ )
           /      __   ', ・,‘ '     ⊂⊂__/
          /  ,  ̄ ̄ ――=・, ’   .∴・,‘ '
        /  /             .∴ '
       /  /                _____
     /ヘ/                 /旦/三/ /|
     !_/                 | ̄ ̄ ̄ ̄ ̄|  .|
                         | 松本万歳.|/



32 :BF ◆leSXCx/JO2 :02/11/02 00:10
>>29
おお。7行スレは巡回してるから2乗にうれしいなあ。
さすがにBFonBFは7行じゃ無理だろうけど、他のいろいろな言語でも
試してみようかなあ。なんたって世界一小さいコンパイラを作るために
作られた言語だしな。勉強がてらな。

>>30
BFvsRubyじゃさすがに同意せざるを得ないな(藁

33 :デフォルトの名無しさん:02/11/02 00:44
>>31
超先生か?

34 :デフォルトの名無しさん:02/11/02 00:51
おお,チューリングマシン(に毛が生えたもの)じゃないか。
授業で色々やらされたなあ<チューリングマシン

35 :デフォルトの名無しさん:02/11/02 02:55
これ四則演算とかできるの?
なんか物凄く手間かかりそうだね。

36 :20:02/11/02 05:14
>>28
俺が使ったヤツは、Rubyのだけど、ここにおいてあるやつ。
http://www.cs.auc.dk/~larsch/ruby/
つか、探せばもっと色々見つかると思う。

37 :デフォルトの名無しさん:02/11/02 05:55
Rubyかよ

38 :デフォルトの名無しさん:02/11/02 08:57
+[] って無限ループになる?

39 :デフォルトの名無しさん:02/11/02 11:36
昨晩から BrainFuck の仮想マシンをアプレットで作ってみた。
日本語未対応だけど 256 バイトメモリ搭載だぜ!

http://tool-ya.ddo.jp/~torao/program/archive/brainfuck/index.html

# まだページは作りかけだけど…

40 :BF ◆leSXCx/JO2 :02/11/02 15:48
>>39
カコ(・∀・)イイ!
つかメモリ内容表示むっちゃ便利なんだけど。
わかりやすくなる。BFにとっちゃあるまじき行為だけどな(わ

41 :10:02/11/03 02:27
仕事もせずにこればっかりやってた。
符号無しchar→10進文字列変換。itoa()だな。表示ルーチンはあとで作る・・・
,[>+<-]-[>[>>+>+<<<-]>>>[<<<+>>>-]<[-[-[-[-[-[-[-[-[-[>+<[-]]]]]]]]]]]>
[-<<+<----------[>>+>+<<<-]>>>[<<<+>>>-]<[-[-[-[-[-[-[-[-[-[>+<[-]]]]]]]]]]]>]<<<]

42 :20:02/11/03 05:35
なら、俺はatoi()もどきを作ってみた。ただ、032と必ず三桁にする必要があるんだけどね、、、
067と入力するとCと出力してくれます。たぶん。
++++[>++++[>+++<-]<-]>>>,>,>,<<<[>->->-<<<-]>>>
[>+<-]<[>+++++[>++<-]<-]<[>+++++[>+++++[>++<-]<-]<-]>>>.

43 :20:02/11/03 05:43
ごめん、100の位の計算が間違っていた…。

++++[>++++[>+++<-]<-]>>>,>,>,<<<[>->->-<<<-]>>>
[>+<-]<[>+++++[>++<-]<-]<[>+++++[>+++++[>++++<-]<-]<-]>>>.


44 :デフォルトの名無しさん:02/11/03 06:31
楽しいな、これ...

45 :デフォルトの名無しさん:02/11/03 08:14
>>39
, で文字入力する時はどうやんの?

46 :デフォルトの名無しさん:02/11/03 08:24
>>45
緑色のカーソルが点滅してる黒いところをクリックしてキーを打つ。
エコーバックはないみたい。

47 :デフォルトの名無しさん:02/11/03 09:27
とりあえず>>1>>10>>20がさぼった責任をとること。
ついでに俺もさぼるから責任取ってくれ

48 :サクーシャ:02/11/03 09:32
>>46
エコーバックいれますた
てか exe 版触ってないんでそこらへんどう動かしていいかよーわからん。

まだ Netscape 未確認。実行中にストップとかオスとエラー起きそうな気が。

49 :デフォルトの名無しさん:02/11/03 09:37
>サクーシャ
ASCIIコード表頼む

50 :デフォルトの名無しさん:02/11/03 09:41
>>48
ブレークポイント付けて…

51 :デフォルトの名無しさん:02/11/03 09:44
>>50
ステップ実行を連打するか
自分で作るかだな。
簡単だぜ。

52 :サクーシャ:02/11/03 09:49
>>51
一応コード欄で [Enter] キー押しまくると [ステップ] ボタン連打と同じ
動きになるとおもいます。

53 :サクーシャ:02/11/03 09:52
ゴメソ IE の MS JVM じゃならなかった。[ステップ] ボタンにフォーカス
あてて [Enter] 押しまくりだす。

54 :デフォルトの名無しさん:02/11/03 09:55
>>50
ブレークポイント前にポインタを適当な位置まで動かして , 命令、
文字入力待ちになったところで中断、とか。

55 :デフォルトの名無しさん:02/11/03 10:40
>>39
つか、256 バイトも使い切れない (w

56 :デフォルトの名無しさん:02/11/03 10:43
新人にコンピュータ・リテラシーの基礎を教えるには良い教材ではないかと。

57 :デフォルトの名無しさん:02/11/03 11:02
>>56
言語の名前が新人にはお下劣


58 :デフォルトの名無しさん:02/11/03 11:17
00〜FF までを出力してみるコード

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

59 : :02/11/04 02:16


60 :デフォルトの名無しさん:02/11/04 02:28
↑何もしないコード。

61 :デフォルトの名無しさん:02/11/04 03:45
コンパイラ作って。

62 :デフォルトの名無しさん:02/11/04 04:01
>>57
BrainF**k とすれば問題なし。


63 :デフォルトの名無しさん:02/11/04 16:37
高階の機能がほしいな。メモリ上のプログラムを実行する機能。
>を1、<を2とか対応付けて、!でポインタが指す場所から実行とか。
ポインタの退避と復帰もほしいな。

…これらをまずBrainFuckで作ればよいのか?

64 :デフォルトの名無しさん:02/11/04 17:01
SKIコンビネータの方が単純で面白い

65 :デフォルトの名無しさん:02/11/04 17:08
>>64
スレ立てて

66 :デフォルトの名無しさん:02/11/04 17:22
SKIコンビネータ
式::=
k (定数) |
S | K | I |
(式 式)

括弧は適宜省略してよい。E1 E2 E3は ((E1 E2) E3)の略。
これだけで自然数の演算はぜんぶ書ける。

67 :デフォルトの名無しさん:02/11/04 17:33
>>66
ポインタまたはそれに準ずる機能が無いと
プログラミング言語にはなり得ないかと
思うんだがどうなんだろうね

68 :デフォルトの名無しさん:02/11/04 17:36
規則
S x y z = (x z) y z
K x y = x
I x = x



69 :デフォルトの名無しさん:02/11/04 17:47
http://www.cwi.nl/~tromp/cl/lazy-k.html

70 :10:02/11/04 18:12
結構苦戦したけどitoa()でキタ━━━━━━(゚∀゚)━━━━━━ !!!!!

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

制約
・ポインタから右はすべてゼロであること
・itoa()といいながらunsigned char

71 :デフォルトの名無しさん:02/11/04 18:49
結構おもろいねこれ。
今、関数呼び出し機能つきインタプリタ作ろうかなと思いつつ
ちんげヲ毟ってるんだけど・・・。

現状のBFの仕様に追加
@関数宣言(ファイル名指定)
^ 関数ポインタを左にシフト
~ 関数ポインタを右にシフト
! ポインタのさしてる関数を実行
関数専用の変数スコープは存在しない。

イメージソース
main.bf
 # 関数宣言
 @tolower.bf #ファイル名指定
 @toupper.bf #ファイル名指定

 ,~!.^!.
 #入力を大文字と小文字で出力するプログラム
 #入力を受け取り(,)、関数ポインタを右に移動(~)して関数実行(!)、そして出力(.)
 #さらに関数ポインタを左に移動(^)して関数実行(!)、出力(.)
tolower.bf
 >+++[<++++++++++>-]<++
toupper.bf
 >+++[<---------->-]<--

どうだろう?
あと、#以降はコメント扱いでいいのかしら?

72 :デフォルトの名無しさん:02/11/04 19:00
コメントや関数があったらもう難解プログラミング言語じゃないがな

73 :デフォルトの名無しさん:02/11/04 19:05
メモリ上のルーチンを実行とかできるなら幅が広がるのだが。

74 :デフォルトの名無しさん:02/11/04 19:20
>>72
確かにそうだ、はじめてインタプリタ作成に成功して浮かれて本質を見失った・・・。スマンコ
<[,.]>これが世界の全て、何も足さない、何も引けない。

75 :デフォルトの名無しさん:02/11/04 19:23
>>74
誤:<[,.]>
正:<[+-,.]>
まつがった。

76 :72:02/11/04 19:45
>>74
いや、難解じゃなくて極少プログラミング言語とかなら
いいんでねえの?

77 :デフォルトの名無しさん:02/11/04 20:42
実用性をもとめてはいけいない

78 :デフォルトの名無しさん:02/11/04 21:14
馬鹿っぽさは追究してもいいかも


79 :ミッション:02/11/04 22:21
初心者御用達 hello, world を最小ステップで作れ

80 :デフォルトの名無しさん:02/11/04 22:33
BrainFuck チップ作ったらめちゃくちゃシンプルな CPU とめちゃくちゃ
大容量 & 高性能なメモリ構成になりそうな気が。

81 :デフォルトの名無しさん:02/11/04 23:01
>>80
つーか、言語そのものがマシン語みたいなもんじゃん。
[と]を即値オペランドの相対条件分岐命令に置き換える程度で十分。

82 :デフォルトの名無しさん:02/11/05 01:25
BF をネイティブコードとする CPU なら設計楽そうだな。

83 :デフォルトの名無しさん:02/11/05 02:10
>>82
機械語はまだ決まってないよ
今のところ、プログラムとデータは完全に別物
統合できたら>>63の言う高階の機能ができる。

84 :デフォルトの名無しさん:02/11/05 02:23
現状だと、プログラムメモリとデータメモリは完全に別物なんだね。
CPU コード作るなら、'+' や '>' をそのまま使えばいいかも

85 :デフォルトの名無しさん:02/11/05 03:02
1つの場所にどのくらい大きい数が入るかも決まっていない。


86 :デフォルトの名無しさん:02/11/05 03:29
入出力の仕様から察すると、8bit でいいんじゃない?

87 :デフォルトの名無しさん:02/11/05 03:44
>>66
Church numeral を使えば定数 k は要らないんじゃねえの?


88 :デフォルトの名無しさん:02/11/05 03:54
>>34
ループ[]があって、自己書き換えがないからだいぶ違うが等価ではある。
ttp://home.wxs.nl/~faase009/Ha_bf_Turing.html
上の証明で使うサブルーチン集↓
ttp://home.wxs.nl/~faase009/Ha_bf_intro.html


89 :デフォルトの名無しさん:02/11/05 05:14
>>87
そだね。
やっぱSKコンビネータの方が単純だし(なんせ2命令しかない)
定義もきっちりしてるし、
データとプログラムを区別なく扱えるから
面白いよ。

90 :デフォルトの名無しさん:02/11/05 05:34
>>89
だったらスレ立ててそっちでやれ

91 :デフォルトの名無しさん:02/11/05 06:33
>>89
まじたててください。
おねがいします。

92 :デフォルトの名無しさん:02/11/05 11:23
関数コールはあると面白いかも。関数というよりサブルーチンだが。

例えば、
( 関数へのポインタ++
) 関数へのポインタ++
! 関数ポインタをコール
; 区切り(returnと、ラベルのようなもの)
とかして、
!!!(!!!!);++++++++++++++++;.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+;
こんな感じに書くっての。

93 :デフォルトの名無しさん:02/11/05 12:09
関数はいらないだろ
元開発者が関数を入れなかったのには理由もあるだろうしな

94 :那由多 ◆F4E74ZBQPA :02/11/05 20:43
>++++++++++[<++++++++++>-]<++++.>
>++++++++++[<++++++++++>-]<+.>
>++++++++++[<++++++++++>-]<++++++++.>
>++++++++++[<++++++++++>-]<++++++++.>
>++++++++++[<++++++++++>-]<+++++++++++.>
>+++++++[<+++++++>-]<-----.>
>++++++[<++++++>-]<----.>
>++++++++++[<++++++++++>-]<+++++++++++++++++++.>
>++++++++++[<++++++++++>-]<+++++++++++.>
>++++++++++[<++++++++++>-]<++++++++++++++.>
>++++++++++[<++++++++++>-]<++++++++.>
>++++++++++[<++++++++++>-]<.>

とりあえず・・・。

95 :名称未設定:02/11/05 21:25
インターフェース スレってあるのだろうか。。

>>93
難解プログラムだからね、、関数は実装系に依存するって感じで。
作成したい人は作成してみるのもいいのかもね。
そういう創造性を産むために実装してないのかも。

96 :デフォルトの名無しさん:02/11/06 00:59
ここまで低レベルなんだったら,やっぱりデータとプログラムを分けないでほすぃ

97 :デフォルトの名無しさん:02/11/06 01:26
関数呼び出しと jump を統一してみるとか。
[ や ] の分岐先を、対応する括弧じゃなくて、 pointer の先にしてみるの。
帰り方は…飛んだときに、 pointer に飛ぶ前の位置を書き込まれるように、とか。

98 :デフォルトの名無しさん:02/11/06 02:34
チューリング互換ということは、再帰関数も計算できるんだよねえ。
どうやるんだろう。

99 :デフォルトの名無しさん:02/11/06 02:47
↓このインタプリタで動作確認済みShift-Jis環境用BF
ttp://pc3.2ch.net/test/read.cgi/tech/1033143528/546

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

にして、7行スレの奴らはすげーな。
まじめに俺様インタプリタ作ったら400行近くいっちまったよ。
さて、寝るか。

100 :デフォルトの名無しさん:02/11/06 05:53
>>98
今のところ思いつくのはBFで書いたUTMの上でコードすることだけだなあ


101 :デフォルトの名無しさん:02/11/07 04:43
age

102 :デフォルトの名無しさん:02/11/09 00:09
どんなにがんばっても 400 行はいかないと思った。。。

103 : ◆leSXCx/JO2 :02/11/09 00:49
なんちうか
Forth,Smalltalk,Dylanスレ的なノリになってきますた。

104 :デフォルトの名無しさん:02/11/09 13:04
ふーし


105 :デフォルトの名無しさん:02/11/09 19:51
>>102
馬鹿みたいに各コマンドのクラスを作って、
実行制御クラス、メモリ管理クラス、
最後に例外クラス作ってたら400超えますた。

なんとなく俺様ランゲージを作る際の基礎が見えたきがすた。

106 :デフォルトの名無しさん:02/11/11 01:44
関数作れるの?

107 :デフォルトの名無しさん:02/11/11 12:38
VRAMとか付けたりメモリマップトI/Oとかつけてみたら面白そうだね
といってみるテスト
>>108


108 :デフォルトの名無しさん:02/11/11 19:59
>>107
VRAMをBFのやり方で描いてくのか・・・
面白そうだとは思うけど(^^;

109 :デフォルトの名無しさん:02/11/12 02:04
>>107
直接マシンコード叩いてた時代を彷彿とさせますナ。
いや、それよりはるかに手間かかるか(w
ドットの明滅だけに限定するなら、何とかなるかな?

110 :デフォルトの名無しさん:02/11/12 10:03
dst,temp,srcが連続している場合の値のコピー(現在のポインタ位置はdst)
[-]>[-]>[<+<+>>-]<[>+<-]

テンポラリ使っちゃってるんですが
なんかもっといい方法ないですか


111 :デフォルトの名無しさん:02/11/14 16:01
素朴な疑問。

・なんでBFのメモリは30000バイトもあるのか?

http://www.muppetlabs.com/~breadbox/bf/
に拠るとCのcharの配列として実装するようだけど、
そうすると大半の領域は間接参照できないことに。
8命令中6命令も間接参照するのに・・・。

メモリサイズは256バイトで充分と思う。

112 :デフォルトの名無しさん:02/11/14 16:16
+[[<]+>[+>]<]


113 :デフォルトの名無しさん:02/11/14 21:13
+[>+,[+.-++]>.<]

114 :デフォルトの名無しさん:02/11/14 21:49
>>111
メモリの1番地に書けるのが8ビットとは決まってないから。


115 :デフォルトの名無しさん:02/11/15 11:26
http://www.tildesoft.com/Programs.html

116 :デフォルトの名無しさん:02/11/18 19:23
一瞬で飽きられますた

117 :名称未設定:02/11/18 23:38
>>116
うんじゃ雑誌インターフェーススレにでも再利用するかい(w


118 :デフォルトの名無しさん:02/11/23 12:10
ポインタのアドレスを実行とかあれば萌えだな

119 :デフォルトの名無しさん:02/11/24 03:01
だれかBFコンパイラ書いてくれ。BFで。

120 :デフォルトの名無しさん:02/11/24 14:57
インタープリタじゃなくてコンパイラを書くのか?

121 :デフォルトの名無しさん:02/11/24 15:33
>>120
不可能ではないのでは?(人間に作れるのか不明だが)
標準入力からソース読んで、標準出力に実行形式を吐く。

122 :デフォルトの名無しさん:02/11/24 19:19
コンパイラなら、まずプラットフォームを明確に...

123 :デフォルトの名無しさん:02/11/24 19:31
>>121
実行ファイルはリダイレクトで保存できる

124 :デフォルトの名無しさん:02/11/28 13:45
マシン語で自身の後ろにくっつけたコードを実行する究極まで圧縮した
インタープリタ作ってそのコード+入力データを出力するコードを作ればOK。


125 :デフォルトの名無しさん:02/12/01 21:32
バイナリをBF化するプログラム希望。

126 :デフォルトの名無しさん:02/12/01 23:59
>125
Cでスマソ
#include<stdio.h>
main(void){int c;while(EOF!=(c=getchar()))while(c--)printf(c?"+":"+.>");}

127 :デフォルトの名無しさん:02/12/03 13:26
>>119
あった。このスレから逝けるサイトにインタプリタは


128 :デフォルトの名無しさん:02/12/05 16:38
>>127
書かれているのか? それは BF で

129 :デフォルトの名無しさん:02/12/06 22:36
++++++++[>++++++++++++++++<-]>++.>
++++++++++++[>++++++++++++++++<-]>++++++++++.>
++++++++[>++++++++++++++++<-]>++.>
++++++++++++++[>++++++++++++++++<-]>+++++++++.>
++++++++[>++++++++++++++++<-]>++.>
+++++++++++++[>++++++++++++++++<-]>+++++++++++.>
+++++++++++++.---.

130 :デフォルトの名無しさん:02/12/16 16:12
>>128

インタプリタ
esoteric.sange.fi/brainfuck/bf-source/prog/BFI.BF
コンパイラ
esoteric.sange.fi/brainfuck/bf-source/prog/BFC.BF


131 :デフォルトの名無しさん:02/12/16 18:53
理解不能...

コンパイラのプラットフォームは?

132 :デフォルトの名無しさん:02/12/17 11:03
そもそも使い方がわからないし…


133 :デフォルトの名無しさん:03/01/04 05:34
保守sage

134 :デフォルトの名無しさん:03/01/09 01:13
1つの場所にどのくらい大きい数が入るかも決まっていない。

135 :デフォルトの名無しさん:03/01/09 01:23
早く内部告発者保護法を制定しろ

そうすれば2chの内部告発をした玄さんも保護される

136 :IP記録実験:03/01/09 01:40
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

137 :デフォルトの名無しさん:03/01/09 01:46
記念カキコ

138 :デフォルトの名無しさん:03/01/09 01:57
えーい、IPがなんだー!

139 :デフォルトの名無しさん:03/01/09 02:54
宮崎はスーパーハカーのお友達がいるからこんなことしなくても関係ないだろ。

140 :デフォルトの名無しさん:03/01/09 03:38
しかしなんだねえ、
ホスト情報を記録しろってのは前から何度も言われてたけど、
絶対そうはならないだろうなあ、とか思ってたよ。

141 :デフォルトの名無しさん:03/01/09 12:34
記録とるなら串制限撤廃してくれ!


142 :デフォルトの名無しさん:03/01/09 18:04
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

143 :デフォルトの名無しさん:03/01/09 23:54
>>792
はぁ?

144 :デフォルトの名無しさん:03/01/10 08:47
>>521
素で選びましたが
な に
 
か?

145 :デフォルトの名無しさん:03/01/10 10:08
とりあえず、>>13を校正してみました。
----
>>8 この判決の要旨は、
現状の2ちゃんねるにあっては、
「レスの真実性・相当性」をひろゆきが立証出来ないヤヴァいレスについては、
被害者から公式な削除要請があり次第、片っ端から消しなさい。
そうしないなら、ひろゆきが賠償するってことですよ。

ということです。なんともう〜んな判決ですが、ひろゆきの控訴も棄却されてしまいました。

で、まぁ、なんとか、公式削除要請→即削除 の義務を軽減しようとひろゆきが考えた策が、
んじゃ、当事者同士で解決してね!ってことで、IPを教えてみよう! ということになっ
たわけです。

146 :デフォルトの名無しさん:03/01/10 10:48
名誉毀損かどうかをひろゆきが判断するのか?

147 :デフォルトの名無しさん:03/01/10 12:31
ない

148 :デフォルトの名無しさん:03/01/10 13:25
>>448
現在の仕様でもブラウザで閲覧可能ですが

149 :デフォルトの名無しさん:03/01/10 15:46
今から風呂を沸かして入る手間と、
今から布団へ潜りこんで寝る快楽を、
天秤にかけるまでもなく眠たいから寝るべきなんだろうけど、
こうして惰性でインターセプトをしているあたり、
そろそろお迎えが近いんだろうなと気付きつつも、なぜ、
わざわざボラさんスレにこんなどうでも良いことを書き込むのだろうかと、
無い脳を内蔵した処理系統からの応答待ちで数分費やしたら煙が出るとか、
そういうファンタスティックでドラマチックな事象に自重を込めたつもり貯金魚を下さい。

150 :デフォルトの名無しさん:03/01/10 17:13
いや、そこまでわかったらビックリや。

151 :デフォルトの名無しさん:03/01/10 23:34
>>312
キタ━━━━━(゚∀゚)━━━━━!!!!

152 :デフォルトの名無しさん:03/01/10 23:42
なんかこれ見よがしに必死に他の掲示板へ誘導してる香具師が居るように見えるんだがw

153 :デフォルトの名無しさん:03/01/11 00:58
フシアナをハンドルにしてるハン板の顰蹙コテがいて、
これが2CHにVirus Scriptやらブラクラやらを貼ったことを自慢した揚げ句、
別のコテハンがフシアナして挑発したらポートスキャンを掛け倒したのです。

410 名前: 投稿日:03/01/10 00:08 ID:h/ETIb2F
>401 名前:三毛 ◆MowPntKTsQ :03/01/10 00:04 ID:McoZGeeY
>ウィルススクリプト貼ってケツまくるような野郎が、「公序良俗」とは笑止の限り。

これが事実だったらどーすんの?(whhh
415 名前:三毛 ◆MowPntKTsQ 投稿日:03/01/10 00:15 ID:McoZGeeY
アサピーは、で

>あれは、そもそもスクリプトじゃないし単にノートンが糞だって言うだけの話。

などと言い訳をしておりまつ。
ではどーいう意図でああいうものを貼ったのか、内容をご説明頂きたいものですな。

417 名前:g056137.ppp.asahi-net.or.jp 投稿日:03/01/10 00:16 ID:6BZCtvnU
そんなに怖かった?

で、相手にログとられて晒し上げの上、朝になったらプロバイダにも抗議されてしまう、という。

154 :デフォルトの名無しさん:03/01/11 01:09
いや明け方に(略

155 :デフォルトの名無しさん:03/01/11 11:55

もう、チョんバレ?


156 :デフォルトの名無しさん:03/01/11 12:31
蚊が刺したほどにも感じない
ということであろう

157 :デフォルトの名無しさん:03/01/11 13:31
>ひろゆき
ex2鯖も重いのでどうにかしてほすぃ。


158 :デフォルトの名無しさん:03/01/11 13:55
スレタイもうちょっと・・・なんとか・・・ならないんだよね。

159 :TTR:03/01/11 16:08
テクスト!! for BrainFuck
http://tongkatz.tripod.co.jp/text.lzh

VB5.0 のランタイムが必要ですよん。

160 :デフォルトの名無しさん:03/01/11 16:44
漏前は、二度と来るな

161 :デフォルトの名無しさん:03/01/11 16:52
記念牡蠣粉

162 :デフォルトの名無しさん:03/01/11 23:38
大阪JCネタ

163 :デフォルトの名無しさん:03/01/11 23:48
それもどうかと思うけどな(^_^;)
やはり「書き込むことに責任あることを認識しろ」かと。

つーか、まもなく6億〜

164 :デフォルトの名無しさん:03/01/12 02:25
test test

165 :デフォルトの名無しさん:03/01/12 02:31
なるわけねーだろ 
馬鹿はしねよ

166 :デフォルトの名無しさん:03/01/12 10:00
それにしても、奴は朝突っ込むと予告してたのにとられた処置が集団下校とは・・・
もし奴が実行してたら、大事だったんじゃないの?

167 :デフォルトの名無しさん:03/01/12 10:01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
はいっはい、日本生命の時からみんな、
その場でぎゃーぎゃー騒いでばかりで
何も勉強しようとしないよね、2ちゃんねらーって。
┏                                       ┓
  http://www.geocities.co.jp/Technopolis-Mars/6820/hoken/
┗                                       ┛
ここがよくまとまているから、熟読して出てこい。
読んで理解するのに3時間かかるかもしれんが
それだけの価値はあるぞ。できたら
┏                                       ┓
   http://cocoa.2ch.net/hoken/kako/987/987605232.html
┗                                       ┛
批判要望板で「2ch以外も含めて、俺が見たなかで最高のスレだ。」
と絶賛されたスレだ。ジオの元スレだからな。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


168 :デフォルトの名無しさん:03/01/12 20:48
gocchin
http://www.musume0.com/maru/gallery/goto/goto27.jpg

169 :デフォルトの名無しさん:03/01/12 20:51
それってさぁ・・・
ま、いいや キミの脳内はその考えで突き進んでくれよ。

だけどね、そのようにした結果 裁判に負けたんだよ。

170 :デフォルトの名無しさん:03/01/12 21:00
ロデム変身、地をかけろ〜〜〜♪

171 :山崎渉:03/01/13 18:40
(^^)

172 :デフォルトの名無しさん:03/01/13 22:37
あげ。前スレ上がってるよ。


173 :山崎渉:03/01/16 03:18
(^^)

174 :TTR:03/01/16 12:18
>++++++++++++++[<++++++++>-]<+++.>++[<-------->-]<--.++++++.--.

175 :山崎渉:03/01/23 22:06
(^^)

176 :デフォルトの名無しさん:03/01/24 12:48
+++++++++[>++++++++<-]>.<++++[>+++++++<-]>+.+++++++..+++.[-]<
++++[>++++++++<-]>.<+++++++[>++++++++<-]>-.<++++[>++++++<-]>.
+++.------.--------.[-]<++++[>++++++++<-]>+.

自分なりに縮めたHello World!

177 :デフォルトの名無しさん:03/01/25 17:51
アプレットの URL 変わりますた
http://tool-ya.ddo.jp/program/brainfuck/index.html


178 :デフォルトの名無しさん:03/01/26 13:57
>>178 乙ー

179 :デフォルトの名無しさん:03/01/31 15:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+++++++.---.+++.-----.-.

180 :デフォルトの名無しさん:03/02/01 13:01
>>179
これぐらいやろうぜ。
++++++++[>++++++++++<-]>--.+++++++.---.+++.-----.-.

181 :デフォルトの名無しさん:03/02/01 13:07
00-FFまでを出力するコード
++++++++[>++++++++<-]>[>++++<-]>-[>+.<-]

182 :179:03/02/02 15:01
>>180
ガッとやって欲しかっただけなので。

183 :デフォルトの名無しさん:03/02/05 19:16
00-FFまでを出力するコード2
-[>+.<-]

184 :デフォルトの名無しさん:03/02/05 21:03
>183
.+[.+]

185 :デフォルトの名無しさん:03/03/09 00:20
もう終りかね?

186 :名無しさん:03/03/11 00:49
SKIインタプリタをだれか作ってくれ。

187 :デフォルトの名無しさん:03/03/23 01:49
たまには age てやるか

188 :デフォルトの名無しさん:03/03/24 00:36
Cマガに登場age

189 :デフォルトの名無しさん:03/03/25 19:42
すっげえ適当に作っても動くんだな。それなりに感動。

#include <stdio.h>
#include <string.h>

void brainfuck(char *str) {
  char memory[256];
  memset(memory, 0, sizeof(memory)/sizeof(memory[0]));
  int pointer = 0; 
  char *p = str;
  while (*p) {
    switch (*p) {
      case '>': ++pointer; break;
      case '<': --pointer; break;
      case '+': ++memory[pointer]; break;
      case '-': --memory[pointer]; break;
      case '.': putchar(memory[pointer]); break;
      case '[': if (!memory[pointer]) while (*(++p) != ']') ; break;
      case ']': if (memory[pointer]) while (*(--p) != '[') ; break;
    }
    ++p;
  }
}

int main() {
  char *str = " \+++[>++++<-]>[<++++++>-]<.\
  >++++++[<+++++>-]<-.  +++++++..  +++.  >++++[>++++++++<-]>.  [>+++<-]>---------.  <<<.+++.------.--------.";
  brainfuck(str);
}

190 :デフォルトの名無しさん:03/03/25 23:36
>189
>>++++[<++++[<++++>-]>-]<<++++>++[<.---.++++++++++++.--------.->-]

191 :デフォルトの名無しさん:03/03/27 14:25
++++++++[>++++++++<-]>+.++++++.--.

192 :デフォルトの名無しさん:03/03/30 11:04
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++.
-----------.
+++++++++++++++++.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++++++++++++++++++.
-----------------------------------------------.

193 :デフォルトの名無しさん:03/03/30 14:32
これのコンパイラ作ったらどうかな。
インクリメントやジャンプを最適化するだけ。



194 :デフォルトの名無しさん:03/03/30 14:40
つーか既にあるのね。>>130
何やってるのかわけわからんが。
じゃあ、他の言語からBFに変換するトランスレータはどうか。

195 :デフォルトの名無しさん:03/03/30 14:48
>>194
無茶だ(笑)

196 :デフォルトの名無しさん:03/03/30 16:26
>>1
ぐはー!!!
スゴイ!この言語

197 :デフォルトの名無しさん:03/03/30 17:20
wikipediaにあるのより短いHello World!
++++[>++++[>++++>++++++>++<<<-]>++>+<<<-]>>.>+.+++++++..+++.>.<<-<++++[>++++<-]>.>.+++.------.--------.>+.

198 :デフォルトの名無しさん:03/03/30 17:24
お、自作スクリプト作る予定なんだけど
この言語を参考にしよう!

199 :デフォルトの名無しさん:03/03/30 17:27
>>197
しまった、最後に改行してない。短くなかった・・(´・ω・`)

200 :デフォルトの名無しさん:03/03/30 19:22
これ改行は読み飛ばすんだよね?

201 :デフォルトの名無しさん:03/03/30 20:22
  ∧_∧
 ( ´∀`)< ++++++++[>++++++++++<-]>--.+++++++.---------..++++.-.

ぬるぽに投票した人
http://pc.2ch.net/test/read.cgi/prog/1048837306/l50

202 :デフォルトの名無しさん:03/03/30 20:46
++++++++[>++++++++[>++>+++<<-]>>+>---<<<<-]>>++.>++.<.>>+.<<.<++++[>>++++<<-]>>+.

203 :デフォルトの名無しさん:03/03/30 20:50
>>197
2文字オーバー...
++++[>++++++++[>++>+++>+<<<-]>++>+>>++<<<<<-]>>.>+.+++++++..+++.>.<<+++++++++++++++.>.+++.------.--------.>+.>++.

204 :デフォルトの名無しさん:03/03/30 23:23
関係ないがBrainFuckのケータイ用アプリがあった

205 :デフォルトの名無しさん:03/03/31 01:50
unlambdaとどっちがわけわかかな

206 :デフォルトの名無しさん:03/03/31 02:15
こいつも使ってくれよ。
http://tool-ya.ddo.jp/program/brainfuck/index.html


207 :デフォルトの名無しさん:03/03/31 15:31
BrainFuck……脳姦……(・∀・)イイ!!

208 :デフォルトの名無しさん:03/03/31 15:46
(・∀・)ヌルポ!!


209 :デフォルトの名無しさん:03/03/31 18:02
ガッ

210 :デフォルトの名無しさん:03/04/01 16:54
@を最小ステップで表示させておくれ。 俺はどうやっても20文字超えるんだけど。

211 :デフォルトの名無しさん:03/04/01 18:06
>>210
素直に書いたら
++++++++[>++++++++<-]>.
23文字かかった・・

212 :デフォルトの名無しさん:03/04/01 18:11
>>210
----[>+<----]>+.
16文字(笑)

213 :1/3:03/04/01 18:42
随分長くなってしまったけど、
ヒットアンドブロー。
,>>>>>>,>>>>>>,>>>>>>,>>>>>>,>+++[>++++<-]>[<++++>-]<[<.>-]<[->,
>,>,>,>,<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[>+>+>+>+>+<<<<<-]>[<+>-]>>
>>>[>+>+>+>+>+<<<<<-]>[<+>-]>>>>>[>+>+>+>+>+<<<<<-]>[<+>-]>>>>>[
>+>+>+>+>+<<<<<-]>[<+>-]>>>>>>[<<<<<-<<<<<<-<<<<<<-<<<<<<->>>>>>
>>>>>>>>>>>>>>>>>-]>[<<<<<-<<<<<<-<<<<<<-<<<<<<->>>>>>>>>>>>>>>>
>>>>>>>-]>[<<<<<-<<<<<<-<<<<<<-<<<<<<->>>>>>>>>>>>>>>>>>>>>>>-]>
[<<<<<-<<<<<<-<<<<<<-<<<<<<->>>>>>>>>>>>>>>>>>>>>>>-]<<<<<<<<<<<
<<<<<<<<<<<<<<<[[-]<->]<+>>[[-]<->]<+>>[[-]<->]<+>>[[-]<->]<+>>>
(続く)

214 :2/4 ← 上の3は間違い:03/04/01 18:44
>[[-]<->]<+>>[[-]<->]<+>>[[-]<->]<+>>[[-]<->]<+>>>>[[-]<->]<+>>[
[-]<->]<+>>[[-]<->]<+>>[[-]<->]<+>>>>[[-]<->]<+>>[[-]<->]<+>>[[-
]<->]<+>>[[-]<->]<+<[<<<<<<<<<<<<+>>>>>>>>>>>>-]<[<<<<<<+>>>>>>-
]<[<<<<<<+>>>>>>-]<<<[<<<<<<+>>>>>>-]<<<[<<<<<<+>>>>>>-]<<<<<<<<
<[>>>>>>+<<<<<<-]<[>>>>>>+<<<<<<-]<[>>>>>>>>>>>>+<<<<<<<<<<<<-]>
>>>>>[<<<<<<+>>>>>>-]>>>>>>[<<<<<<+>>>>>>-]>[<<<<<<<<<<<<+>>>>>>
>>>>>>-]>>>>>>>[<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>-]<<<<<<<<<
<<++++++++[<<<<<<+++++++++>>>>>>-]>>>>>>++++++[<<<<<<+++++++++++
(続く)

215 :3/4:03/04/01 18:44
>>>>>>-]>>>++++++++++[<++++++++++++>-]<<<<<<<<<<<<<<<<<<<[>>>>.>
>[-]>>>>>>+>+<<<<<<<<<<<<<-]>>>>>>[>>>>.>>>+<<<<<<<[-]]>>>>>>>[>
>>>>>-<<<<<<[-]]>>>>>>+[<.>-]<<<<<<<<<<<<<<<<<<[>>>.>>>[-]>>>>>+
>>+<<<<<<<<<<<<<-]>>>>>>[>>>.>>>>+<<<<<<<[-]]>>>>>>>[>>>>>-<<<<<
[-]]>>>>>+[<.>-]<<<<<<<<<<<<<<<<<[>>.>>>>[-]>>>>+>>>+<<<<<<<<<<<
<<-]>>>>>>[>>.>>>>>+<<<<<<<[-]]>>>>>>>[>>>>-<<<<[-]]>>>>+[<.>-]<
<<<<<<<<<<<<<<<[>.>>>>>[-]>>>+>>>>+<<<<<<<<<<<<<-]>>>>>>[>.>>>>>
>+<<<<<<<[-]]>>>>>>>[>>>-<<<[-]]>>>+[<.>-]<[-]<<<<<<<<<<<<<<[-]>
(続く)

216 :4/4:03/04/01 18:45
>>>>>[-]>>>++++++++++.[-]<----[[-]>-<]>+[>++++++[<+++++++++++>-]
<.>++++[<+++++++++++>-]<.-.-------.+++++++++++.-----------------
.>++++[<+++++>-]<-.+.---------.-----------.>++++[<+++++>-]<-.---
--------.++++++.-.+++++.>++++++++[<---------->-]<--.>>>>>>>>>>>>
-<<<<<<<<<<<[-]]>>>>>>>>>>]>+[[-]<<<<<<<<<<<<<<<<<<<<<<<<<.>>>>>
>.>>>>>>.>>>>>>.>>>>>>>]
(終わり)

217 :デフォルトの名無しさん:03/04/01 18:45
Slashdot-Jにあったオブジェクト指向Brainfuck
http://slashdot.jp/comments.pl?sid=84933&cid=291122

Object Oriented Brainfuck

Language specification:

> Move the iterator to next.
< Move the iterator to previous.
+ Send 'Increment' message to the iterator.
- Send 'Decrement' message to the iterator.
. Send 'Output' message to the iterator.
, Input a byte and send it to the iterator with 'SetByte' message.
[ Jump past the matching ] if the iterator returns 'TRUE' by the sent 'IsZero' message.
] Jump to the matching [.

218 :デフォルトの名無しさん:03/04/01 18:47
1. 正解の4文字を入力。その後たくさん改行が表示され、答えは流れる。
  (スクロールさせないでね)
2. 4文字入力。改行するとヒット(H)/ブロー(B)/はずれ(x)が表示される。
3. 正解すると Congratulations! と表示される。
4. 10回で正解できないと終わり。正解が表示される。

219 :デフォルトの名無しさん:03/04/01 19:09
絵で見るBrainFuck
tp://up.2chan.net/o/src/1049106992483.jpg

220 :デフォルトの名無しさん:03/04/01 20:55
>>217
ワロタ

221 :デフォルトの名無しさん:03/04/01 22:07
>>213-216 >>218
乙。
ちゃんと遊べるね。凄い(笑)

222 :デフォルトの名無しさん:03/04/01 23:04
仕事で使うって人いる?

223 :デフォルトの名無しさん:03/04/02 00:10
>>222
仕事って……

組み込みには使えるかな!?

224 :213-216,218:03/04/02 18:04
入力が5つ続くところの最後の , を
+>+[-<,----------[[-]>+<]>]<++++++++++
に変えると、キーバッファクリア。
(二回目のは最後の ++++++++++ は不要)
これで少々入力がオーバーしても大丈夫に。
特に、初めに正解を入力するときに
適当にキーを押したので構わなくなるので一人でも遊べる。

225 :デフォルトの名無しさん:03/04/02 20:31
--[>+>+<<+++++++]>.+++++++.>--..++++.-.

226 :デフォルトの名無しさん:03/04/02 20:47
もーいいよ。実用性ゼロだろ。

227 :デフォルトの名無しさん:03/04/02 21:00
そもそも実用なんて考える言語じゃない。
パズルみたいに遊ぶための言語だ。
ワーイ。

228 :デフォルトの名無しさん:03/04/02 22:03
>>226
この手の言語で実用云々ぬかす奴は低能コーダー

229 :デフォルトの名無しさん:03/04/03 00:42
Fuck your brain.

230 :デフォルトの名無しさん:03/04/03 20:43
新言語 ±

+++ Brainf*ck の + に相当
--- Brainf*ck の - に相当
++- Brainf*ck の > に相当
--+ Brainf*ck の < に相当
+-+ Brainf*ck の , に相当
-+- Brainf*ck の . に相当
+-- Brainf*ck の [ に相当
-++ Brainf*ck の ] に相当

Hello, world!
---+--++-+++++-+++--+--+----------------------++++-----+---++++++++++++++++++++
++++++++++++--++-+++++++++++------------+--+----++++-----+-++++++++++++++++++++
+-+--+-+++++++++-+-++-+++-+--------------------------------------+---++++++++++
+++++++++++++++-+--------------------------+-+++++++++-+--------------------+--
------------------------+-++-+++-+-

231 :デフォルトの名無しさん:03/04/03 21:25
ワロタ

232 :デフォルトの名無しさん:03/04/03 21:30
±派生言語 BitFuck

111 Brainf*ck の + に相当
000 Brainf*ck の - に相当
110 Brainf*ck の > に相当
001 Brainf*ck の < に相当
101 Brainf*ck の , に相当
010 Brainf*ck の . に相当
100 Brainf*ck の [ に相当
011 Brainf*ck の ] に相当

Hello, world!
0001001101111101110010010000000000000000000000111100000100011111111111111111111
1111111111110011011111111111000000000000100100001111000001011111111111111111111
1010010111111111010110111010000000000000000000000000000000000000010001111111111
1111111111111110100000000000000000000000000101111111110100000000000000000000100
00000000000000000000000010110111010


233 :デフォルトの名無しさん:03/04/03 21:32
クダラネ

234 :デフォルトの名無しさん:03/04/03 21:37
±派生言語 .,

... Brainf*ck の + に相当
,,, Brainf*ck の , に相当
.., Brainf*ck の > に相当
,,. Brainf*ck の < に相当
.,. Brainf*ck の , に相当
,., Brainf*ck の . に相当
.,, Brainf*ck の [ に相当
,.. Brainf*ck の ] に相当

Hello, world!
,,,.,,..,.....,...,,.,,.,,,,,,,,,,,,,,,,,,,,,,....,,,,,.,,,....................
............,,..,...........,,,,,,,,,,,,.,,.,,,,....,,,,,.,....................
.,.,,.,.........,.,..,...,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,..........
...............,.,,,,,,,,,,,,,,,,,,,,,,,,,,.,.........,.,,,,,,,,,,,,,,,,,,,,.,,
,,,,,,,,,,,,,,,,,,,,,,,,.,..,...,.,

235 :デフォルトの名無しさん:03/04/03 21:39
モウイイヨ…

236 :デフォルトの名無しさん:03/04/04 00:13
>>226ちゃん必死?

237 :デフォルトの名無しさん:03/04/04 12:04
>>230>>232>>234
>と<、[と]は左右対称にした方がいいと思ふ。
))):+
(((:-
)():,
()(:.
))(:>
)((:<
(():[
()):]

Hello, world!は略

238 :デフォルトの名無しさん:03/04/04 12:15
>>237略すなよ
)))))))))))))))))))))))))))(()))()))))))))))))))))))))))))(((((())))(()()(())))))))))))(()))())))))))))))))))))))))(((((())))()))()()))))))))))))))))))))()(()()))))))))()((()(((()))((
))))))))))))(()))()))))))))))))))))))))))))(((((())))(()()(()))))))))))))))))))))(()))()))))))))))))))))))))))))(((((())))((((()()(())))))))))))(()))()))))))))))))))))))(((((())))(()(
)))))))))()(((((((((((((((((((()(((((((((((((((((((((((((()((()(((()))(())))))))))))(()))()))))))))))))))))))))))))(((((())))()))()(

239 :デフォルトの名無しさん:03/04/04 17:47
新言語スペース&タブ
以下略。

240 :デフォルトの名無しさん:03/04/04 18:27
ミエネ

241 :デフォルトの名無しさん:03/04/04 18:43
ぱっと見はAAになってるコード希望。

242 :デフォルトの名無しさん:03/04/04 19:04
>>239
http://compsoc.dur.ac.uk/whitespace/

243 :デフォルトの名無しさん:03/04/04 19:08
>>242
既にあるのかっ!(w

244 :デフォルトの名無しさん:03/04/04 19:12
じゃあCR&LFで


245 :デフォルトの名無しさん:03/04/04 20:40
コントロールシーケンスで書いたらバイナリと変わらんやん

246 :デフォルトの名無しさん:03/04/05 11:46
そろそろネタ切れだな

247 :デフォルトの名無しさん:03/04/06 05:18
±派生言語 MorseFuck

___ Brainf*ck の + に相当
... Brainf*ck の - に相当
__. Brainf*ck の > に相当
.._ Brainf*ck の < に相当
_._ Brainf*ck の , に相当
._. Brainf*ck の . に相当
_.. Brainf*ck の [ に相当
.__ Brainf*ck の ] に相当

Hello, world!
..._..__._____.___.._.._......................____....._...____________________
____________..__.___________............_.._....____....._.____________________
_._.._._________._.__.___._......................................_...__________
_______________._.........................._._________._...................._..
........................_.__.___._.

248 :デフォルトの名無しさん:03/04/06 12:08
±派生言語 JR

━━━ Brainf*ck の + に相当
─── Brainf*ck の - に相当
━━─ Brainf*ck の > に相当
──━ Brainf*ck の < に相当
━─━ Brainf*ck の , に相当
─━─ Brainf*ck の . に相当
━── Brainf*ck の [ に相当
─━━ Brainf*ck の ] に相当

Hello, world!
───━──━━─━━━━━─━━━──━──━──────────────────────━━━━─────━───━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━──━━─━━━━━━━━━━━────────────━──━────━━━━─────━─━━━━━━━━━━━━━━━━━━━━
━─━──━─━━━━━━━━━─━─━━─━━━─━──────────────────────────────────────━───━━━━━━━━━━
━━━━━━━━━━━━━━━─━──────────────────────────━─━━━━━━━━━─━────────────────────━──
────────────────────────━─━━─━━━─━─

249 :デフォルトの名無しさん:03/04/06 18:44
>>248
もっとJRに見えるように(出来るだけ交合になるように)しる

250 :デフォルトの名無しさん:03/04/07 17:56
>>249
━─━─ Brainf*ck の + に相当
─━─━ Brainf*ck の - に相当
━━─━ Brainf*ck の > に相当
──━─ Brainf*ck の < に相当
━──━ Brainf*ck の , に相当
─━━─ Brainf*ck の . に相当
━─━━ Brainf*ck の [ に相当
─━── Brainf*ck の ] に相当

Hello, world!
─━─━━─━━━━─━━─━─━━─━━─━───━───━──━─━─━─━
─━─━─━─━─━─━─━─━─━─━─━──━━─━─━─━─━━───━─
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
━─━━━━─━━─━─━─━─━─━─━━─━─━─━─━─━─━─━──━─
──━──━─━─━──━━─━─━─━─━━─━─━─━─━─━─━─━─━─
━─━─━─━─━─━──━━──━━─━─━─━─━─━─━──━━─━━─━
━─━──━━──━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━
─━─━─━─━─━─━─━─━─━━───━─━─━─━─━─━─━─━─━─
━─━─━─━─━─━─━─━──━━──━─━─━─━─━─━─━─━─━─━
─━─━─━─━─━─━─━━─━─━─━─━─━─━──━━──━─━─━─━
─━─━─━─━─━─━─━─━─━━──━─━─━─━─━─━─━─━─━─━
─━─━─━─━─━─━─━━─━━─━━─━──━━─

251 :230:03/04/08 00:28
同じネタは3度まで。

252 :デフォルトの名無しさん:03/04/08 01:21
寒くなってきたので

終了


253 :山崎渉:03/04/17 15:43
(^^)

254 :デフォルトの名無しさん:03/04/17 23:05
絵で見るBrainFuck
ttp://up.2chan.net/o/src/1050586525333.jpg

255 :デフォルトの名無しさん:03/04/19 09:02
お題:不動点プログラム@BF(できるかどうか不明

256 :デフォルトの名無しさん:03/04/19 09:02



257 :山崎渉:03/04/20 03:01
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

258 :山崎渉:03/04/20 03:40
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

259 :デフォルトの名無しさん:03/04/22 21:44



260 :デフォルトの名無しさん:03/05/08 18:25
age てみるテスト

261 :デフォルトの名無しさん:03/05/21 22:57
ほっしゅ

262 :山崎渉:03/05/28 12:54
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

263 :デフォルトの名無しさん:03/05/31 02:20
保守

264 :デフォルトの名無しさん:03/05/31 23:34
携帯のアプリ落としてやってるんですが全く分かりません。
鬱陶しいほど詳しく解説してください。

265 :デフォルトの名無しさん:03/06/01 01:56
>>264
とりあえず掛け算だけでも。

 3 * 5 : +++[>+++++<-]

以下、ポインタは [ ] で、そうでない部分は ( ) で囲んでます。
バッファ : [0](0)...
 ↓ +++
バッファ : [3](0)...
 ↓ >
バッファ : (3)[0]...
 ↓ +++++
バッファ : (3)[5]...
 ↓ <
バッファ : [3](5)...
 ↓ -
バッファ : [2](5)...
 ↓ 0 ではないのでループ
バッファ : [2](5)...
 ↓ 以下続ける
バッファ : [0](15)...
 ↓ 0 なのでループを終える
バッファ : [0](15)...

266 :デフォルトの名無しさん:03/06/01 02:08
ループカウンタをオーバーフローさせて
多めにループする荒技もあります。

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

267 :デフォルトの名無しさん:03/06/14 00:57
2バイト文字表示は無理なのか?

268 :デフォルトの名無しさん:03/06/14 01:01
なんか昔のTTLみたいだな ... 。
つーか、アセンブリ言語の読みづらい版って感じ。

269 :デフォルトの名無しさん:03/06/14 01:01
ニモニックのはしょられたアセンブリ言語って、デバッグしたくない.....。

270 :デフォルトの名無しさん:03/06/14 01:02
>>267
1 バイト = 16 ビットのメモリモデルを持てば可能だろうね。
2 バイト文字だとリーダー/トレーラが分かれるからいやらしい。

271 :デフォルトの名無しさん:03/06/14 01:14
> 1 バイト = 16 ビットのメモリモデル

ワードって読んだらだめでつか。(言いたい事はわかるけど)

272 :デフォルトの名無しさん:03/06/14 01:17
プログラム全体をでっかいループで囲えばサブルーチン呼び出しなんとかできるんじゃ?
むずそうだけど・・・

273 :デフォルトの名無しさん:03/06/14 01:19
>>271
最近はビット/バイトは知っててもワードが通じない人が増えてきたからなぁ

274 :デフォルトの名無しさん:03/06/14 01:24
なんかめずらしく良スレだ

275 :余談:03/06/14 01:29
>>273
ニブルとかオクテットとかもあるよね。
あと、BCD。

276 :デフォルトの名無しさん:03/06/14 01:31
1バイト=9ビットなんて環境もあるらしいので
通信は普通オクテット使うよな

277 :デフォルトの名無しさん:03/06/14 01:45
これでCPUのシミュレータ作って、
そのシミュレータ用のコード吐くコンパイラ作って(C言語とか)、
そのコンパイラでそのコンパイラ自体をコンパイルして、
BFでC言語を実行できるように!
↑やったやつ神

278 :デフォルトの名無しさん:03/06/14 02:05
>>277
シミュレータ設計した時点で、他の部分も見えてると思われ。

ただしその行動力を阻害する要因があるとしたら、それは要するに
烈しくめんどくさいという事だったりするという....。

279 :デフォルトの名無しさん:03/06/14 02:08
シミュレータとエミュレータってどう違うの?

280 :デフォルトの名無しさん:03/06/14 02:10
>>279
シミュレータはなんかシミュレーションするやつで
エミュレータはただでゲームができるやつのことだろ。

281 :デフォルトの名無しさん:03/06/14 02:11
>>280
なるほど。よくわかりました。

282 :デフォルトの名無しさん:03/06/14 02:15
こんな時間まで起きて何話してんだよわらた

283 :デフォルトの名無しさん:03/06/14 02:27
>>279
マジレスすると、中身までそっくり真似るのがシミュレータ。
見た目だけ真似て中身は別物なのがエミュレータ。

284 :デフォルトの名無しさん:03/06/14 02:39
つまり277はエミュレータって言ったほうがよかったのか

285 :デフォルトの名無しさん:03/06/14 02:39
>>283
ユーザの見えない部分まで全く同じにつくったものがシミュレータで、
内部を自由につくったり実機にはない機能を付け加えたりしたものがエミュレータということ?

286 :デフォルトの名無しさん:03/06/14 02:41
>>279
マジレスすると、白人が真似るエリザベステイラーはシミュレータ。
顔と肌を真似てもDNAに邪魔されるマイケルはエミュレータ。


287 :283:03/06/14 02:57
>>285
そです。
でも突き詰めて考えると境界は曖昧なんだけど。

288 :デフォルトの名無しさん:03/06/14 11:56
シミュレータ=なるべく似せるが、本物と置き換わることはできない(例・自動車や航空機操縦)
エミュレータ=(ある部分において)本物にとってかわることができるもの

289 :age:03/06/14 23:45
age

290 :デフォルトの名無しさん:03/07/02 18:12
新人にコンピュータ・リテラシーの基礎を教えるには良い教材ではないかと。

291 :デフォルトの名無しさん:03/07/06 00:10
ああ、楽しい

292 :デフォルトの名無しさん:03/07/11 23:40
>>283ってまるっきり逆だよね?

293 :デフォルトの名無しさん:03/07/12 12:16
>>292
広辞苑(第五版)の記述を書いてあげるから、これ読んで出直してね。

シミュレーション
 物理的・生態的・社会的等のシステムの挙動を、これとほぼ同じ法則に
 支配される他のシステムまたはコンピュータの挙動によって、模擬すること。

エミュレーション
 コンピュータシステムの全部または一部を、別種のハードウェアや
 ソフトウェアで擬似的に動作させること。

294 :山崎 渉:03/07/15 10:16

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

295 :BearHand ◆hHJQnHs7BM :03/07/28 18:31
あげ
おもしろい

296 :BearHand ◆hHJQnHs7BM :03/07/31 19:49
あげ
おもしろい

297 :デフォルトの名無しさん:03/07/31 20:02
シュミレータとシミュレータってどう違うの?

298 :デフォルトの名無しさん:03/07/31 22:46
シュミレータ=趣味で作った手抜きのシミュレータ

299 :山崎 渉:03/08/02 02:08
(^^)

300 :デフォルトの名無しさん:03/08/05 20:23
age

301 :デフォルトの名無しさん:03/08/11 18:53
あげ

302 :山崎 渉:03/08/15 15:43
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

303 :デフォルトの名無しさん:03/08/16 22:29
このスレは削除依頼済です

304 :デフォルトの名無しさん:03/08/18 18:57
なんでやねん!

305 :デフォルトの名無しさん:03/08/18 20:56
画像集!
http://www.sexpixbox.com/pleasant/nude/index.html


306 :デフォルトの名無しさん:03/08/21 11:43
シミュレーションは、あらゆるシステムに対して、紙と鉛筆で行うことが出来るが、
エミュレーションは、紙と鉛筆で出来たシステム以外には、紙と鉛筆で行うことはできない。

307 :デフォルトの名無しさん:03/08/21 12:27
BrainFuck で CGI スクリプトを書いてみるテスト。

308 :デフォルトの名無しさん:03/08/30 11:44
>>230 位からの BrainF*ck もどきはケンシロウ進数でも表出出来るね。

HelloWorld は略。

309 :デフォルトの名無しさん:03/09/27 09:21
ケンシロウ進数?

310 :デフォルトの名無しさん:03/09/27 10:45
BrainFuckはどうだか知らんが230以降の複数で1つの命令って考えはDNAにも通じるし、うまく並べりゃ進化始めるんでない?

311 :デフォルトの名無しさん:03/09/27 13:00
>>309
よく分からんけど
  あたたあたたああたたたたあたあああたたた
って事でないかい?

312 :デフォルトの名無しさん:03/09/27 14:30
コンパイラってどうやって使うんですか

313 :デフォルトの名無しさん:03/09/29 00:25
>>312
せめて誰に向けていったのか、はっきりしてくれないと・・・

314 :312:03/10/11 15:42
すいません。上げます。
このスレの>>7にあったサイトからおそらくDelphiで作られたbrainfuckを落としました。

そのなかの「Bf」ディレクトリにサンプルが幾つか入っているのですが
その中の「Bfc.bf」を覗いてみると一行目に「BF compiler written in BF」
と記述されています。

これの使い方が分かる人はいませんか?

315 :デフォルトの名無しさん:03/10/11 18:03
>>314
場違いでスマンが笑いがとまらねー。
やっと "Hello World!" の表示に成功したところなもんで、
これでコンパイラ作ったのかよと思ったら笑えてきた。

316 :デフォルトの名無しさん:03/10/12 00:40
演算子が少ないから、子供にやらせるにはいいかもしれなー。
ただ、名前があれだなー。
脳コネあたりが妥当なのだろうか??

あと、
2ヶ月以上前にズームイン・・・。
シミュレータ:対象を予想するもの。
エミュレータ:対象をまねするもの。

317 :デフォルトの名無しさん:03/10/13 23:11
演算子が少ないぶん、複雑怪奇な組み合わせかたを憶えないといけない気が…
計算機の仕組みとかの説明にはいいけど、実際に遊ぶなら BASIC とかのほうが楽そう。
Hello World でも大変だから、わかりにくそうだし…


318 :デフォルトの名無しさん:03/10/20 18:58
dat落ちしませんように

319 :デフォルトの名無しさん:03/11/05 16:54
hoshhhh

320 :デフォルトの名無しさん:03/11/19 16:57
  

321 :デフォルトの名無しさん:03/12/05 20:07
良スレ あげ

322 :デフォルトの名無しさん:03/12/05 20:59
>>1
見解?

323 :デフォルトの名無しさん:03/12/12 19:05
age

324 :デフォルトの名無しさん:03/12/20 02:41
自分自身を出力するBFプログラムは既出?

325 :デフォルトの名無しさん:03/12/20 12:15
>>324
http://www.nyx.net/~gthompso/self_brainf.txt
読みたくないなw

326 :デフォルトの名無しさん:04/01/07 02:02
 

327 :デフォルトの名無しさん:04/01/22 22:47
:-)

328 :BAR:04/01/24 21:53
BFを動かすマシンを作りたい。
色々想像してきたがBFマシンの内部にもマイクロコードが在るのではないか?
そのマイクロコードもBFなのではないか?

もちろんハードワイアードで設計でも可能だろうが実際に作成するときに
部品数が多く面倒になる。

そこで、BFマシン=BFプロセッサー(BFP)のIOをμBFで実装することを考えた。
μBFが思いついた時点でμBFでBFを作る必要はないことに気づいた。
なぜならコード次第でどんなプロセッサーの真似もできるのだから。

μBFは外部IOの制御に特化したものなので、簡略化されている部分がある。
まず、BFでのメモリーのワード幅が1bitになる。これは+-がフリップと同じになる。

次に.,がない。拡張としてあってもいいがそれは出力、入力という意味ではない。
.,を付けることはμBFの中にレジスターかスタックがあるということになる。

では><+[]しかないμBFはどのように実装されるのか?

329 :BAR:04/01/24 23:58
ふむ、[]の対応は正確なネストができない。
もっとも近いものに対応してしまう。

330 :BAR:04/01/25 00:18
単純でありながら高度な処理が(手間と時間をかけて)行えるBF

現在より文明が劣る古代の世界においてもBFのような仕組みは作れたのではないだろうか。
さらに超古代、平行世界における超文明も高度な知性によりBFの仕組みを用いるかもしれない。

だとすれば、そのBFマシン(BFM)はどのような形、仕組みで動くものなのか?

BFのメモリー部をチベットのマニ車のようなものにすれば、多値の表現が機械的にできる。
BFのコードは単純なため、事前に書かれたコードに従い奴隷に命令し結果を導くこともできただろう。

331 :BAR:04/01/25 16:23
すでにいくつかでているが、自力で作ったhello, wold

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

332 :BAR:04/01/25 16:54
MOVE >[-]<[>+<-]
COPY >[-]>[-]<<[>+>+<<-]>>[<<+>>-]

移動先、コピー先を0に初期化する。
COPYはテンポラリーを確保して元値を復元する。

333 :BAR:04/01/25 17:55
 

334 :BAR:04/01/25 20:07
++++++[>++++[>++++<-]<-]>>++++++++[>+>+>+>+>+<<<<<-]
>>--->++++>++++>+++++++
<[<]>[.>]

事前にメモリーにhelloを作成してから出力する。null終端。

335 :デフォルトの名無しさん:04/01/25 20:53
お、試してみたいと思ったら良いのがあるじゃねぇか。>>206はネ申だ!

336 :BAR:04/01/26 00:09
ageたら人がきたか。
335さんも立派なBFerになってくださいな。

337 :BAR:04/01/26 03:58
繰り上がり +[>->]<+<

,.>
,.<
[>[+[>->]<+>]<<<-]
>.>.

ポインターを値0のところへ移動させればループを一発で抜けられる。
これでifを構成できる。抜けた後ポインターを適切に戻すこと。

338 :BAR:04/01/26 18:45
http://www.kmonos.net/alang/etc/brainfuck.php

ググッて発見

339 :BAR:04/01/26 20:17
http://home.planet.nl/~faase009/Ha_bf_online.html

BF online
トレーサーがある

340 :BAR:04/01/27 16:23
1byte * 1byte = 2byte

,.>
,.
<
[>
[>+<-]>
[>
+>+<[[->>+<<]>-<]>>[<<+>>-]<<
<<+>>
<-]
<<-]
>>>.>.

>>337の繰り上がりはまちがい。
この掛け算はうまく動くはず…現在試し中。終わる気配ナシ。


341 :BAR:04/01/27 16:34
結果:wwQ7(成功)

ファァァァァァック!!

342 :BAR:04/01/27 20:30
Another online BF interpreter can be found under the name BrainOS.

http://www.moonwatcher.de/links.html
にスクリーンショットが

343 :デフォルトの名無しさん:04/01/28 13:52
ttp://tool-ya.ddo.jp/program/brainfuck/index.html
これの作者の方、「,」はあくまで入力だけで出力はしないです。。。

9文字入力して入力された9文字を出力する
>>+++++++++[[>],.[<]>-][<]<++++[>++++++++<-]>.>[.>]

正しい出力例「brainfuck brainfuck」
ダイナマイツ出力例「bbrraaiinnffuucckk brainfuck」

344 :BAR:04/01/28 14:25
>>343
ダイナマーイツッ!
利便性のためエコーするようになってるのかな?
実行メモリーの様子がリアルタイムでわかればなあ。あとスローモード。

ココから先は統合開発環境が欲しいところ…。
あと高速なインタプリタ。アセンブラで作ろうかな・・・。

345 :デフォルトの名無しさん:04/01/28 15:19
>BAR
そろそろこっちでおねがいします
電波・お花畑 http://etc.2ch.net/denpa/
メンタルヘルス http://etc.2ch.net/utu/

346 :BAR:04/01/28 16:01
          (ブレイン)         (フ*** )
          )::::::::(           ):::::::(
        /::::::::::::;\        /::::::::::::; \
       // |:::::::::::: l |       //´|:::::::::::: l |
       | | .|:::::::::::: | |       | |  |:::::::::::: | |
        | | /::::::::::::/| |      // /::::::::::::/| |
        U |::::::::::/ U      U  |::::::::::/  | |
         |::::||:::|  | |    | |   |::::||:::|   U
         |::::||::|   | ∧∧//  |::::||::|
          | / | |   ( ゜д゜ )/   | /. | |
         // | |   |BAR /   //  | |
        //  | |   | /| |   //   | |
       //   | |   // | |   //   | |
       U    U  U  U  U     U

347 :デフォルトの名無しさん:04/01/28 18:55
CPU 設計するのもこういう感じなのかなぁ。
よく分からんのやけども。

348 :デフォルトの名無しさん:04/01/28 21:41
http://robert.zizi.org/bfcomp.html
The BrainFuck Computer

PICで製作。チョー低消費電力なのはいけてる。128命令サポートだそうな。

紹介 http://freshmeat.net/projects/bfdebug/?topic_id=71%2C47%2C49
本家 http://bfdebug.sourceforge.net/
Brainfuck Debugger

ステップ実行とか、メモリーモニタリングとかとか。GJ!



349 :デフォルトの名無しさん:04/01/29 04:53
http://www.roland-illig.de/lang.bf.html

DOSの統合開発環境とかCGIとかとか。ヒャホーイ

350 :デフォルトの名無しさん:04/01/29 05:10
http://daniel.lorch.cc/projects/brainfuck/
A brainfuck interpreter in PHP

 PHPの関数としてBFを実装。そしてクールなイメージ.jpg

http://www.dividuum.de/p/bf/

 PHP ExtensionとしてBFを実装。ソー クール!!
 そのほかコンパイラーやインタプリタなど。

351 :デフォルトの名無しさん:04/01/29 05:14
http://www.blinkenlights.de/gallery/brainfuck.en.html
blinkenlights

It's in your brain ってBFとは関係ないネー
つーかこのサイトはなんなんだ??

352 :デフォルトの名無しさん:04/02/05 18:39
Return RURIKO-san of mine. It can return.

leaf which was not described even to the scene MURIYARI while only
the picture taught H scene with Ayaka is 逝って means!

Although he wants to be crowded, to carry out good of PA since pant voice was ECHI,
and to call it ...., having not added H scene of すばる which is DCE cannot be allowed. leaf Tokyo 逝って means.

leaf which did not put in H of the SUFI level 1 although K-mayued-H
must also have been possible like Alice at 力技 is 逝って means violently! leaf

which did not write a female doctor's H scene after a temple
did not describe conscientiously the scene which commits moon cost is 逝って means!

ARURUU violated by the enemy by BAD and the course, or something should
have put in. Although the scenario was good, it is a complaint
say UTAWARE delicately. leaf Tokyo -- more -- GAMBARE

Routes which embarrassment could be strangely seen on H scene,
and did not put in the 輪姦 insult by enemies, such as LISA, after being a quick pace is 逝って means.

The former tac staff who abandoned the efforts which can omit only that from 次作 completely to はっちゃけてくれた's by Moon. is already 逝ってるぽいけど逝って means.

麻枝 (っぽい) with which Nagamori's rape was made to finish it as attempted is 逝って means!

やたら [ the contents ] although ANARU insult of まひる is
cut and the bottom of inclusion of it on an amusement disk is good -- it was short Active は逝って means!

This petition continues until a maker understands the anger at the time of rain
check くらった with a CHIMPO grip bundle.



353 :デフォルトの名無しさん:04/02/29 22:31
hosssssssssh

354 :デフォルトの名無しさん:04/03/06 03:53
保守sage

なんというか、すごい夢のある言語だよな。
わくわくしてくる

355 :デフォルトの名無しさん:04/03/21 21:45
(´Д`)ハァハァ、加算処理つくってみた…既出ですか?
便宜上コメント入れてますが、やっぱり邪道ですか?w

,>,<  //入力→(0,1)
[>>+>>+<<<<-]>[>>+>>+<<<<-]  //移動(0,1)→(2,3),(4,5)
>
[<<+>>-]>[<<+>>-]  //移動(2,3)→(0,1)
>
[>>+<<-]>[>+<-]>.  //加算(4,5)→(6)


356 :デフォルトの名無しさん:04/03/21 22:06
お前さんがやりたいのはこういうことか…?

,>,[-<+>]<.

357 :デフォルトの名無しさん:04/03/21 22:13
考えてみたら元の値を破壊しない処理か
酒回ってるもんでゴミレススマソ

358 :デフォルトの名無しさん:04/03/23 15:04
gets()作ってみますた。Enter押すと入力終了。

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


359 :BAR:04/04/12 03:36
ブレインファッカー達が増えていることをうれしく思う。

コメントはないとcoolだが、ないと未来の自分が理解できなくなる。
後輩たちのためにも、手取り足取り解説することは推奨される。

それはまるでBFのポインターの動作のごとく! ファァァァァァック!!

360 :デフォルトの名無しさん:04/04/16 10:30
test

361 :デフォルトの名無しさん:04/04/23 16:36
VisualBrainFuck.NETつくって!

362 :デフォルトの名無しさん:04/04/23 19:22
BrainFuckでGUI作ったら神!!!

363 :デフォルトの名無しさん:04/04/23 21:17
Apacheモジュールにmod_brainfuckキボンヌ

364 :BAR:04/04/25 15:46
アク禁はきえたかなぁ


365 :BAR:04/04/25 15:59
フム いまいましいアク禁に怯え思わず駄スレ、いや塵スレをしてしまった。スマソ

新たなるBFファン諸君、親切にもgoogleは道をお教えになられる。
どうだ! Apache モジュール DE BrainFuck!!!!!!
http://modbf.sourceforge.net/

BFに関して先進的な海外ユーザーはクールなシグネイチャーとしてBFインストラクションを並べることもある。
http://www.mail-archive.com/rsync@lists.samba.org/msg08406.html

毎日は行ったり来り? 足し引きはしているか?ブレインファァァァァァァック!!

366 :363:04/04/25 21:38
>>365
マジであったのかw

367 :デフォルトの名無しさん:04/05/05 12:45
りょうすれ

368 :デフォルトの名無しさん:04/05/05 16:24
入力した文字列をechoするだけのをつくってみますた

++++++++>,<[>------<-]++++++++++.---------->[[>] , [<]>-]<++++++++++.>>[.>]

(最初に文字数入力)

369 :368:04/05/05 16:35
改良版
>>+[<,>[-]<[>+>+<<-]>[<+>-]>----------]<<[-]<[<]>[.>]

370 :デフォルトの名無しさん:04/05/13 21:49
!

371 :デフォルトの名無しさん:04/05/24 17:09
!!

372 :デフォルトの名無しさん:04/06/08 15:29
!!!

373 :デフォルトの名無しさん:04/06/10 16:59
コンパイラ作ろうか?MS-DOSのCOM形式の出力で。
.NET Framework(Win/BSD/Linux)で書こうと思ってるが?

374 :デフォルトの名無しさん:04/06/11 19:44
頑張って

375 :デフォルトの名無しさん:04/06/12 09:02
完成したぞ。
ttp://riact.sourceforge.jp/bfc100.zip
にベータ版を置いてあるから。
・.NET Framework 1.0必須
・ドラッグアンドドロップで実行ファイルを生成

376 :デフォルトの名無しさん:04/06/12 15:38
できたcomがうまいこと動かんのはWin2kのせいか?

377 :375:04/06/12 16:04
なぜだろう?
どういう内容のプログラムを書いた?

378 :375:04/06/12 17:08
スマソ。
<と>の変換を逆にしてた。道理で動かないわけだ・・・
という訳で修正版。375と同じURLにおいたから。

379 :デフォルトの名無しさん:04/06/12 20:15
SourceFourgeを下らんことに使うなよ、と。

380 :デフォルトの名無しさん:04/06/12 20:17
ナゼに自分のサイトなりあぷろだなりにあげないでsourcefourge使うのか・・・
おまいのプロジェクトだからって何うpしてもいいわけじゃないだろ。

381 :デフォルトの名無しさん:04/06/12 21:13
なぜか画面に文字が表示されないな…
リダイレクトでファイルに出力送って覗けば確かに書いてあるのだが

>>379-380
目くじら立てるほどのことでもないだろ

382 :375:04/06/12 22:33
>>379-380
スマソ。
Vectorに登録中だから。

383 :375:04/06/12 22:39
","は出力の機能はない。
あと、こっちでは(たとえば343,358,368,369の)プログラムでは正しく表示されたから、
環境による差があるのかもしれない。

念のためにソースをあげてみてくれ。

384 :381:04/06/12 22:52
なんか知らんがもっかいプロンプト開き直して試したら今度は普通に表示されたわスマソ
あとGJ

385 :デフォルトの名無しさん:04/06/14 02:26
hakobakoとかnyとか色々あるゾ

386 :デフォルトの名無しさん:04/06/14 16:19
>>385
何が?

387 :デフォルトの名無しさん:04/06/15 14:20
>>386
>>382へのアンカー付け忘れ

388 :デフォルトの名無しさん:04/06/18 22:35
BF のコードが明和電機の延長コードに見えてしかたがないのは疲れている証拠か…

389 :javascriptコンパイラ作ってみた。:04/07/04 15:57
<html><script>
function trans(ch){
switch(ch){
case '[': return 'while(mem[ptr] != 0){';
case ']': return '}';
case '+': return 'mem[ptr]+=1';
case '-': return 'mem[ptr]-=1';
case '>': return 'ptr+=1';
case '<': return 'ptr-=1';
case '.': return 'buf += String.fromCharCode(mem[ptr])';
case ',': return '/*??????*/';
default : return '';
}
}
function bf_eval(form, val) {
source = val.value;
str = 'N=100;mem=new Array(N);for(i=0;i<N;i++){mem[i]=0;}ptr=0;buf="";';
chars = source.split("");
for(i=0;i<chars.length;i++)str += trans(chars[i]) + ";\n";
eval(str+";form.qux.value=buf");
}
</script>
<form name="f"><input type="text" name="baz" onChange="bf_eval(this.form,this)"><br>
<input type="text" name="qux"><br></form></html>

390 :デフォルトの名無しさん:04/07/05 15:50
javascriptの事良く知らないけど、こういうの見てるとやっぱりスクリプト言語は偉大だと思うよ。

391 :デフォルトの名無しさん:04/07/05 18:31
hage

392 :デフォルトの名無しさん:04/07/05 18:48
>>375
おまいは余計なことせずにさっさとOS作っと毛。
ttp://riact.sourceforge.jp/
Riact - Advance operating system
SourceFourgeを無料ホームページと勘違いするなよ、と。

393 :デフォルトの名無しさん:04/07/05 19:05
>>392
さんざんOS板で叩かれてるよ、と
ReactOSと紛らわしいよ、と

394 :デフォルトの名無しさん:04/07/06 03:09
Unlambdaってどうよ?
http://www.eleves.ens.fr:8080/home/madore/programs/unlambda/

395 :デフォルトの名無しさん:04/07/06 04:13
0〜6までの数字の組み合わせ3つのH&B攻略ツールを作ってください

396 :携帯から:04/07/06 20:21
n n-1 ... 2 1の総和。n=4。
s/(.)(\d+)/$1 x $2/ge

>>+4[[->+>
+<<]>>[-<<
+>>]<-]<[-
<[<]<+>>[>
]<]<+97.

397 :デフォルトの名無しさん:04/07/10 14:24
>>394
英語分からん
面白そうではある(関数型言語イイ!!)けどスレ違い。
ゲテモノ言語スレでも作るか?

398 :デフォルトの名無しさん:04/07/15 13:23
BrainFuck自体で記述された処理系キボン

399 :デフォルトの名無しさん:04/07/15 13:42
こう言う問題が出ました。↓
指定した年のカレンダーを作成するプログラムを、複数の関数に分けて作成する。下記の問いに答えよ。
第1問
 指定された年月をもとに一ケ月分のカレンダーをプリントアウトする関数calout(n,g)を作成する。だだし関数calout(n,g)は以下の条件を満たすものとせよ
*カレンダーの曜日の出力は下記のように2週間分を続けて表示する
      日  月  火  水  木  金  土  日  月  火  水  木  金  土
                  1  2  3  4  5  6  7  8  9  10
       11 12 13 14  15 16 17 18 ・・・・・・・・・・・・・・・・・・・
*calout(n,g)の引数はn:年、g:月 とする。戻り値はなし。
*指定月gの日数は関数days(n,g)で求めるものとする。関数days(n,g)は第2問で自作する。
*指定した年n、月g、日hの曜日はツェラーの公式に基ずく関数youbi(n,g,h)で求めるものとする。関数youbi(n,g,h)のソースファイルは下記のものを利用せよ
int youbi(y,m,d) /*ツェラーの公式*/
in t y,m,d;
{
if(m>2) m=m-2;
else{ y=y-1; m=m+10;}
return ((y+y/4-y/100+y/400+(int)(2.6*m-0.195)+d)%7);
}

どうやればいいのかさっぱりわかりません。
誰か解いてくれる方いませんか?
よろしくお願いしますm(__)m

400 :デフォルトの名無しさん:04/07/15 14:34
ソースコードを負のインデックス値に逆順に配置したら
自分自身を書き換えて実行できるんじゃないの。

401 :デフォルトの名無しさん:04/07/15 17:00
>>398
これ、BrainFuckで書かれたBFインタプリタらしいよ
http://esoteric.sange.fi/brainfuck/bf-source/prog/BFI.BF

402 :デフォルトの名無しさん:04/07/19 03:22
BrainFuck!!!!

403 :とむ ◆TOM/oiT7jE :04/07/19 03:43
>+
[
+++++++++++++>,.
-------------
]
<
[.<]
入力したのを逆さにして表示するやつです
改行で入力終了
最後にゴミがついちゃうけど・・・
解決できない!
誰かしてください。
あと改行押したときの , の結果が13じゃない環境では動きません

404 :とむ ◆TOM/oiT7jE :04/07/19 03:48
>+
[
+++++++++++++>,.
-------------
]
<--------------
[++++++++++++++.<--------------]
ウンコしたら解決法思いつきました。

405 :デフォルトの名無しさん:04/07/19 06:30
>>404
くそやろう

406 :とむ ◆TOM/oiT7jE :04/07/20 03:39
もう書いてる人いないの?

407 :デフォルトの名無しさん:04/07/21 23:23
文字表示と単純な計算(一桁かける一桁)
くらいしか俺の根気だと作れないから何もしない。

408 :デフォルトの名無しさん:04/07/21 23:28
>>9
MIUよりは役に立つだろ。せめてTNTと言ってくれ。

409 :デフォルトの名無しさん:04/07/22 02:52
>>407
BFを言語だと思って処理するからだよ、単細胞なCPUだと思えばいとたのし。


410 :デフォルトの名無しさん:04/07/22 04:11
なんか一週間に一回ぐらい「BFやりてー」って感じるんだよなぁ。
で、しばらくやってると「あ! ほかにやることあるんだった」って気付く。

411 :デフォルトの名無しさん:04/07/22 12:48
C2BFこっそり使ったら神になれるな

412 :デフォルトの名無しさん:04/07/22 16:47
bfで作ったら神

413 :デフォルトの名無しさん:04/07/23 11:26
>>409
PICから毛を抜いたものだと思うようになった。

毛は大事だとおもった。

414 :デフォルトの名無しさん:04/08/27 14:26
++++++++++[>++++++<-]>+++++.<++++++[>++++++<-]>++.--.

415 :デフォルトの名無しさん:04/08/27 14:55
+++++[>+++++[>++++++++<-]<-]>>-.<+++[>++++++<-]>.<+++[>----<-]>+.<++++[>++++<-]>+.

416 :デフォルトの名無しさん:04/09/03 18:41
>>415
????

417 :デフォルトの名無しさん:04/09/03 19:05
自分自身と同一のソースコードを出力するソースって書ける?

418 :デフォルトの名無しさん:04/09/04 00:27
>>324-325

419 :デフォルトの名無しさん:04/09/04 03:22
>>415
0xC7 0xD9 0xCE 0xDF ??
BrainfuckでAscii以外出力されても読みにくいよ。

420 :デフォルトの名無しさん:04/09/04 03:43
>>419
コード表見てないが、文字感の離れ具合から推察するにヌルポだな

421 :デフォルトの名無しさん:04/09/05 14:05
↓今、誰かがガッを書いてますので、しばしお待ちを。

422 :デフォルトの名無しさん:04/09/06 01:01
BFIの出力画面をメモ帳にコピペすれば読めるよ

423 :デフォルトの名無しさん:04/09/06 14:36
書くのはたやすいが読むのが鬱だなコレ

424 :デフォルトの名無しさん:04/09/06 16:18
ttp://tool-ya.ddo.jp/program/brainfuck/index.html
ここ死んじゃったのかなー?
メモリ表示機能がかなり便利だったから復活してほすぃ


425 :デフォルトの名無しさん:04/09/06 17:01
あと足し算機できた。2桁はだめ。答えが2桁になってもだめ。
だめだめです。

>,.>++++++[<------->-]<------[<+>-]
>++++++[>+++++++<-]>+.
>,.>++++++[<------->-]<------[<<<<+>>>>-]
>+++++++++[>++++++<-]>+++++++.
<<<<<<>++++++[<+++++++>-]<++++++.

426 :デフォルトの名無しさん:04/09/20 15:24:20
あげるよ

427 :デフォルトの名無しさん:04/09/21 11:16:10
BFで2chブラジャー作って

428 :デフォルトの名無しさん:04/09/21 11:53:43
>>427
++++[>++++++++++<-]>++++.
++++++++++++++++++.
------------------.


429 :デフォルトの名無しさん:04/10/13 23:27:54
新言語 neko mimi Fu**♥
・1レス内に全命令のリファレンスが入る素敵な言語。
  ネコミミ!            ポインタをインクリメント
  ネコミミモード           ポインタをデクリメント
  おにいさま           ポインタが示すメモリ位置のデータをインクリメント
  私のしもべー          ポインタが示すメモリ位置のデータをデクリメント
  や・く・そ・く・よ          ポインタが示すメモリ位置のデータを出力
  フルフルフルムーン      ポインタが示すメモリ位置のデータに入力
  キスキス…             ポインタが示すメモリ位置のデータがヌルなら対応する キス…したくなっちゃった… までジャンプ
  キス…したくなっちゃった… ポインタが示すメモリ位置のデータがヌルじゃないなら対応する キスキス… までジャンプ


430 :デフォルトの名無しさん:04/10/13 23:29:04
例:Hello world
おにいさまおにいさまおにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさま
おにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさまおにいさまおにいさま
ネコミミ!おにいさまおにいさまおにいさまおにいさまおにいさまおにいさまネコミミ!
おにいさまおにいさまネコミミモードネコミミモードネコミミモード私のしもべー
キス…したくなっちゃった…ネコミミ!おにいさまおにいさまネコミミ!おにいさま
ネコミミモードネコミミモードネコミミモード私のしもべーキス…したくなっちゃった…
ネコミミ!ネコミミ!や・く・そ・く・よネコミミ!おにいさまや・く・そ・く・よ
おにいさまおにいさまおにいさまおにいさまおにいさまおにいさまおにいさま
や・く・そ・く・よや・く・そ・く・よおにいさまおにいさまおにいさまや・く・そ・く・よ
ネコミミ!や・く・そ・く・よネコミミモードネコミミモード私のしもべーネコミミモード
おにいさまおにいさまおにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさま
おにいさまおにいさまネコミミモード私のしもべーキス…したくなっちゃった…ネコミミ!
や・く・そ・く・よネコミミ!や・く・そ・く・よおにいさまおにいさまおにいさま
や・く・そ・く・よ私のしもべー私のしもべー私のしもべー私のしもべー私のしもべー
私のしもべーや・く・そ・く・よ私のしもべー私のしもべー私のしもべー私のしもべー
私のしもべー私のしもべー私のしもべー私のしもべーや・く・そ・く・よネコミミ!
おにいさまや・く・そ・く・よ

431 :デフォルトの名無しさん:04/10/13 23:48:33
ある意味すげえ……

432 :デフォルトの名無しさん:04/10/14 06:56:41
ワラタ

433 :デフォルトの名無しさん:04/10/14 12:30:48
neko mimi fuckインタプリタまだ?

434 :デフォルトの名無しさん:04/10/15 13:16:09
neko mimi Fu**♥インタープリタキター
http://tokuhirom.dnsalias.org/~tokuhirom/cl/2004-10-15.html#2004-10-15-4

435 :デフォルトの名無しさん:04/10/15 13:41:20
>>430
GJ!!
いろいろ置換してみると面白そうだなw

436 :デフォルトの名無しさん:04/10/15 13:55:53
>>434
500で落とせね

437 :デフォルトの名無しさん:04/10/16 07:14:16
>>436
なおったっぽいよ

438 :デフォルトの名無しさん:04/10/16 07:24:21
test

439 :デフォルトの名無しさん:04/10/17 04:17:05
>>365
http://www.securiteam.com/unixfocus/6A00N1F3FK.html

誰かApache2.0対応してくれんもんか。

440 :デフォルトの名無しさん:04/10/20 14:18:56
理論系の感覚としては0を'-'するとあくまでも-1であって、255と同一視するのには抵抗があるなぁ。
反対にメモリは基準点から対称に広がっている感覚なので、いきなり'<'するのには抵抗ない。

あと、文字コードに無条件でASCIIを使っているのも...
自己書き換えがらみを論じる場合は"><+-.,[]"に小さい数字を与えた方がコードが小さくなるはずだし、負数も含めた文字コードなんてもあっても良いと思う。

441 :デフォルトの名無しさん:04/10/20 15:38:12
ガロア体

442 :デフォルトの名無しさん:04/10/20 16:50:43
広い目で見るとFORTHの末裔だね

443 :デフォルトの名無しさん:04/10/20 21:33:24
なるほどな

444 :デフォルトの名無しさん:04/10/26 02:38:46
フィボナッチ数を再帰的に計算するプログラムを考えたのですが、調べているうちに
「原始帰納的関数はloopだけで計算可能」
というのがありました。

ということは、帰納的関数だけども原始帰納的関数でないアッカーマン関数はBrainf*ckでは
計算不可能ということで良いのかな?


445 :デフォルトの名無しさん:04/10/26 18:43:26
つーか関数作れればいいんだよ
関数作れないなら何もできないと思っていい

446 :デフォルトの名無しさん:04/10/26 22:37:29
BrainFuck で書いたプログラムで任意の Turing Machine を
エミュレートできるから、どの帰納的関数も定義できる。
もちろん Ackermann 関数も。

447 :デフォルトの名無しさん:04/10/29 04:20:08
>>424
すまんね、パーティションごと逝かれてしまったよ。ただいま復旧作業中だが tool-ya.ddo.jp のサイトは
完全にお遊び用だったからバックアップも取ってなかったし、ただいまあちこちのマシンから発掘作業中。
しかし件のアプレットのソースはまだ見つかってない…

448 :447:04/10/29 15:41:53
あーマジでないっぽいっす。archive.org にも転がってなかったし、誰か
ダウンロードしてる人居たらどっかのアップローダーか postmaster@tool-ya.ddo.ジェーピー
まで送ってください。

449 :デフォルトの名無しさん:04/10/31 19:43:20
とりあえず、俺にはまだ
>>10の動きが、
同じならカッコ内ではなく、違ってればカッコ内としか読めない。
解説キボンヌ。


450 :447:04/11/02 01:37:31
ディスク増設のためにテープに取ったバックアップ中にはっけーん。
まだ復旧作業が残ってるので再開はもうしばらくお待ちください。

ところで , の文字入力は BrainFuck の仕様的にエコーバックなしなのかね?
>>1 しか読んでないんで作るときに迷ったんだけど、大抵の処理系はエコー
バックすんのが標準かと思ってそうしたんだが (Java とか ANSI C の
getchar() とか/仕様的にエコーバックについては言及されていないと思うが
事実上ね)。

451 :デフォルトの名無しさん:04/11/03 21:36:15
とりあえずチェックボックスとかで選べるようにすればいいんでない

452 :デフォルトの名無しさん:04/11/07 16:23:03
>>450
乙です
復帰したらまた遊ばせてもらいます。


453 :447:04/11/10 04:11:30
とりあえず復活してまつ
エコーバックの修正は暇があるときにまたやりまっす。
あとダブルバイト文字の扱いどうしよーかな…
http://tool-ya.ddo.jp/program/brainfuck/index.html

454 :デフォルトの名無しさん:04/11/10 16:10:18


455 :デフォルトの名無しさん:04/11/14 23:13:57
++++[>>++++++++<<-]++[>>>+++++<<<-]++++++++[>+++++++++++<-]>-.<++++[>++++<-]>+.-
------.<++++[>+++++<-]>-.>.<<++++[>----<-]>-.++++++++++++.--.--------.++++++++++
++++.>.<-----.---------.<++++[>+++++<-]>-.----.>.<-----------.+++++.>.<++++++.--
----------.---.>.<++++++++++++++.--------------.++++++++++++.++++.<++++[>----<-]
>.+++++++++.-----------.++.<++++++[>------<-]>--.>>.<<------.>>.<<------.++++++.
---.+++.>>.<<-------.+++++++..-------.+++++++.>>.<<--------.++++++++...------.++
++++.---.>>.<<----.+++++++..--.----.++++++..---.+++.>>.<<-------.+++++++.-------
--.+++++++++.--------.++++++++...---.+++.>>.<<--------.++++++++.-------.+++++++..
----.++++...-------.+++++++.>>.<<.---------.+++++++++...----.++.++...---.+++.

456 :447:04/11/16 01:15:05
デフォルトでエコーバックしないようにしてみた。あと文字入力モードに入ったときに
多少分かりやすくなったか。全角の扱いに関してはまた今度。

履歴見たら最初に作ってからもう2年も経ってんだな。俺も三十路に入ったよ…

457 :デフォルトの名無しさん:04/11/16 16:48:10
コードに改行が入ってると実行したときにコードのカーソルと上2つの表示がずれてきます

458 :447:04/11/17 04:37:26
お、ホントだ。

459 :デフォルトの名無しさん:04/11/20 02:09:26
誰か任意
の入力二つに対して
割り算を行うプログラムを
作ってください。

破錠シマスタ

460 :デフォルトの名無しさん:04/11/22 21:48:38
>>459
-----.+++++++.>>.<<--------.++++++++...------.++
++++.---.>>.<<----.+++++++..--.----.++++++..---.+++.>>.<<-------.+++++++.-------
--.+++++++++.--------.++++++++...---.+++.>

461 :デフォルトの名無しさん:04/11/23 00:19:03
BrainFu**って一見チューリングマシンそのものっぽいけど,
実はけっこう違うよな.なんつーか,本当によく考えてある.

462 :デフォルトの名無しさん:04/11/23 00:24:45
エニグマ暗号機に似てるとオモタ

463 :447:04/11/24 06:36:35
ステップ実行のカーソル位置ずれより先に国際文字出力に対応したザンス。
Shift_JIS でも UTF-8 でも文字出力可能 (になってる事を望む…)。

464 :447=蔓屋 ◆Jz5kO6DFIs :04/11/24 13:30:06
ちなみにこれマルチバイト文字の入力はどうすんだろ。メモリモデル
1Byte = 16bit にして Unicode 入力にでもしなきゃ「今の位置に
一文字読み込む」とかいう動作は無理だで。相変わらず毛唐どもは
てめぇの事しか考えてねぇな。

465 :デフォルトの名無しさん:04/11/25 01:12:11
BraI18Nfuck


466 :デフォルトの名無しさん:04/11/27 20:45:51
チューリングマシンとBrainFuckの大きな違いって何?


467 :デフォルトの名無しさん:04/11/27 22:35:38
>>466
学術と遊びの違い

468 :デフォルトの名無しさん:04/11/27 23:13:45
あああああああ・・・・テスト近づいてるのに・・・・
BrainFuckが・・・・

469 :デフォルトの名無しさん:04/11/28 00:04:22
>>468
気持ちは解るが試験を優先しろ。(BrainFuckが楽しい場合)
気持ちは解るが頭を整理しろ。(BrainがFuckな場合)


470 :デフォルトの名無しさん:04/11/28 01:20:24
いや、>>468は試験にBrainFuckが出るので焦っているのではないか?

471 :デフォルトの名無しさん:04/11/28 02:26:04
>>470
YTなら知っているがUTと言うのは初めてな位「まさか」だよ〜

472 :デフォルトの名無しさん:04/11/29 22:52:51
                  [勇気]
                [勇気][勇気]
             [勇気][勇気][勇気][勇気]
生産が        [勇気][勇気][勇気][勇気]
 追いつかないよ  .[勇気][勇気][勇気][勇気]
   ∧__∧    [勇気][勇気][勇気][勇気][勇気]
   ( ´・ω・)    [勇気][勇気][勇気][勇気][勇気]
   /ヽ○==○  [勇気][勇気][勇気][勇気][勇気]
  /  ||_ | [勇気][勇気][勇気][勇気][勇気][勇気]
  し' ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄


473 :447=蔓屋 ◆Jz5kO6DFIs :04/11/30 08:08:58
>>468 = テスト開始まじかだがまだプログラムが完成してない BF コーダー

474 :デフォルトの名無しさん:04/11/30 08:09:53
名前消し忘れた… '`,、('∀`) '`,、

475 :デフォルトの名無しさん:04/11/30 08:52:17
誰かBrainFuckで動くCPUとか作って売らないかなあ。

476 :デフォルトの名無しさん:04/11/30 13:51:29
CからBrainfuckコードを吐くコンパイラとかないかなあ。

477 :デフォルトの名無しさん:04/11/30 16:00:48
>>475
BrainFuck でエミュレータかあ
# と、揚げ足取り

478 :デフォルトの名無しさん:04/11/30 16:17:28
>>477
うわ、「で」→「が」を素で脳内変換して読んでた、
今#を読んでワロタ


479 :デフォルトの名無しさん:04/11/30 18:30:11
( ゚Д゚)

( ゚Д゚)!

(;゚Д゚)・・・


(;;゚Д゚)そういえば乱数使えな・・・

480 :デフォルトの名無しさん:04/11/30 18:47:26
>>479
言い出しっぺの法則ということで、疑似乱数発生器はおまかせしてよろしいでしょうか?

481 :デフォルトの名無しさん:04/12/01 00:00:28
誰かBrainFuckを出力するCコンパイラ作ってくれないかな。
#本末転倒だけどw

482 :デフォルトの名無しさん:04/12/01 01:12:58
条件分岐がうまく実現できればC→Brainfuckも夢ではない

483 :デフォルトの名無しさん:04/12/01 03:18:30
BrainFuckのプログラムって普通に書いたら
再入可能・再配置可能・再使用可能のどれにも該当しないよなあ。

484 :デフォルトの名無しさん:04/12/01 03:19:16
あ、再配置は可能か。初期状態でポインタの位置がずれてればいいのか。

485 :デフォルトの名無しさん:04/12/01 19:54:13
>>479
大丈夫。優秀な乱数発生器を作ればいい
時計とか取れるようにシステム変数みたいな領域が
どこかにあればいいよね

486 :デフォルトの名無しさん:04/12/02 03:35:53
擬似乱数のようにアルゴリズムでごまかせるものは良いが、
シードに使う現在時刻とかは無理だな。毎回入力してもらうか。

487 :デフォルトの名無しさん:04/12/02 13:46:26
起動時にメモリがゼロクリアされてなければいいんじゃない。

488 :デフォルトの名無しさん:04/12/02 13:52:50
>>487
ネタだよね?


489 :デフォルトの名無しさん:04/12/02 20:12:56
>>488
TRONの仕様

490 :デフォルトの名無しさん:04/12/02 20:24:56
POSIX API が(ry

491 :デフォルトの名無しさん:04/12/02 20:32:30
BFでゼロクリアされてないって大変マンドクサイぞ


492 :デフォルトの名無しさん:04/12/02 22:50:59
[-]
でよくね?

493 :デフォルトの名無しさん:04/12/02 23:15:21
>>492
それを何回やらにゃならんのだ〜

494 :デフォルトの名無しさん:04/12/03 13:45:05
>時間取得のシステム領域

そろそろ架空CPUを妄想してもいい頃なんじゃないの。
てか、ここででっち上げてデファクトスタンダードにしちまおう。

495 :デフォルトの名無しさん:04/12/06 02:59:39
LIFE GAMEのグライダー発生器でプログラミングネタをふと思い出した。

496 :デフォルトの名無しさん:04/12/13 01:33:38
RLE圧縮してもいいですか?

497 :デフォルトの名無しさん:04/12/20 00:57:13
マイコンとロジックゲートを使わずにBrainFuckが走る
まぁチューリングマシンみたいなもんって作品例ってありますか?

はーどな話で須磨祖

498 :デフォルトの名無しさん:04/12/25 15:45:46
初めてダウソしました。最高!
なんか自分がPCの中枢に触れてるような気になれるぐらいΣd(・ω・´)イイ!!!

499 :デフォルトの名無しさん:04/12/26 10:23:33
>>498
じゃ次はWhiteSpaceにチャレンジだ

500 :デフォルトの名無しさん:04/12/26 16:37:09
INTERCAL の読み物はないかぇ?

501 :デフォルトの名無しさん:04/12/27 13:19:58
即値代入ってできないんですか?

502 :デフォルトの名無しさん:04/12/27 13:50:12
>>501
できません、もりもりインクリメントしてください。

503 :デフォルトの名無しさん:04/12/27 18:33:25
#include <stdio.h>
int main(){
int i,num;
FILE *fp;

printf("値?");
scanf("%d",&num);
if(fp = fopen("out.txt","w")){
for (i=0;i<num;i++)
fprintf(fp,"+");
fclose(fp);
}
}

504 :デフォルトの名無しさん:04/12/31 11:50:36
暇なんで2chネラー向きのBrainFuckのネイティブコンパイラつーのを
作ってみるわ。もちろんWindowsネイティブな。PEフォーマット調べることから始めるからかなりまちなー。

505 :デフォルトの名無しさん:04/12/31 15:41:08
ワラタ。まあがんばれ。

506 :デフォルトの名無しさん:05/01/01 04:16:47
”奉仕の会”の本買えなかった…orz


507 :デフォルトの名無しさん:05/01/12 12:35:27
http://tool-ya.ddo.jp/program/brainfuck/index.html
ここいつのまにか404なんだけど

508 :デフォルトの名無しさん:05/01/13 10:13:07
>>507
???

509 :デフォルトの名無しさん:05/01/13 12:47:22
問題なく使えるね。

510 :デフォルトの名無しさん:05/01/13 20:57:19
マクロ定義して高級言語化できるようにしてくれ

511 :デフォルトの名無しさん:05/01/22 01:03:22
BrainFuckにBrainをFuckされたんですが
訴えることは可能ですか?

512 :デフォルトの名無しさん:05/01/22 11:04:00
>511
ワカンネェ。

513 :デフォルトの名無しさん:05/01/22 11:34:46
Fuck されたBrainでBrainFuckをHackすることはできます。


514 :デフォルトの名無しさん:05/01/26 06:58:11
誰か今までに発見された移動とか値コピーとかのまとめ作ってくれないか。
wikiとかで。

515 :デフォルトの名無しさん:05/01/26 20:10:44
いやー、BrainFuckはええね。
パーサがswitch1つで出来ちゃったよ・・・

516 :デフォルトの名無しさん:05/01/27 13:54:25
()だけのパーサ?

517 :デフォルトの名無しさん:05/01/27 19:58:57
機械語のほうが高級じゃない?

518 :デフォルトの名無しさん:05/01/27 20:49:57
何をもって高級というのか

519 :デフォルトの名無しさん:05/01/27 21:45:41
これが役に立つ日は来るのか・・・

520 :デフォルトの名無しさん:05/01/27 22:10:06
>>519
この言語は知能パズルでしょ?

521 :デフォルトの名無しさん:05/01/28 05:49:32
何かに応用するとか、役立つかどうかは分からないけど、
初心者に高級言語教える前にこれやった方が、覚えが早くなるんじゃないか。

522 :デフォルトの名無しさん:05/01/28 09:55:52
カレントディレクトリの*.bfを監視して変更されたものを自動的に実行するバッチファイル for WinXP
@echo off
if "%1"=="brainfucking" goto loop
cmd /c %0 brainfucking 2>&1 | %systemroot%\system32\find /v "ファイルが見つかりません"
goto eof

:loop
   for /f "usebackq delims=" %%f in (`dir *.bf /a:a /b`) do (
        echo exec %%f
       bf %%f || echo error
       attrib %%f -a
       echo.
   )
   ping localhost -n 2 >NUL
goto loop
:eof

523 :デフォルトの名無しさん:05/01/31 22:26:48
>>504ガンガレ

524 :デフォルトの名無しさん:05/02/01 01:50:20
コンパイラ自体は即日で出来たけど(当たり前か...)
リンカができない。

Win32のフォーマットじゃないって怒られた。
見直し。鬱打氏脳。

525 :デフォルトの名無しさん:05/02/01 02:29:18
これって0を-したらどうなるの?

526 :デフォルトの名無しさん:05/02/01 03:08:42
00を-したらFFになるが
0を-したらどうなるんだかスラッシュになるんだべか

527 :デフォルトの名無しさん:05/02/01 03:11:47
>>524
ドゾー
http://nienie.com/~masapico/doc_MakeExe.html
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html

528 :デフォルトの名無しさん:05/02/01 04:37:57
この時間までBFにはまってますた。
メモリに残しながら1インクリメントと表示をするコード

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

ttp://tool-ya.ddo.jp/program/brainfuck/index.htmlかなり便利や・・・

529 :デフォルトの名無しさん:05/02/01 05:43:52
いろいろ試すならGUIよりも拡張命令追加したほうが楽だよ。

# コメント
"コメントをstderrに出力"
* # メモリとポインタをリセット
? # メモリをダンプ
@ # 一命令を実行するごとにメモリをダンプのトグル

530 :デフォルトの名無しさん:05/02/01 11:05:26
そんなんbrainfuckじゃないやい!とネットの片隅で叫ぶテスト

531 :デフォルトの名無しさん:05/02/01 13:36:05
>>528
面白いですね

532 :デフォルトの名無しさん:05/02/06 20:14:59
あげりゃレスも増えるだろう

533 :デフォルトの名無しさん:05/02/06 21:37:42
取り敢えず自分の名前を表示するコードを作ってみた。
これ楽しいわ。

534 :デフォルトの名無しさん:05/02/06 21:41:29
languageが回文になっていればacceptしそうでなければrejectするプログラムを書け。
00100100→accept
01101000→reject

535 :デフォルトの名無しさん:05/02/08 15:11:39
>>534
8文字限定。きっともっと短く出来る

,>,>,>,> > > >,<,<,<,<<<<[-> > > >-<<<<]>[-> > > >-<<<<]>[-> > > >-<<<<]>[-> >
> >-<<<<]>[[-]<<<<+> > > >]>[[-]<<<<<+> > > > >]>[[-]<<<<<<+> > > > > >]>[[-]
<<<<<<<+> > > > > > >]<<<<<<<[[-]>+>++++++[>+++++++++++++++++++<-]>.----------
---.+++++.-----.--.<++++[>++++<-]>+.<<<]>-[>++++++++[>++++++++++++<-]>+.++..++
.+++++++++++.++++.<]

>>が多すぎるって怒られたorz

536 :デフォルトの名無しさん:05/02/08 17:54:12
>>535
すげw
乙。

537 :デフォルトの名無しさん:05/02/08 20:32:45
,>,>,>,>,>,>,>,> >+> > > >++++++[<++++[<+++++<++++> >-]>-]<<-------<+<<<<<<
[<->-]<[> > > >+<<<<[-]]<[> > >-<<<-]> > >[> > >+<<<[-]]>[<<<<<-> > > > >-]<<<<<
[> > > > > > >+<<<<<<<[-]]<[> > > > > > >-<<<<<<<-]> > > > > > >[>+<[-]]>
[> > >+.<++++.+++++.-----.--.>++.[-]]>[>.++..++.>-.++++.<<-<<<[-]]

俺も8文字限定で作ってみた。
で、心持ち短くなった。まだまだ短くなりそう。

俺も「>>が多すぎます」って怒られたwwwwwwっうぇ ・・・orz

538 :デフォルトの名無しさん:05/02/08 21:01:41
>>537
accept/rejectを表示させる処理が俺のよりずっとスマートだね。GJ!
acceptを表示した後の[-]はなくてもいいっぽい?

539 :デフォルトの名無しさん:05/02/08 21:22:06
>>538
タハー(ノ∀`)
途中で弄ったときに無駄な処理作っちゃった

訂正前(line:4) [> > >+.<++++.+++++.-----.--.>++.[-]]>[>.++..++.>-.++++.<<-<<<[-]]
訂正後(line:4) [> > >+.<++++.+++++.-----.--.>++.>]>[>.++..++.>-.++++.>]

こんなもんかな

540 :デフォルトの名無しさん:05/02/08 21:50:07
Rubyの圧勝だなw
puts(if gets.chop == $_.chop.reverse then "accept" else "reject" end)

541 :デフォルトの名無しさん:05/02/08 21:53:44
>>540
NondeterministicTuringMachine的に解いてみて。

542 :デフォルトの名無しさん:05/02/08 22:01:41
>>541
はぁ?wわけわかんねー単語出してんじゃねえよwww
Rubyの圧勝wwwwwwwwww

543 :デフォルトの名無しさん:05/02/09 04:53:35
痛いのが沸いてるな

544 :デフォルトの名無しさん:05/02/09 11:52:09
>>537
01010101がrejectされるのは仕様ですか(´・ω・`)

545 :デフォルトの名無しさん:05/02/09 12:08:15
>>544
回文になってないだろが

546 :デフォルトの名無しさん:05/02/10 01:16:00
>>543
痛いのは>>541です


547 :デフォルトの名無しさん:05/02/11 02:08:22
BF->.com実行ファイルのコンパイラ誰か作ってー

548 :デフォルトの名無しさん:05/02/11 04:19:21
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>BreinFack!

549 :デフォルトの名無しさん:05/02/11 04:26:22
ruby厨はbrainやfuckのスペルもまともに綴れないほど知能が低いのか。
そりゃ非決定性チューリングマシンなんて聞いた事もないだろうな。

550 :デフォルトの名無しさん:05/02/11 05:54:32
Rubyは最高言語!!!!!!!!!!!!!!!!!!

551 :デフォルトの名無しさん:05/02/11 06:12:42
限定された条件のでのプログラムが面白いのに…
例えるなら、俳句の会に乱入にしてもっと400字で発表したほうがいい!
とか言ってるようなもんと思った。

552 :デフォルトの名無しさん:05/02/11 06:32:01
留byほどすばらしいげんごは存在しない。

553 :デフォルトの名無しさん:05/02/11 06:34:32
命令数同じでもう少し使いやすい(あるいはもっと使いにくい)言語には出来ないものか。

554 :デフォルトの名無しさん:05/02/11 07:50:59
超小型LISPはどうだ?
もしくはforth、prologだな

555 :デフォルトの名無しさん:05/02/11 10:48:13
Rubyとか叫ぶならこのぐらいやって欲しいなぁ
+[>>>>+++++++++[<+++++++++<+++++++++++++<++++>>>-]<+.<.>>++++[<++++>-]<.[-]<++++.[-]<---.[-]<]

556 :デフォルトの名無しさん:05/02/11 10:49:58
>>555
Ruby厨がそんなことするわけもできるわけもない。

557 :デフォルトの名無しさん:05/02/13 19:35:30
釣られ厨のせいでスレが台無しだな

558 :デフォルトの名無しさん:05/02/13 22:53:25
++++++[>++++[>+++>+++++<<-]<-]>>++++++.>---.---.+++.-----.-.

559 :デフォルトの名無しさん:05/02/14 00:13:54
++++++++[>+++[>+++>++++>+++++<<<-]<-]>>-.>+.>.----.+.

560 :デフォルトの名無しさん:05/02/14 00:26:06
>>555 短縮
+[>>>>>+++++++++[<++++[<++<+++<+>>>-]<+<+>>>-]<<+.<.>>++++[<++++>-]<.[-]<++++.[-]<---.[-]<]

561 :デフォルトの名無しさん:05/02/15 00:47:48
>>553
BrainKill
・命令以外の基本動作はBrainF*ckと同様とする

命令
+ ポインタが示すメモリ位置のデータをインクリメントし、ポインタをインクリメントする
- ポインタが示すメモリ位置のデータをデクリメント
> ポインタを3進める
< ポインタを2戻す
. ポインタが示すメモリ位置のデータを出力
, ポインタが示すメモリ位置のデータを出力
{ ポインタが示すメモリ位置のデータの分だけ戻す
} ポインタが示すメモリ位置のデータの分だけ進める

562 :デフォルトの名無しさん:05/02/15 01:01:39
すごろくゲームのようだ…

563 :デフォルトの名無しさん:05/02/15 06:08:44
>>561
チーター方式かよw

564 :デフォルトの名無しさん:05/02/15 08:30:00
>>563
私が参加しているプロジェクトでは次のように歌われている。
♪一日一歩、三日で一歩、一歩進んで二歩下がる
#ダメすぎ

そりゃそうと、ポインタを進めるのに無駄に手数が増えただけで、基本的には変わらないのかな?<BrainKill

565 :デフォルトの名無しさん:05/02/15 13:32:20
>>564
ループの命令がないじゃん。
{}を駆使するとループ組めるのかな>BrainKill

他にも+ではポインタもインクリメントされるので、同じデータを何回もイン
クリメントする時は大変そうだし、かなり頭がこんがらがりそうだ……。

カッコのマッチングがないので、インタプリタを作る方は本当にスイッチ1つで済むね。


566 :デフォルトの名無しさん:05/02/15 15:21:26
入力命令がないわけだが。

567 :デフォルトの名無しさん:05/02/15 17:31:55
>>566
入力ミスはお察し下さい

568 :デフォルトの名無しさん:05/02/15 18:58:17
+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<
+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<
+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<
+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+><<+
+><<+><<+><<+><<+><<+><<
><<.><{

'A'を無限に表示@BKill
「>>が多すぎます」にならないように工夫されてると思った。

569 :デフォルトの名無しさん:05/02/16 01:20:12
>>568
なんかきれーだな

570 :デフォルトの名無しさん:05/02/24 13:07:33


571 :デフォルトの名無しさん:05/03/04 19:25:30
うひょーハードウェア実装してー言語だなぁ!

572 :デフォルトの名無しさん:05/03/04 19:32:55
標準入出力を除けば、電気使わなくても実装できそうだよな。

573 :デフォルトの名無しさん:05/03/05 09:09:01
>>572
交通整理なんかで使うカウンタを1列に並べて
ポインタ位置に目印を置いたものを想像
 ↓
ソースはどうしようか…大きさの違うボールを並べるか
 ↓
レールにボールを転がすと適当に振り分けられて
ボタンを押したりポインタを動かしたりベルを鳴らしたり…
 ↓
ピタゴラスイッチ♪

…と思ったら放送終了してたのか。じゃあインクレディブルマシーンで。


574 :デフォルトの名無しさん:05/03/05 14:31:45
>>573
カウンタならダイソーにあったよ。
ちょっと惹かれた。

575 :デフォルトの名無しさん:05/03/05 22:52:09
TIMってまだ開発されてたのか

576 :デフォルトの名無しさん:05/03/07 20:33:19
www   BFの+
っうぇwww BFの-
うはwww  BFの>
おkkwww BFの<
みwなwぎwっwてwきwたwぜw BFの ,
修正されるねwwwwwwwww  BFの .
ワロスwww  BFの[
ワロタwww   BFの]

Hello,world!
wwwwwwwwwwwwwwwwwwwwwwwwwwwワロスwwwうはwwwwww
wwwwwwwwwwwwwwwwwwwwwおkkwwwっうぇwwwワロタwwwうは
www修正されるねwwwwwwwwwおkkwwwwwwwwwwwwwwwワロスww
wうはwwwwwwwwwwwwwwwwwwwwwwwwおkkwwwっうぇwwwワロ
タwwwうはwwwwww修正されるねwwwwwwwwwwwwwwwwwwwwww
wwwwwwww修正されるねwwwwwwwww修正されるねwwwwwwwwwww
wwwwwww修正されるねwwwwwwwwwワロスwwwっうぇwwwワロタwwwおkk
wwwwwwwwwwwwwwwワロスwwwうはwwwwwwwwwwwwwwwwww
wwwwwwwwwおkkwwwっうぇwwwワロタwwwうはwww修正されるねwww
wwwwwwおkkwwwwwwwwwwwwwwwwwwwwwwwwワロスwwwうは
wwwwwwwwwwwwwwwwwwwwwwwwwwwおkkwwwっうぇwwwワロ
タwwwうはwwwっうぇwww修正されるねwwwwwwwwwおkkwwwwwww
wwwwwwwwワロスwwwうはwwwwwwwwwwwwwwwwwwwwwおkkw
wwっうぇwwwワロタwwwうはwww修正されるねwwwwwwwwwwwwwwww
ww修正されるねwwwwwwwwwっうぇwwwっうぇwwwっうぇwwwっうぇww
wっうぇwwwっうぇwww修正されるねwwwwwwwwwっうぇwwwっうぇwww
っうぇwwwっうぇwwwっうぇwwwっうぇwwwっうぇwwwっうぇwww修正され
るねwwwwwwwwwワロスwwwっうぇwwwワロタwwwおkkwwwwwwwwwww
wwwwワロスwwwうはwwwwwwwwwwwwwwwwwwwwwwwwwwwおk
kwwwっうぇwwwワロタwwwうはwwwwww修正されるねwwwwwwwww

577 :デフォルトの名無しさん:05/03/07 21:06:43
普通にワロス

578 :デフォルトの名無しさん:05/03/07 22:51:04
VIPPERかよ・・

579 :デフォルトの名無しさん:05/03/07 22:51:23
痴漢ネタ飽きた

580 :デフォルトの名無しさん:05/03/08 00:42:53
このスレが建ってからもう約二年と半年経つんだな・・・
あれからホントに色々あった。。。
このスレ保守されまくりで長生きしてるよな。
>>370-372あたりなんかGJだよな。。。
まあそれは俺だけどな。

581 :デフォルトの名無しさん:05/03/08 05:20:45
>>576
http://d.hatena.ne.jp/seijotcp/20050208

スレ違いだがこれを思い出したw

582 :デフォルトの名無しさん:05/03/10 22:09:14
加 BFの+
減 BFの-
進 BFの>
戻 BFの<
始 BFの[
終 BFの]
入 BFの,
出 BFの.


Hello World!


583 :デフォルトの名無しさん:05/03/11 00:17:56
>>582
Hello World!
減始進加進加戻戻減減減減減減減終進減出戻加加加加加加加加加加始進加加加進減減減戻
戻減終進減出加加加加加加加出出加加加出進加出減減減減減減減減減減減減出戻加加加加
加加加加出減減減減減減減減出加加加出減減減減減減出減減減減減減減減出進加出

584 :デフォルトの名無しさん:05/03/11 01:10:12
>>583
な、なんかわかりやすい気がする……

585 :デフォルトの名無しさん:05/03/11 01:13:10
>>584
気がするだけだと思うんだ

っと思っていたらわかりやすい気がしてきた。

586 :デフォルトの名無しさん:05/03/12 07:01:56
日本語プログラミング言語「脳姦」か。

スレ違いなんだけど、unlambda のよる unlambda インタープリタ、てのを見つけた。
http://c2.com/cgi/wiki?UnLambdaLanguage

brainfuck で brainfuck のインタープリタ書いた猛者っているのかなあ。

587 :デフォルトの名無しさん:05/03/12 08:33:12
>>586
http://esoteric.sange.fi/brainfuck/bf-source/prog/BFI.BF

588 :586:05/03/12 19:54:07
>>587
サンクス。すごいな。目潰れるかと思った。

589 :デフォルトの名無しさん:05/03/14 16:30:41
>>587
本当に動くのか疑問だ・・・

590 :デフォルトの名無しさん:2005/03/25(金) 21:27:01
Brainfuckを改造してシンプルにグラフィックスを出力する機能を搭載するにはどうすればよいですか

591 :デフォルトの名無しさん:2005/03/25(金) 21:56:15
PutPixel(100,200,0xFF8800)と標準出力に出力されたら点を打つ

592 :デフォルトの名無しさん:2005/03/25(金) 22:27:21
普段使っている領域の前(後ろ)の部分が書き換えられたら描画する

593 :デフォルトの名無しさん:2005/03/25(金) 22:35:33
@で描画コマンド実行(dr@w)
0: 描画コマンド番号(0=描画色設定, 1=点, , 2=直線, ...)
1, 2, 3, ... 描画コマンドに対応した引数

+>++>+++<<@
で(2,3)に点を表示

594 :デフォルトの名無しさん:2005/03/26(土) 00:01:44
メモリの一部をVRAMにすりゃいいだろ

595 :デフォルトの名無しさん:2005/03/27(日) 16:50:35
ねぇ、おまいら、nondeterministicTMのプログラムが書ける言語もいいけど、
deterministicTMのプログラムを書ける言語ってないの?処理時間は無視して。

596 :デフォルトの名無しさん:int 2ch =05/04/01(金) 23:28:29
iアプリのインタプリター見つけた
ttp://appget.com/im/pc/apview_024483.htm

597 :デフォルトの名無しさん:2005/04/17(日) 02:00:35
俺の携帯はBREWだから、出来ないんだYO!!
誰かせめてBREWじゃなくていいから、CGIに作ってYO!!

598 :デフォルトの名無しさん:2005/04/17(日) 02:01:12
VIP板よりWEBプログラマ急募のお知らせ!!!

日本を抗日中国人から救う気概のあるプログラマさん
以下にて作戦会議をしていますのでお力を貸してください!!!

http://cgi36.plala.or.jp/bargiko/bargiko.cgi?roomID=1113648718774

よろしくお願いします!!

599 :デフォルトの名無しさん:2005/04/18(月) 08:38:50
>597
俺のもBREWなんで、CGIで作れないかなと思ったんだが、
入力の処理ってどうする?

BFのソースと一緒に入力用のバッファも記述させて、
入力の命令が来たらバッファから1Byteちぎって入力とする。
とか考えたんだけど、それだと少なくともヒット&ブローはできないな。

どうせCGIにするならメモリ上にリファラとかファイルに保存される領域とか
PNGで出力されるVRAMとか用意して、カウンタやBBS作れたらいいな。

600 :デフォルトの名無しさん:2005/04/18(月) 14:52:09
インタプリタなんて10数行で作れるやん。

601 :デフォルトの名無しさん:2005/04/18(月) 23:38:04
エンジンだけならね
使いやすくするのはめんどいよ

602 :デフォルトの名無しさん:2005/04/19(火) 00:55:26
IDE凝るまでもなくデバッグ用拡張命令いくつか入れればそんな面倒でもないし実用性?もかなり高くなるよ。

603 :デフォルトの名無しさん:2005/05/21(土) 23:43:48
age

604 :デフォルトの名無しさん:2005/05/27(金) 12:32:22
こっちもすごい!
Whitespace
ttp://compsoc.dur.ac.uk/whitespace/index.php


605 :デフォルトの名無しさん:2005/05/27(金) 13:22:25
>>604
それふつうの環境だと見る事ができないって言う最大の欠点があるんだよね(w
Webで公開するときは色変更してほしい位だ。


606 :デフォルトの名無しさん:2005/05/28(土) 12:26:15
>>605
欠点なんだが、BFらしさの極限という気もするw

607 :デフォルトの名無しさん:2005/05/28(土) 20:40:38
>>606
紙にも書けない(w

絵にも描けないおもしろさかな。

608 :デフォルトの名無しさん:2005/06/05(日) 00:18:13
>>607
プログラマーの正しいWhitespaceの使い方
上司「○○君、出来たのかね?」
○○「はい。」
--- ここで白紙のコピー用紙を数枚差し出す ---
○○「家でWhitespaceのコードを書いてきました。確認して下さい。」

609 :デフォルトの名無しさん:2005/06/05(日) 01:43:39
>>608
俺の部下なら一回まで許す。


610 :デフォルトの名無しさん:2005/06/11(土) 17:51:35
うむ。忙しくなければ、俺も一回は許す。
で、そいつと一緒にアメリカンなトム笑いをすると思う。

611 :デフォルトの名無しさん:2005/06/11(土) 19:35:53
>>610
2度目と二番煎じは人事にチクリだよね。

#でもここを読んでしまったので一度目も無理かもな〜。

612 :デフォルトの名無しさん:2005/06/24(金) 20:50:10
>>608
数枚じゃ終わらない悪寒。数百枚とか。

613 :デフォルトの名無しさん:2005/06/24(金) 20:51:00
ちっちゃいフォントでプリントアウトすれば無問題

614 :デフォルトの名無しさん:2005/06/25(土) 00:35:48
Whitespaceのソースコードは素晴らしいことにどんな小さなフォントで印刷しても
可読性は低下しないからな
#ゼロより低くはなりようがない

615 :デフォルトの名無しさん:2005/06/25(土) 19:28:25
その代わり向上もしないがな

616 :デフォルトの名無しさん:2005/06/27(月) 07:36:09
WindowsやMacintosh程度の規模のOSのコードをガムの包み紙1枚に印字することも可能だ。

617 :デフォルトの名無しさん:2005/06/27(月) 10:28:41
つか白紙の紙用意すればそれで何のソースコードにもなるなw

618 :デフォルトの名無しさん:2005/06/30(木) 08:48:35
これからは仕様書もWhitespaceで書こう。

619 :デフォルトの名無しさん:2005/06/30(木) 12:28:17
>>618
メールで提出してくれ。

620 :デフォルトの名無しさん:2005/07/01(金) 22:15:31
>>619
画像にしてメールで送信します。

621 :デフォルトの名無しさん:2005/07/04(月) 22:25:27
こういうのがあった。
xyzzyでBFできるみたい。
ttp://mug-g.halfmoon.jp/log/eid151.html


622 :デフォルトの名無しさん:2005/07/04(月) 22:39:33
>>621
げっちゅついでにメモ残した(w


623 :デフォルトの名無しさん:2005/07/28(木) 09:29:41
>>189
8a9
> int l=0;
16,17c17,18
< case '[': if (!memory[pointer]) while (*(++p) != ']') ; break;
< case ']': if (memory[pointer]) while (*(--p) != '[') ; break;
---
> case '[': if (!memory[pointer]) while (*(++p) != ']' || l>0){ if(*p == '
[') ++l; if(*p == ']') --l; } break;
> case ']': if (memory[pointer]) while (*(--p) != '[' || l>0){ if(*p == '
]') ++l; if(*p == '[') --l; } break;
26a28
> return 0;

624 :デフォルトの名無しさん:2005/07/28(木) 12:08:10
>++[>+++++[>+++[<<<++++> > >-]<<<+>>-]<-]>++++[>+++[<<--->>-]<-]>+++[<----->-]
++[<<<.>.<.>>.>-]>+++[>++++[<<----->>-]<-]<<<<.>+.<.> > >.>+++++[<<<------> > >-]
++[<<<<.>.<.>>.>>-]+++++[<<<-----> > >-]<<<<.>++.<.> > >---.<<<.>+++.


625 :デフォルトの名無しさん:2005/07/29(金) 06:44:09
あれ、>>189って [ ] の入れ子に対応してなくね?

626 :デフォルトの名無しさん:2005/07/29(金) 07:30:46
>>623はそのためのパッチだと思うが。

627 :デフォルトの名無しさん:2005/07/29(金) 07:52:26
>>626
あーそういうことなのか、やっと理解したよ
なんか>>623は俺の知らない言語で書かれたコードだと思ったw

628 :デフォルトの名無しさん:2005/07/29(金) 13:04:47
>>627
diffとpatchは覚えておくと便利ですぜ。

629 :デフォルトの名無しさん:2005/09/13(火) 06:54:40
多重ループを再起で処理する実装気盆ぬ

630 :デフォルトの名無しさん:2005/09/13(火) 22:01:53 ?
>>629
D言語だけど

// brainfuck interpreter

import std.stream;

char[] memory = [0];
int pointer = 0;

char[] script = " ";
int position = 0;

int main(char[][] args){
script = args[0];
bf(0, true);
return 0;
}
void bf(int homePosition, bit active){
for(; position < script.length; position++) switch(script[position]){
case '+': if(active) memory[pointer] ++; break;
case '-': if(active) memory[pointer] --; break;
case '>': if(active) if(++ pointer >= memory.length) memory ~= 0; break;
case '<': if(active) assert(-- pointer >= 0); break;
case '.': if(active) std.stream.stdout.write(memory[pointer]); break;
case ',': if(active) std.stream.stdin.read(memory[pointer]); break;
case '[': bf(position++, active && !!memory[pointer]); break;
case ']': if(active) position = homePosition - 1; return; break;
default: break;
}
}


631 :デフォルトの名無しさん:2005/09/13(火) 22:05:01
とりあえず
std.stream.stdoutは最近のバージョンで削除された。
代替えとしてstd.cstream.doutを使おう。

632 :631:2005/09/13(火) 23:53:29
for文使ってるのが凄く気に入らないので再帰のみに書き直してみた。
// brainfuck interpreter

import std.cstream;

char[]memory = [0];
int pointer = 0;
char[]script;

int main(char[][] args){ 
    if(args.length<=1)return 0;
    script = cast(char[])std.file.read(args[1]) ~ ']';
    bf(0,true);
    return 0;
}
int bf(int position,bool active){
    switch(script[position]){
        case '+':if(active) memory[pointer]++;break;
        case '-':if(active) memory[pointer]--;break;
        case '>':if(active && ++pointer == memory.length ) memory ~= 0;break;
        case '<':if(active) --pointer;break;
        case '.':if(active) dout.write(memory[pointer]);break;
        case ',':if(active) dout.read(memory[pointer]);break;
        case '[':int next = bf(position + 1 , active && memory[pointer]);
            return bf((active&&memory[pointer]) ? position : next , active);
        case ']':return position + 1;
        default:
    }
    return bf(position+1,active);
}

633 :デフォルトの名無しさん:2005/09/14(水) 00:15:00
>>631
知らんかった。THX

やー俺も最初一文字ずつ再帰でやろうとしたんだけど、
ロジックは合ってるはずなのに全然うまくいかなくて

よく見ると色々改良されてるなあ

634 :デフォルトの名無しさん:2005/09/14(水) 12:16:26
>>633
> ロジックは合ってるはずなのに全然うまくいかなくて
こういうときはロジックが間違ってるハズなので自分のソースでも他人の物として読みなおすといいよ。
だいたいとてつもなく間抜けな間違いにテラハズカシスな思いをするのだけど、そういう間違いって思いこみ
で気が付けなくなってるんだよね。orz


635 :デフォルトの名無しさん:2005/09/14(水) 16:26:10
>>634
あーいや、実はテスト用のbrainfuckスクリプトが間違っていたんですわ

636 :デフォルトの名無しさん:2005/09/14(水) 16:27:19
しょーもなっ!

637 :デフォルトの名無しさん:2005/09/14(水) 16:44:03
>>635
なんじゃその激ワロスな事態
PCが動かない壊れたカモ(ビクビク)←実はコンセント入ってない並にワラタ



638 :631:2005/09/14(水) 17:10:54
高速化を重視して末尾再帰のみに変形した。
これで普通のループのみのパターンと速度はほぼ同じはず。
import std.cstream,std.file;
int main(char[][] args){
    if(args.length<=1)return 0;
    char[]memory,script = cast(char[])std.file.read(args[1]);
    bf(script.ptr,script.ptr+script.length,memory.ptr,memory);
    return 0;
}
char*bf_jmp(char*pos,int step,int nest){
    if(!nest)return pos-step;
    return bf_jmp(pos+step,step,nest + (*pos=='[')-(*pos==']'));
}
void bf(char*pos,char*end,char*ptr,char[]memory){
    if(pos == end)return;
    if(ptr == memory.ptr+memory.length)ptr=&(memory~=0)[$-1];
    switch(*pos){
        case '+':++*ptr;break;case '-':--*ptr;break;
        case '>':++ ptr;break;case '<':-- ptr;break;
        case '.':dout.write(*ptr);break;
        case ',':din .read (*ptr);break;
        case '[':if(!*ptr)pos = bf_jmp(pos+1,1,1);break;
        case ']':if( *ptr)pos = bf_jmp(pos-1,-1,-1);break;
        default:
    }
    return bf(pos+1,end,ptr,memory);
}

639 :デフォルトの名無しさん:2005/09/14(水) 17:19:01
わざわざ末尾再帰にするくらいならループでいいんじゃないのか?

…などと思う俺は素人ですかそうですか

640 :デフォルトの名無しさん:2005/09/14(水) 19:28:58
動けばいいのさ動けば

641 :デフォルトの名無しさん:2005/09/14(水) 21:37:07
いやそれは美しくない

642 :デフォルトの名無しさん:2005/09/15(木) 00:09:45
>>640は実務畑でプログラムを覚えた人
>>641はアカデミックな世界でプログラムを覚えた人。

僕は実務畑でプログラムを覚えた後でアカデミックな環境に行った変な人
だからどっちの言い分も理解できるけど、どっちももう一方をみましょうとだけ言うおじちゃんなの。OTL


643 :デフォルトの名無しさん:2005/09/29(木) 12:50:26
あれ? ポインタ値って負の数も許容されるんだっけ?

644 :デフォルトの名無しさん:2005/09/29(木) 14:52:15
BFのインデックスのことなら別に禁止はされてないんじゃないの。
たいていの実装ではアボーんしそうだが。

645 :デフォルトの名無しさん:2005/09/29(木) 20:45:40
dクス。負の数を扱うのはアレだから、とりあえずメモリサイズ 256 にして、回り込むようにしたよ。
.NET の実行ファイル吐き出す奴は出来たから、最適化まで出来たら公開してみるよ。

646 :デフォルトの名無しさん:2005/09/30(金) 01:51:42
できた。
ttp://hp.vector.co.jp/authors/VA027545/bfc/bfc.lzh

647 :デフォルトの名無しさん:2005/10/08(土) 20:28:04
えらい長いな

648 :デフォルトの名無しさん:2005/10/09(日) 21:45:13
, の扱いがおかしい気がする

649 :646:2005/10/09(日) 22:37:58
, は Enter で入力された改行コードもしっかり食べるみたい。
CR or LF の文字が出てきたら、それ以外の文字が出るまでループさせたほうが良いのかな?

650 :デフォルトの名無しさん:2005/10/19(水) 18:10:13
人が居ないな。


某スレで出てきた、菱形を書き出す BF コード。ちょっと短くなった。

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

651 :デフォルトの名無しさん:2005/10/20(木) 00:00:52
すげぇ。

652 :デフォルトの名無しさん:2005/10/20(木) 17:44:40
そういえば、ある BF コードが同じ結果を出すコードの中で最短のものであるかどうかって、証明できると思う?

653 :デフォルトの名無しさん:2005/10/20(木) 17:49:52
無理

654 :デフォルトの名無しさん:2005/10/20(木) 17:58:41
>>652
・証明できるのもある。
例えば
,.
はこれ以上短くならない事がしらみつぶしで証明できる。

・一般的な証明法はない
あるとすると、問題となっているコードより短いコード全ての
停止性が判定できることになる。

と思ったんだがどうだろう。
「最短であることが証明できない」コードは構成できるかな。

655 :デフォルトの名無しさん:2005/10/20(木) 18:05:52
>>654
>・一般的な証明法はない
>あるとすると、問題となっているコードより短いコード全ての
>停止性が判定できることになる。

くあしく

656 :652:2005/10/20(木) 18:09:43
[] が無いと、虱潰しで最短であるかどうかが調べられそうな気がします。
この仮定が合っていれば、証明できないコードには最低限 [] が含まれていることになるんですが……。

今回 652 を思ったわけは、
  1: メモリ配置の工夫によって <> を削減できる
  2: <> の量は計算手順に変化を与えない
から、計算手順を固定で考えれば、最短コードであるかどうかが証明できそうな気がしたんです。

657 :654:2005/10/20(木) 18:25:20
>>655
ごめん。勘違い。

658 :デフォルトの名無しさん:2005/10/20(木) 18:35:23
>>657
しょぼーん

659 :デフォルトの名無しさん:2005/10/20(木) 18:39:24
>>657
勘違いか?正しいと思うが。

660 :デフォルトの名無しさん:2005/10/20(木) 19:27:41
>>659
くあしく

661 :652:2005/10/20(木) 21:11:05
たった今気づいたんだけど、[] の有る無しに関わらず最短コードかどうかの証明は出来るはず。

現在、最短コード候補として有限の長さ L の BF コード A があった場合、
BF の命令数は 8 だから、A より短いコードは有限個で、高々 8 ^ (L - 1) 個。
虱潰しで探せば、いつかは証明できる。

問題は、証明するのに指数時間が必要だということか。
あと , が出現したときに証明がややこしくなるということ。

662 :デフォルトの名無しさん:2005/10/20(木) 21:19:23
アルゴリズムを提示する場合それが
有限時間内に終わることが明らかでないといけない。
+[]
+[.]
+[+-]
...
が"hello, world"を出力しないことをどうやって検証するの?
みりゃわかるってのは無しねw

663 :デフォルトの名無しさん:2005/10/20(木) 21:20:16
>>661
そのためには、全ての長さ(L-1)以下のコードBについて、
「AとBは異なる結果を出す」
事を証明しないといけないが、それはどうする?

664 :652:2005/10/20(木) 21:22:51
>>663
生実行

665 :652:2005/10/20(木) 21:24:29
おけおけ。確かに結果が異なるかどうかを判別する方法についても議論する必要があったか。

666 :デフォルトの名無しさん:2005/10/20(木) 21:28:51
ゲーデル,エッシャー,バッハ―あるいは不思議の環
http://www.amazon.co.jp/exec/obidos/ASIN/4826900252/250-6582120-7916214

これにそのまんまな議論があるんだけど、いまさらこれを薦めていいものか・・・

667 :デフォルトの名無しさん:2005/10/20(木) 21:31:03
>>662
+[] → ループ開始時にカレントポインタが非 0、かつループ内でメモリの値が変化しない → 停止しない
+[.] → 同じく
+[+-] → 同じく
... → 同じ値を3回出力している。"hello, world" にこの並びは無い。(けどこの判定の自動化は無理そう)

668 :デフォルトの名無しさん:2005/10/20(木) 21:47:02
>>664
実行は終わらないかもしれない

669 :デフォルトの名無しさん:2005/10/20(木) 22:38:25
つまり、本質的には停止性問題なので、最短判定はできないと。

670 :652:2005/10/20(木) 23:38:34
う〜ん。流石に停止可能性まで考えると難しいなぁ。

とりあえず、<> の削減に関しては、機械的に出来ると思うんだ。
ポインタ移動のグラフかいて、各点の間の適正距離をだして、メモリを再配置。
メモリ多く使うコードになると、これだけで随分減るしと思う。

671 :デフォルトの名無しさん:2005/10/21(金) 23:54:03
線形合同法で擬似乱数を先頭から 255 個出力するコードが出来たです。
X(n) = (69 * X(n-1) + 255) mod 256 で、X(0) には 0 を指定の決めうちです。

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

672 :デフォルトの名無しさん:2005/10/22(土) 00:34:53
>>650 のコードがもう少しだけ短くなった。コツを覚えてきたみたいだ。

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


あと、>>646 をちょっと弄った。文字じゃなくて数値が出る様にコンパイルすることも出来るように。
改行コードの扱いはちょっと考えさせてくれ。

673 :デフォルトの名無しさん:2005/10/22(土) 10:48:56
このスレがまだあったのか・・・

674 :デフォルトの名無しさん:2005/10/30(日) 11:48:49
まだだ…まだ終わらんよ。頼むよ('A`)

675 :デフォルトの名無しさん:2005/10/30(日) 11:56:32
と思ったけどもうだめぽ…
+++++[>++++++++<-]>.-.<+++[>+++++++++<-]>-.<++++[>++++++++<-]>-.<+++++++[>--------<-]>+.

676 :デフォルトの名無しさん:2005/10/30(日) 12:01:35
指定された文字列を出力するBFコードを出力するソースキボン

677 :デフォルトの名無しさん:2005/10/30(日) 12:08:32
>>676
ここから転載
http://brainfuck.sourceforge.net/results0.html

+++++[>+++++++++<-],[[>--.++>+<<-]>+.->[<.>-]<<,]


678 :デフォルトの名無しさん:2005/11/03(木) 13:40:59
>>670
停止問題は、「メモリが無限にある」が前提になっている。
使用メモリを有限にすれば虱潰しでいけるよ。
(実際には時間がかかりすぎるがな)

679 :デフォルトの名無しさん:2005/11/04(金) 20:21:58
メモリが無限にあればできるはずのことができなくなったりはしないの?

680 :デフォルトの名無しさん:2005/11/04(金) 20:39:41
コードが有限でメモリ使用量も有限であることが保証されていたとしても
停止性が保証されるわけではない。

681 :デフォルトの名無しさん:2005/11/04(金) 20:46:38
停止性が保証されるのと
停止するかどうか判断できるというのは
だいぶ違うような気が

682 :sage:2005/11/16(水) 04:02:48
++++[->++++[> >+>++>+++< <++< <-]>++< <]> >++> > > >,<[->-<]>[[-<+< <.< <+> > > > >]
< < < <.> > >-[-< < < <--[-> >.> >[->+< <.>]>[-<+>]< < <.<.<]>>.> >[-< <.> >]< <.<.<]]


683 :デフォルトの名無しさん:2005/11/18(金) 20:41:06
http://www.hevanet.com/cristofd/brainfuck/
このひとすごい。自己インタプリタが6行。

684 :デフォルトの名無しさん:2005/12/26(月) 22:42:28
sage

685 :デフォルトの名無しさん:2006/01/01(日) 09:22:18
ふと思ったんだが、brainf*ck同士を戦わせるゲームを作ったら何気に最強じゃねえ?
code warsみたいなの?

686 :デフォルトの名無しさん:2006/01/01(日) 10:54:40
勝利条件は?

687 :デフォルトの名無しさん:2006/01/01(日) 19:15:58
メモリスペースに双方のコードを配置して、
相手のコードを上書きして殺せば勝ちとか。

688 :デフォルトの名無しさん:2006/01/01(日) 23:16:58
それだと、相手のコード領域を探して地雷撒くだけになりそうな悪寒。

689 :デフォルトの名無しさん:2006/01/01(日) 23:26:53
+[>+]
これだけで良いかな?地雷撒くんだとしたら。-1 があったら停止するけど。

690 :デフォルトの名無しさん:2006/01/02(月) 00:44:03
>689
おれもそれを最初に考えたけど、それって短すぎるから、相手のコードがすごく長いときに自分が先に殺されて負けない?


691 :689:2006/01/02(月) 00:53:39
>>690
いや、相手も1メモリずつの書き換えしか出来ないから、小さいほうが有利かと。

692 :デフォルトの名無しさん:2006/01/02(月) 01:04:08
うんうん、結局は地雷を撒かれる前に逃げるか地雷を撒くかの2択戦術になっちゃう。
CoreWarsはfork(?)があるからMiceみたいなコードが書けるけど。

693 :デフォルトの名無しさん:2006/01/02(月) 17:13:21
誰も自己複製が最強って言い出さないな('ω`)

694 :デフォルトの名無しさん:2006/01/10(火) 13:55:27
Tieraみたいに自己複製と自己書き換えが出来るのが最強。
と思ったら自己書き換えで相手と同じコードになって自爆。

695 :デフォルトの名無しさん:2006/01/12(木) 19:11:40


696 :デフォルトの名無しさん:2006/01/13(金) 06:57:12
>>693
brainfuckじゃ自己複製なんてできないよ

697 :デフォルトの名無しさん:2006/01/13(金) 16:37:31
>>696
よく考えたら自己複製しても処理のノベ数が増えるわけじゃないな。
効率むしろ落ちる。orz

698 :デフォルトの名無しさん:2006/01/13(金) 16:44:34
自立型じゃないけど、先手 0x00、後手 0xFF で多くメモリを埋めたほうが勝ち。
勝負は500ステップ、戦況を見ながら差し手が1ステップずつ入力してゆく。

699 :デフォルトの名無しさん:2006/01/14(土) 11:04:38
潜水艦ゲームだな。

700 :デフォルトの名無しさん:2006/01/15(日) 02:35:20
>>698
埋めるってのは、「最後に値を変化させた方」をポイントとするのかな?
つーかなかなか面白そうだな

701 :デフォルトの名無しさん:2006/01/17(火) 18:15:02
Brainfuck v.s. Lifeはどっちが強い?

702 :デフォルトの名無しさん:2006/01/18(水) 13:31:36
BrainFuckもいいけど、HQ9+もよさげですよ
http://ja.wikipedia.org/wiki/HQ9_Plus

703 :デフォルトの名無しさん:2006/01/19(木) 13:51:03
いや、そんなネタ言語と一緒にされても。

704 :デフォルトの名無しさん:2006/01/19(木) 19:46:43
>703
ちょwww

705 :デフォルトの名無しさん:2006/01/19(木) 20:05:17
この言語ってさ、[] を含まなければ有限長のコードに対して必ず停止することが証明できるんだよね……?
合ってる?

706 :デフォルトの名無しさん:2006/01/19(木) 20:59:14
[]以外でループさせる方法がないだろうし、あってるんじゃない?

707 :デフォルトの名無しさん:2006/01/19(木) 22:00:48
>>705
,

708 :デフォルトの名無しさん:2006/01/19(木) 22:05:40
入力無いから続けられません……ってのは微妙に違うんじゃないか?

709 :デフォルトの名無しさん:2006/01/22(日) 17:48:46
>>704
チューリング完全を甘く見るなよ!

710 :デフォルトの名無しさん:2006/01/22(日) 22:48:42
そこでライフゲームですよ。


711 :デフォルトの名無しさん:2006/01/24(火) 19:45:37
BFで関数呼び出しをエミュレートする方法ある?

712 :デフォルトの名無しさん:2006/01/24(火) 20:03:35
俺も知りたいな。
ちょっと考えてみるか。

713 :デフォルトの名無しさん:2006/01/24(火) 20:07:40
jmp命令追加しろ

714 :デフォルトの名無しさん:2006/01/25(水) 22:50:32
unlambda使えば関数呼び出しなんて一瞬で書けますよ( ´∀`)

715 :デフォルトの名無しさん:2006/01/26(木) 02:05:54
書いて〜。

716 :デフォルトの名無しさん:2006/01/26(木) 10:27:50
`ii

717 :デフォルトの名無しさん:2006/02/02(木) 05:36:12
魚の骨のスレはここですか?

718 :デフォルトの名無しさん:2006/02/02(木) 14:14:07
>>702
わらた。あほすぎる。

719 :デフォルトの名無しさん:2006/02/02(木) 17:52:53
>>702
コーヒー噴いた

720 :デフォルトの名無しさん:2006/02/02(木) 17:57:45
要するにマシン語ですか?この言語

721 :デフォルトの名無しさん:2006/02/04(土) 01:22:43
>>720
わろs

722 :デフォルトの名無しさん:2006/02/04(土) 07:04:25
要するにマシン語の部分空間ですか?

723 :デフォルトの名無しさん:2006/02/09(木) 15:47:57
もっと議論したまえ

724 :デフォルトの名無しさん:2006/02/12(日) 14:11:11
+++++とかの表記ってまさか5クロック要するとかいう?

725 :デフォルトの名無しさん:2006/02/12(日) 14:28:57
最適化も何もしない BF チップが出来たら言うかもしれない。
プログラミング上は 5 ステップ。

726 :デフォルトの名無しさん:2006/02/12(日) 15:03:01
BrainFuckでLISP処理系書けるか?
書けないならゴミ

727 :デフォルトの名無しさん:2006/02/12(日) 15:07:14
むしろ LISP 信者がゴミ

728 :デフォルトの名無しさん:2006/02/12(日) 15:14:36
書けないとしたらチューリング完全では無いということになるよね。
BrainFuckはゴミ。

729 :デフォルトの名無しさん:2006/02/12(日) 15:41:49
>>725
で、現在最も優れているコンパイラはその最適化処理は施してくれるのかね?

730 :晒しage:2006/02/12(日) 15:44:15
ネタ言語に何か必死に食いついてる奴がいるな

731 :デフォルトの名無しさん:2006/02/12(日) 15:52:53
BrainFuckとLispは目くそ鼻くそっとわけだ。
BrainFuckも出世したものだね。

732 :デフォルトの名無しさん:2006/02/12(日) 16:44:27
Wikipediaより。

一見単純な機能しか持たないモデルがチューリング完全である例としては、
5つの基本関数だけをもつ純LISPが挙げられる。
またBrainfuckのモデルなどもそうである。

同じやんか。

733 :デフォルトの名無しさん:2006/02/12(日) 20:20:58
あはははww

あ〜。でも、チューリングマシンの状態遷移集合を直接解釈するインタプリタあったら面白いかもな。
普通にありそうだな。やっぱりつまらん。

734 :デフォルトの名無しさん:2006/02/12(日) 21:04:40
並列動作するチューリングマシンアレイがCPUの主流になる日がきっと来ると信じてる

735 :デフォルトの名無しさん:2006/02/12(日) 21:38:39
そんで、その動作の様子を何らかの方法で視覚化して観察できたら……。
やべえ欲しい。

736 :デフォルトの名無しさん:2006/02/12(日) 21:40:02
>>732
pure pure lisp ... 計算なんかはでぇきないの...
ってな替歌があったのを思い出したよ.


737 :デフォルトの名無しさん:2006/02/12(日) 23:45:25
>>702
何とか堪えて読んでいたが最後のHQ9++で吹いたw

738 :デフォルトの名無しさん:2006/02/13(月) 21:38:39
>>723

それが、量子コンピューターじゃないっけか?

739 :デフォルトの名無しさん:2006/02/14(火) 01:00:41
良子コンピューターってどういうの?

740 :デフォルトの名無しさん:2006/02/14(火) 02:34:04
電子とかを、量子的な揺らぎを持った状態のまま保存する。これが量子ビット。
量子ビットを揺らぎを保ったまま接続してやると、これが量子もつれ(だったかな)。

量子もつれ状態のビット群は取りうるすべての状態を確率として持っているので、
問題(条件)を何らかの方法で量子ビット群に与えてやる。

そうすると全ての状態からその条件に対する解のみが選択されて全ビットが現れるはず。
これが量子コンピュータ的演算。

間違ってたらスマソ。

741 :デフォルトの名無しさん:2006/02/21(火) 07:40:34
>その条件に対する解のみが選択され
なんか魔法みたいだな。

742 :デフォルトの名無しさん:2006/02/21(火) 11:17:42
この宇宙が存在していること自体魔法みたいなもんだ。

743 :デフォルトの名無しさん:2006/02/21(火) 13:24:04
全ビットを個別に取り出すことはできないよ。
何かうまい方法を使うんだが、ややこしかった。

744 :デフォルトの名無しさん:2006/02/26(日) 00:28:58
二頭身のメイドさんがメモリ空間をちょこちょこと歩き回りながら処理してくれるBFインタプリタなんて超素敵じゃないか?
ステップ実行とかあれば、視覚的に思考できるという意味ではマジ便利かも

745 :デフォルトの名無しさん:2006/02/26(日) 01:15:18
↑アホ。
メイドさんは秋葉原行って現実見て来い。

746 :デフォルトの名無しさん:2006/02/26(日) 01:21:09
まぁメイドさんはおいといても、
グラフィカルにしたら愛着がわきそうな気はするな。

747 :デフォルトの名無しさん:2006/02/26(日) 03:29:09
>>744
似たようなの昔作ったw
ttp://up.spawn.jp/file/up12519.zip
作ってから思ったが,こういうのってアプレットか
JavaScriptでやったほうが完成も早いし
第三者も気軽に実行できるよなorz


748 :デフォルトの名無しさん:2006/02/26(日) 13:18:42
>>747
うはwwwwwテラモエスwww

749 :デフォルトの名無しさん:2006/02/26(日) 13:30:38
見てみたかった・・・
画像だけでもぷりーず

750 :デフォルトの名無しさん:2006/02/26(日) 14:57:55
>>179
ttp://up.spawn.jp/
から入らないとダウンロードできないみたい。

751 :デフォルトの名無しさん:2006/02/26(日) 15:26:55
サンキュー!!
うっわー、これ可愛すぎ…。

752 :デフォルトの名無しさん:2006/02/26(日) 15:39:18
惜しむらくは、ときたまブリンクしなくなったり全速実行できなかったり入力がインタラクティブじゃないな。
#確認してないけど、キャラ画像差し替えでいいから占有面積減ってくれたらもっと嬉しい。

753 :デフォルトの名無しさん:2006/02/26(日) 19:41:48
試してないけど、絵とか自分で描いたの?

754 :デフォルトの名無しさん:2006/02/26(日) 20:24:39
http://kokagex.hp.infoseek.co.jp/
ねこみみカウンターの流用だね

755 :デフォルトの名無しさん:2006/02/27(月) 14:45:15
自分でBrainfuckインタプリタ作ってみたがHello, worldは動いても>>213-216のヒットアンドブローとかBf Golfにある奴が動かない・・・

756 :デフォルトの名無しさん:2006/02/27(月) 15:03:41
>>755
ネストした[]に対応したか?
[ [ ] ]

757 :デフォルトの名無しさん:2006/02/27(月) 15:10:45
>>756
対応したつもりだが動きを追いかけると途中で無限ループにハマってる。

758 :デフォルトの名無しさん:2006/02/27(月) 15:18:03
あーねwww

759 :デフォルトの名無しさん:2006/02/27(月) 15:18:55
BFネイティブCPUなんか出たら発狂しそうだ

760 :デフォルトの名無しさん:2006/02/27(月) 15:32:00
メモリのサイズを4バイトも取ってたのが間違いだった。

761 :デフォルトの名無しさん:2006/02/27(月) 16:01:38
ttp://dream.my-sv.net/upload/src/up0141.d

ものすごく恥ずかしい・・・

762 :デフォルトの名無しさん:2006/02/27(月) 17:56:13
むしろBFでBFを定義する

763 :デフォルトの名無しさん:2006/02/27(月) 18:04:18
ようするに>>130ですね


764 :デフォルトの名無しさん:2006/02/27(月) 19:00:15
最速のbfインタプリタってどれだろうか

765 :デフォルトの名無しさん:2006/03/01(水) 11:47:46
当然アセンブリで実装してんだろうな

766 :デフォルトの名無しさん:2006/03/01(水) 13:13:42
突き詰めれば、オートマトンの処理速度の限界は
メモリのアクセスタイムによって決まる。
だから高速なメモリに直結されたデバイスをドライブできれば
使用言語は何だっていいはず。

具体的には
・普通のCPUでL1キャッシュに全部HITする程小さいデータ(プログラム)
・プログラマブルシェーダでVRAM上でやる

まあ前者はその性質上アセンブラか機械語直かそれに近しい言語で記述する必要があるだろうし
後者もスクリプト言語からやれるかというとそうではないだろうけど
「アセンブラだから早い」というのは幻想。

767 :デフォルトの名無しさん:2006/03/01(水) 13:43:08
深いパイプラインだと遷移がネックになりそうじゃね?
シェーダはちょっと違うだろ。状態遷移は基本的にスカラー演算だからベクトル型の演算器には不向き。

768 :デフォルトの名無しさん:2006/03/01(水) 14:03:52
不向き以前にシェーダで任意のアドレスのメモリを好き勝手に読み書きできるのか?

769 :デフォルトの名無しさん:2006/03/02(木) 11:20:10
シェーダの状態をメモリの内容に対応させて、
プログラムカウンタに対応するトークンを持っているところだけが
状態遷移の権利を持つようにするんだよ。

770 :デフォルトの名無しさん:2006/03/03(金) 19:29:01
@を出すだけでこんなに疲れるとは…
>>>>>>+[<++[<++[<++[<++[<++[<++>-]>-]>-]>-]>-]>-]<<<<<<.

771 :デフォルトの名無しさん:2006/03/03(金) 20:59:01
>>770
それはわざと美しく書いたの?

772 :デフォルトの名無しさん:2006/03/03(金) 21:12:51
>>771
そこに至るまで:

・暇だったからJavaScriptでeval無しでインタプリタを実装してみる。
 (数字ビュー、文字ビュー、コンプレックスビュー、メモリビューを足してみる)
・スレ冒頭の@を出す部分を見て、2^6 = 64だから再帰的に書けるのではないかと思った。
・PGなりたてだから許して。

773 :770:2006/03/03(金) 21:15:03
メモリコピーってこうするしかないんですかね…

,
[>+>+<<-]

(元のを破壊して新たに二つ作る)

774 :デフォルトの名無しさん:2006/03/06(月) 10:28:52
掛け算

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

775 :デフォルトの名無しさん:2006/03/06(月) 10:30:22
出力するの忘れてた(^^;)

,>,<[>[>+>+<<-]>>[>+<-]<[<+>-]<<-]>>>>.

776 :デフォルトの名無しさん:2006/03/06(月) 10:46:45
入力された位置までのメモリを破壊しながらポインタを移動する。
(ただし移動先まで初期化されていること)
,[[>+<-]>-]<

入力された値から1を引き引きした値の列を表示する
,[[>+<-]>-.]<

777 :デフォルトの名無しさん:2006/03/10(金) 06:34:04
>>>>>>
の代わりに
6>
で認識してくれるコンパイラはどこですか?

778 :デフォルトの名無しさん:2006/03/10(金) 14:53:46
作れ

779 :デフォルトの名無しさん:2006/03/10(金) 20:27:03
なんと面白みのない

780 :デフォルトの名無しさん:2006/03/11(土) 09:54:36
ちょっと書いてみたいがGUI作ったことないショボイ俺。

781 :デフォルトの名無しさん:2006/03/11(土) 10:09:14
>>529

782 :デフォルトの名無しさん:2006/03/11(土) 22:54:39
>>781
おういえ、今度やってみる。

783 :デフォルトの名無しさん:2006/03/16(木) 07:12:20
>>781-782
プロンプトつけて対話型にするのもよし

784 :デフォルトの名無しさん:2006/03/16(木) 08:01:34
BFによるBFソースの文法チェッカというのを思いついたけど
眩暈がしてきて作るのやめた。

785 :デフォルトの名無しさん:2006/03/16(木) 11:26:15
文法チェッカったって文法エラーが無いじゃん

「不正な文字です.」くらいじゃね?

786 :デフォルトの名無しさん:2006/03/16(木) 11:40:45
括弧の対応もじゃない?

787 :デフォルトの名無しさん:2006/03/16(木) 14:39:57
括弧は対応する必要って無いんじゃね?

788 :デフォルトの名無しさん:2006/03/16(木) 19:12:12
暴走するっていう結果でもエラーじゃないのか。
ほんとに限りなく低級なマシン語だな(ほめ言葉)

789 :デフォルトの名無しさん:2006/03/16(木) 19:23:34
なんと!チューリングマシンの停止問題を解決しよう、と言うのかね?

790 :デフォルトの名無しさん:2006/03/16(木) 20:09:39
や、[ が一個しかないコードは暴走するが、これをエラーにするとしても、
他の例はおっしゃるとおり、停止性問題になってしまうから解決不可能だよね。
つまりエラーを定義するアルゴリズムが無い → 暴走してもエラーじゃない。
と思ったのさ。

791 :デフォルトの名無しさん:2006/03/16(木) 20:11:50
>[ が一個しかないコードは暴走するが
しねーだろ

792 :デフォルトの名無しさん:2006/03/16(木) 20:46:44
]が一個しかないコードはどうなるんだろう?

793 :デフォルトの名無しさん:2006/03/16(木) 20:51:58
そりゃ実装しだいだけど何も対策してないならテーブルのインデックスエラーじゃないの。

794 :デフォルトの名無しさん:2006/03/16(木) 22:14:31
>>646の人が作ったbfに[だけ入れたら怒られた。
やっぱりエラー扱いらしい。
エラーなら暴走しないか、そりゃあ。

795 :デフォルトの名無しさん:2006/03/18(土) 01:26:46
さっき思いついたんだが、
関数呼び出しってループとifで擬似的に実装できるよな?


796 :デフォルトの名無しさん:2006/03/18(土) 10:24:49
呼び出し以前にどうやって関数用のコードを配置して元の位置に戻ってくるのかはともかくな

797 :デフォルトの名無しさん:2006/03/18(土) 14:39:01
ループの中にifと似たようなブロックを多数設置、
状態遷移用のスタックと、スタックポインタを用意しておいて、
そいつの値によってどのブロックを実行するか決める。
ブロックの終端でスタックをポップして前のブロックのすぐ次に戻る。

「すぐ次に戻ってくる」っていうのが難しそうだが、
できないこともないと思うんだが。


798 :http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:57:28
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

799 :デフォルトの名無しさん:2006/04/04(火) 13:49:14
Branfuckで書かれたウィルスがあったら面白そうだが、この言語じゃ書けない気がする・・・

800 :デフォルトの名無しさん:2006/04/10(月) 12:49:13
ソースコードの圧縮率が高そうだな

801 :デフォルトの名無しさん:2006/04/10(月) 21:59:09
ランレングスでも十分縮まりそうだな。

802 :デフォルトの名無しさん:2006/05/02(火) 21:58:38
ブレインファックって日本語にしたらどういう意味?

803 :デフォルトの名無しさん:2006/05/02(火) 22:00:37
ファック、ファック、アーケン!

804 :デフォルトの名無しさん:2006/05/02(火) 22:03:17
の〜みそこねこね

805 :デフォルトの名無しさん:2006/05/03(水) 02:26:59
コンパイル

806 :デフォルトの名無しさん:2006/05/03(水) 14:48:26
何もかもが懐かしい……

807 :デフォルトの名無しさん:2006/05/03(水) 18:31:04
スレタイの[+-]が顔に見えた

808 :デフォルトの名無しさん:2006/05/03(水) 18:34:32
>>807
重症です。

809 :デフォルトの名無しさん:2006/05/03(水) 18:42:47
コーホー

810 :デフォルトの名無しさん:2006/05/05(金) 13:55:47
掛け算できた。

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

上記のコードでは、メモリ上の[0]と[1]を掛けて、結果の下位1バイトを[2]に、上位1バイトを[4]に格納。
※[0]はメモリ0バイト目の意味。

計算に使う領域は、バッファを含めて[0]〜[6]。
上記のコードは、
 [0]=134
 [1]=67
を代入後、[0]*[1]の掛け算を実行して、計算結果を
 [2]に下位1バイト
 [4]に上位1バイト
を格納する。[2]=18,[4]=35となる。答えは8978。
最後の"?"は>>529の拡張命令。メモリダンプ。

実行時間かかるね。


811 :デフォルトの名無しさん:2006/05/06(土) 11:34:53
Macro BrainFuckマダー?

812 :デフォルトの名無しさん:2006/05/08(月) 03:30:06
Macro BrainFuckコンパイラを作ってみたんですが...
http://up.alt.st/upbbs/01000k/src/altst1m0379.zip
こんな感じでどう?

813 :デフォルトの名無しさん:2006/05/08(月) 10:21:19
次は>>810のようなイディオムを検出して
直接CPUの乗算を行う最適化インタプリタの開発だw

814 :デフォルトの名無しさん:2006/05/08(月) 20:38:17
>>813
それだと直接アセンブラ書いたほうがよくね?

815 :デフォルトの名無しさん:2006/05/12(金) 00:45:47
天才現る

816 :デフォルトの名無しさん:2006/05/12(金) 22:41:43
>>812
linuxでもコンパイル通ったよ
GCCのバージョンは3.4.4(Gentoo linux)

817 :デフォルトの名無しさん:2006/05/13(土) 01:00:39
読みやすくなったら、この言語の存在意義がなくなると思うんだ。僕。

818 :デフォルトの名無しさん:2006/05/13(土) 01:42:12
でも書きやすくはなってほしい。
つまり IDE があればいいのか。

819 :デフォルトの名無しさん:2006/05/15(月) 02:48:46
[…]のネストを色分けで表示できるとカラフルでハッピーだな

820 :812:2006/05/16(火) 21:40:40
>>817
そうですね。
逆にトリッキーなコードが書けなくなって、面白みが減りますね。
実用性もないし。

>>816
コンパイルし直したら、何故かあっさり通りました。
お騒がせしました。

821 :デフォルトの名無しさん:2006/05/22(月) 22:55:56
>>817
逆にCやアセンブラをBFに変換できれば、難読化ツールとして面白いかもな
コンパイルして最適化されたら、元のアセンブラになったりしてな…

というか、JMPもサブルーチンコールもスタックも実現できんから、どうにもならんか

822 :デフォルトの名無しさん:2006/05/28(日) 16:51:40
アセンブラを遥かに凌駕する難解言語だからな

823 :デフォルトの名無しさん:2006/05/29(月) 00:26:14
>822
Hello, World書くのに数年かかったマルボルジェを知らんな?
BFなんてはるかに読みやすい。

824 :デフォルトの名無しさん:2006/05/29(月) 07:04:06
機械語とどっちが難解ですか?

825 :デフォルトの名無しさん:2006/05/29(月) 18:48:18
マルボルジェのほうが難解ですたい……('∀`)

826 :デフォルトの名無しさん:2006/05/31(水) 10:15:12
>>823
どっかにしよう転がってない?


827 :デフォルトの名無しさん:2006/05/31(水) 12:49:17
なんかわざとらしく無意味に難解にした言語って好きじゃないな
その点BFは、ただ難解っていうより「シンプル」だし

828 :デフォルトの名無しさん:2006/05/31(水) 16:08:41
>>826
スレ違いになってしまうかも知らんが、英語Wikipediaの解説
http://en.wikipedia.org/wiki/Malbolge

>>827
難解っていう発言があったから引き合いに出してみたんだ。
もっと難解なものがあるってね。
つまり、BFはシンプルだって言いたかった、君と同じに。


829 :デフォルトの名無しさん:2006/06/06(火) 07:51:21
なんかhtmlのへっだ出力が上手くいかない・・・

830 :デフォルトの名無しさん:2006/06/06(火) 09:50:08
処理系の中に無理やりhttpヘッダを書き込んで解決・・・
でも、納得いかない・・・

831 :デフォルトの名無しさん:2006/06/06(火) 10:34:07
よく見たら#!/usr/local/bin/perl bf.plのドットでASCIIの00の文字(NULL?)を打ってた・・・・orz

832 :デフォルトの名無しさん:2006/06/07(水) 04:16:37
Vアプリ版のインタプリタ無い?

833 :デフォルトの名無しさん:2006/06/10(土) 14:57:30
>>828
Malbolgeについては、高級言語からMalbolgeへのコンパイラができた、
っていうのを前に聞いたが…

834 :デフォルトの名無しさん:2006/06/10(土) 17:00:15
名大っぽい。

835 :デフォルトの名無しさん:2006/06/20(火) 00:10:27
だれか>>747持ってないですか?
気になる…

836 :デフォルトの名無しさん:2006/06/20(火) 19:34:01
持ってるけど、勝手に上げていいもんか。

837 :デフォルトの名無しさん:2006/06/20(火) 23:54:40
いいんでない?代わりに俺がうpっといたよ
半日で消えるのでお早めに
ttp://www.uploda.org/uporg421979.zip.html nekomimi

838 :デフォルトの名無しさん:2006/06/21(水) 14:05:49
ありがとう

839 :デフォルトの名無しさん:2006/06/23(金) 15:52:09
>>1のリファレンスが間違ってることに今ごろ気づいた・・・。

840 :デフォルトの名無しさん:2006/06/23(金) 18:13:09
ほ…本当だ。

841 :デフォルトの名無しさん:2006/07/04(火) 17:04:14
詳細なコメント付き99bottle in bf
http://www.99-bottles-of-beer.net/language-brainfuck-101.html

842 :デフォルトの名無しさん:2006/07/17(月) 08:23:20
このスレ的には99bottle in bfが1つの命令で書けてしまう
HQ9+はどうなの?

843 :デフォルトの名無しさん:2006/07/17(月) 10:11:25
>842
>702-704


844 :デフォルトの名無しさん:2006/07/17(月) 12:02:09
>>843
thx。
branfuckでインタプリタ作るか

845 :デフォルトの名無しさん:2006/08/04(金) 10:19:20
   + +++++++    +   
  + +   +  +++++++++++
  ++ +++++++  +     +
  +   +       +  
  + +++++++++  +++++++++ 
  +  +++      +  
  +  + + +    ++ +  
  + + + +.   + +  
  + +  +  +     +. 
  +   +      ++. 
  -----------.+++++++++++++.

846 :デフォルトの名無しさん:2006/08/04(金) 12:17:51
>>845
ちゃんと実行できるのか
感動したw

847 :デフォルトの名無しさん:2006/09/01(金) 11:04:14
age

848 :デフォルトの名無しさん:2006/09/06(水) 22:10:55
この言語に特化したCPU作ったら100Ghzくらい出せんかな。


849 :デフォルトの名無しさん:2006/09/06(水) 23:20:08
クロック上がっても同じことをするのに必要な命令数が増えるから意味なすぴ

850 :デフォルトの名無しさん:2006/09/08(金) 22:18:06
RISC VS CISC みたいなもんか?
1Thzでたら逆転するかもな。


851 :デフォルトの名無しさん:2006/09/09(土) 03:55:59
AからZまで出力する最短コードがわかりません
誰か教えて(`・ω・´)

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

852 :デフォルトの名無しさん:2006/09/10(日) 07:48:45
>>851
8命令短縮
++++++++[>+++>++++++++<<-]>++[>+.<-]

853 :デフォルトの名無しさん:2006/09/13(水) 15:27:15
NAND式だけの言語というか
ttp://plapla.tk/s/dm/snt/

854 :デフォルトの名無しさん:2006/09/15(金) 12:03:04
brainfuckで論理演算ってできるの?
まぁできるはずなんだろうけど、どうやってやるのか見当もつかない。


855 :デフォルトの名無しさん:2006/09/15(金) 14:33:32
0: 偽、それ以外の値: 真として

AND: [>[処理]]
NOT: >+<[>-<[-]]>[処理]
OR: >>++<<[>>-<<[-]>[>-<[-]]<]>>[処理]

とか。 NOT と OR は余計に1つ(あらかじめゼロになっている)メモリ領域を1つ必要とする。


ところで、 BrainFuck で棒グラフ
http://www.jmuk.org/d/?path=2006/09/06#d06t01


856 :デフォルトの名無しさん:2006/09/15(金) 14:37:16
破壊的 and
メモリが [入力A][入力B][出力=0] と並んでいるなら [[-]>[[-]>+<]<]

破壊的 or
メモリが [入力A][入力B][出力=0] と並んでいるなら [[-]>>+<<]>[-]>+<]<

not が難しいな
[入力A][出力=0] として [[-]>+<]>- とか

857 :デフォルトの名無しさん:2006/09/15(金) 16:14:38
C言語をBrainFuckに変換するライブラリをC言語で作ろうぜ

858 :デフォルトの名無しさん:2006/09/15(金) 16:33:04
関数呼び出しとかがどうなるか見ものだな。

859 :デフォルトの名無しさん:2006/09/15(金) 16:37:38
論理演算について教えてくれたひとありがとう。
ということは、8ビット数値の論理演算もなんかできそうな気がしてきた。
まだ貼ってくれたコードも読めてないけども。


860 :デフォルトの名無しさん:2006/09/15(金) 17:10:21
>>859
それは論理演算ではなくビット演算ではないか?

861 :デフォルトの名無しさん:2006/09/15(金) 17:19:46
うお。そうだ。はずかし。


862 :デフォルトの名無しさん:2006/09/20(水) 00:52:25
みんな良くこんな言語でコード書けんな。
なんかコツみたいなもんはあんのか?

863 :デフォルトの名無しさん:2006/09/20(水) 01:01:53
先にアセンブリかじってると、案外何とかなるもんだったりする(のかもしれない)

864 :デフォルトの名無しさん:2006/09/20(水) 01:11:58
2次元BFとかいう考えはどうかな

< ポインタを左に移動
> ポインタを右に移動
^ ポインタを上に移動
v ポインタを下に移動

865 :デフォルトの名無しさん:2006/09/20(水) 01:16:37
いやまてよ、ポインタの値を無限次元にして、
メモリに入る値も無限次元にしたら夢がひろがりんぐ

866 :デフォルトの名無しさん:2006/09/20(水) 01:34:09
次元の意味わかっててゆーてんか。

867 :デフォルトの名無しさん:2006/09/20(水) 01:39:41
>>864
おぬし、BeFunge を知らんな?



むしろ知っているからこそ出てきた考えかも試練が。

868 :デフォルトの名無しさん:2006/09/20(水) 09:15:43
ベクトルで移動できる命令も追加してくれ

869 :デフォルトの名無しさん:2006/09/20(水) 22:54:34
>>866
もちろん
メモリの各番地に従来のメモリ全部と同等のものがあるようなものを考えて
それ全体がメモリの各番地に並んてる

ただしまあどうせ可算なので無限っていっても
たとえば素因数分解の指数とかって見ることで
普通に一個の整数にできちゃうから
あんま意味ないよなっていうのはその通りだけど

>>867
見てみる

870 :デフォルトの名無しさん:2006/09/21(木) 00:24:50
>メモリに入る値も無限次元
のところがわかんなかったんだけど、
つまり無限配列の無限配列の無限配列の……ってことか。
なるほどね。


871 :デフォルトの名無しさん:2006/09/21(木) 22:06:09
BFの不便さを体感すると便利なコンピュータがトランジスタやら
フリッププロップやらでできてるのが信じられなくなる。

872 :デフォルトの名無しさん:2006/09/22(金) 01:47:23
昔は真空管が2m並んだレジスタを手動でパチパチと……。
確かに別物な気がしてくる。

873 :デフォルトの名無しさん:2006/10/02(月) 06:12:38
このスレ的に2Dはどうなんですか?

2D (programming language)
http://en.wikipedia.org/wiki/2D_(programming_language)


874 :デフォルトの名無しさん:2006/10/02(月) 10:37:09
C++ の標準アルゴリズムっぽくしたら、ちょっとだけ実用性が無いだろうか?

#include <iosfwd>
template<typename BidirectionalIterator
, typename InputIterator
, typename CharType
, typename CharTraits >
BidirectionalIterator brainfuck(BidirectionalIterator p
, InputIterator code_begin, InputIterator code_end
, std::basic_ostream<CharType,CharTraits>& out
, std::basic_istream<CharType,CharTraits>& in);

やっぱり無理か。

875 :デフォルトの名無しさん:2006/10/02(月) 16:22:39
そのテンプレート作っていい?w

876 :デフォルトの名無しさん:2006/10/02(月) 20:44:45
>>875
いいよ。 ']' 実装しようとしたら InputIterator じゃ無理だな。
s/InputIterator/ForwardIterator でどうぞ。

877 :デフォルトの名無しさん:2006/10/03(火) 18:19:39
>>876
ちょっと燃えてきました。(`・ω・´)

878 :877:2006/10/09(月) 17:04:43
暇ができたので作ってみた。
メモリの型をint,floatにしてみて、Hello, World!を実行してみたら、
数字ばっかり表示された。

あたりまえか('д`;)

もうちょっと抽象化してみる。

879 :デフォルトの名無しさん:2006/10/12(木) 22:33:32
だれかアセンブリをBFにコンパイルしる。

880 :デフォルトの名無しさん:2006/10/14(土) 01:16:27
アルファベット = BASIC
日本語     = Perl
ハングル    = BrainFuck

881 :デフォルトの名無しさん:2006/10/18(水) 18:32:38
,[.,]
ラインバッファの実装に限る

882 :デフォルトの名無しさん:2006/10/20(金) 05:38:56
携帯のflashアプリで最近BFしてるが、結局文字表示だけしかできないの?
それともPCだと夢が広がるの?

883 :デフォルトの名無しさん:2006/10/20(金) 06:21:21
入出力命令が文字しか扱えない

884 :デフォルトの名無しさん:2006/10/20(金) 07:12:35
つまり鯖が作れるな。webアプリも作れるな。
うはwwwwwwww夢が広がりんぐwww

885 :デフォルトの名無しさん:2006/10/20(金) 18:22:08
特定のメモリ空間をVRAMに割り当てればいい。

886 :デフォルトの名無しさん:2006/10/20(金) 18:39:32
VRAMって直接いじれるのか……。
あれ、ああそうか。転送すればいいのか。

887 :デフォルトの名無しさん:2006/11/03(金) 18:27:45
難解言語と自称してるくせに制御構造にgotoがないなんてお粗末だな。

888 :デフォルトの名無しさん:2006/11/03(金) 18:29:35
何も言いません

889 :デフォルトの名無しさん:2006/11/10(金) 22:54:39
今日もfuck♪

890 :デフォルトの名無しさん:2006/11/14(火) 13:57:21
昨日はいざという時に中折れしてしまい、帰って一人でbrainfuck

891 :デフォルトの名無しさん:2006/11/14(火) 23:46:23
BFで「自分自身のコードを出力するプログラム」は書けない?

892 :デフォルトの名無しさん:2006/11/14(火) 23:50:31
http://www.google.com/search?q=brainfuck+quine
たくさんヒットするが。w

893 :デフォルトの名無しさん:2006/11/25(土) 02:46:10
たしざん
> >>++++++[<++++++++++>-]<+++> >++++++[<++++++++++>-]<+++++.<.<<,.> >> >+++++++
+++. <+.<.<,.> >>.<<[-]>[-]>[-]<++++++[<++++++++>-]<[<<-> >-]>++++++[<++++++++
>-]<[<->-]<<[> >+>+<<<-]> >>[<<<+> >>-]<<[> >+>+<<<-]> >>[<<<+> >>-]<[<+>-]++++
++[<++++++++>-]>++++++[<++++++++++>-]<+++++> >++++[<++++++++++>-]<+++> >++++++[
<++++++++++>-]<++++++> >++++++[<++++++++++>-]<+<<<.>.>.>.<<<<.

894 :デフォルトの名無しさん:2006/11/25(土) 19:37:42
BrainFuck から、どうにかして関数を呼び出したい
このままでも良いのかもしれないけど、OS 叩けないとまともな物が作れないス(´・ω・`)

なんか良い仕様が出来ないものか……

895 :デフォルトの名無しさん:2006/11/25(土) 19:52:06
誰か>894を夢から覚ましてやれよ

896 :デフォルトの名無しさん:2006/11/25(土) 20:12:05
>>894
たしかにBFは高級すぎるよな
もちろんBoyFriendじゃない
BoyFuckでもない

897 :デフォルトの名無しさん:2006/11/25(土) 20:39:25
>>894
BrainFuckでOSから作ればいいのでは?

898 :デフォルトの名無しさん:2006/11/25(土) 20:46:51
>>894
自分でBrainFuck環境作って拡張すれば?

899 :デフォルトの名無しさん:2006/11/25(土) 20:51:19
x86のLinuxなら、mem[-1..-4]がeax、mem[-5..-8]がebx…と対応を決めておいて、
拡張命令「!」でint $0x80を発生させるとか。

900 :デフォルトの名無しさん:2006/11/26(日) 06:37:32
API呼び出しのエスケープシーケンスとかを決めてやればいいんじゃない?
出力データをどう処理するかはOSの管轄なのでBFとしては拡張無しですむ。

901 :デフォルトの名無しさん:2006/11/28(火) 06:40:35
BF でプログラムを出力して、それを実行するとか。

902 :デフォルトの名無しさん:2006/11/28(火) 23:20:43
com2txtみたいで面白いな。

903 :デフォルトの名無しさん:2006/11/28(火) 23:23:32
com2txtみたいで面白いな。

904 :デフォルトの名無しさん:2006/12/02(土) 03:10:18
CPLD買ったのでBFを実行できるCPUすぐ作れそうです

905 :デフォルトの名無しさん:2007/01/03(水) 07:29:11
モールス信号みたいな言語だな (藁

906 :デフォルトの名無しさん:2007/01/27(土) 17:33:06
で、??

907 :デフォルトの名無しさん:2007/01/28(日) 03:49:46
でっていう

908 :デフォルトの名無しさん:2007/02/11(日) 17:05:35
age

909 :デフォルトの名無しさん:2007/04/05(木) 02:11:52
BrainF*ck じゃなくて UnLambda の話題なんですが、v 関数を ski だけで作ろうと思い立ち
何となく `Yk がそれっぽそうな雰囲気なんでとりあえず

Y = ^f^p$f^a``$p$p$a^p$f^a``$p$p$a
=> ``s`kki``s``s`ks``s``s`ks`ki`ki``s`kki``s``s`ks``s``s`ks`ki`ki

みたいに Y コンビネータを作って実行してみたんですが、なんか v 関数とは挙動が違いました。
だれか答えかヒント教えてくださいな。

910 :デフォルトの名無しさん:2007/04/05(木) 02:17:54
あ、ごめん。変換が違ってたっぽい。よく分からんが。

Y = ``s`kki``s``s`ks`ki`ki``s`kki``s``s`ks`ki`ki

けど、これでも違うみたいなんよ……。どこでバカやってんだろ。

911 :デフォルトの名無しさん:2007/04/06(金) 10:05:10
>>880
「オガム文字」というのをご存じですか?
あれこそBrainfuckみたいに簡素な文字体系ですよ。
http://www.geocities.co.jp/Playtown-Denei/6804/ogham.htm

912 :デフォルトの名無しさん:2007/04/06(金) 17:24:30
SK より凄いやつがあった:その名は Iota と Jot

Iota and Jot: the simplest languages?
http://ling.ucsd.edu/~barker/Iota/

どちらも SK を簡素化したやつで2種類のシンボルを並べるだけなんだが、
とくに Jot では{0,1}列を「適当に」並べるだけで「正しい」構文になる、
つまりシンタックスエラーにならない、という仰天の言語仕様だ。

913 :デフォルトの名無しさん:2007/04/06(金) 21:08:49
やっと>>1から読んだが、なかなか面白そうだな。

コレ使って、どんなソフトを作ってくれるか楽しみだ。

914 :デフォルトの名無しさん:2007/04/06(金) 22:19:43
誰かに作ってもらうのが前提なのか

915 :デフォルトの名無しさん:2007/04/07(土) 09:38:18
自分でやってみないと面白くないよ、と914は申しております。

916 :デフォルトの名無しさん:2007/04/07(土) 17:16:26
BFほど実行環境数>>>>ソースコード数な言語はない

917 :デフォルトの名無しさん:2007/04/08(日) 12:57:19
<[+-]>
  ,,,,,,,,

918 :デフォルトの名無しさん:2007/04/08(日) 14:38:59
++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++.--------------.++++++++.----.
++++++++++.-----------------------------------------------------------------------...
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
.----.--..-----.+.++++++++++++++.++.

後悔は、、、してない。

919 :デフォルトの名無しさん:2007/04/08(日) 21:34:40
チューリングマシン?

920 :デフォルトの名無しさん:2007/04/09(月) 02:47:49
ファイル読み込みと、ファイル書き込みと、shell関数相当の命令が欲しいな。
命令の種類が増えると美しくなくなるけど…

921 :デフォルトの名無しさん:2007/04/09(月) 03:53:55
標準入出力で良ければ、そこに流し込めばいいのですが。

922 :デフォルトの名無しさん:2007/04/09(月) 07:15:54
リダイレクトすればいいじゃない。

923 :デフォルトの名無しさん:2007/04/09(月) 07:58:55
><を→←↑↓に変えた2D BrainFuckキボンヌ

924 :デフォルトの名無しさん:2007/04/09(月) 08:02:12
上のほうで出てる

925 :デフォルトの名無しさん:2007/04/09(月) 10:39:42
unicodeに八卦の文字があるので、
各命令文字を置換して眺めて楽しんでるw

926 :デフォルトの名無しさん:2007/04/10(火) 13:07:43
コンパイラ探したけどろくなのが無いな。
自分で作ったよ。

927 :デフォルトの名無しさん:2007/04/10(火) 13:36:34
もちろんbrainf**kでだよね?

928 :デフォルトの名無しさん:2007/04/10(火) 13:42:15
>>927
もちろん

929 :デフォルトの名無しさん:2007/04/10(火) 19:40:07
,>>,<,
>>++++++[<<-------->>-]
+++++[<-------->-]<---
>+<[[-]>-<
<[<->-]>
]>[-<
<[<+>-]>
>]<
<<.


930 :デフォルトの名無しさん:2007/04/13(金) 14:00:08
何も読まずageるよー

931 :デフォルトの名無しさん:2007/04/14(土) 18:00:08
+ ;
* ☆_+
: , xヾ:、__,..-‐‐:、、,へ.........._
         く '´::::::::::::::::ヽ
          /0:::::::::::::::::::::::',
       =  {o:::::::::(´・ω・)::i みんな待って〜
         ':,:::::::::::つ:::::::つ
      =   ヽ、__;;;;::/
           し"~(__)



932 :デフォルトの名無しさん:2007/04/14(土) 19:29:04
>931
わー、ちゃんとAAになってる!
それ、どんな命令セットのBF?


933 :デフォルトの名無しさん:2007/04/15(日) 03:20:40
それにしてもスレタイはうまいことやったよな
どう見てもゲームコントローラだ

934 :デフォルトの名無しさん:2007/04/15(日) 09:37:26
はじめてきました
面白そうですね

935 :デフォルトの名無しさん:2007/04/15(日) 16:02:10
  ∧
<[+-:;,.]>
  V
    位に増えてもいいと思うな。

936 :デフォルトの名無しさん:2007/04/15(日) 22:21:23
>935
その形だと、大量の弾幕吐きそうだな
ボム打って発射口に飛び込んでいっぱいbuzzりたい

937 :デフォルトの名無しさん:2007/04/18(水) 17:57:10
文字すくねぇwww

938 :デフォルトの名無しさん:2007/04/18(水) 22:45:36
メモリ上に自分自身のソースコードをQuineしてから
メモリ上のソースをインタプリタするコードって作れないかな・・・


939 :デフォルトの名無しさん:2007/04/18(水) 22:52:45
BF-BFインタプリタはどっかに落ちてるから、それを改造するとかかね。
いや、難しそうだな……。

940 :938:2007/04/18(水) 23:39:52
>>939
ネストが増える毎にインタプリタの段数が増える再帰関数が作ってみたかったのだが
素直に(もう少し)高級言語で書いた方が楽かな?

aa f**k
http://up.spawn.jp/file/up15900.txt.html
C++

sumomomo f**k
、すもも :>
。すもも :<
すもも :+
!すもも :-
のうち!すもも :.
のうち?すもも :,
のうちすもも :[
のうち。すもも :]
も 直前の命令と同じ命令に置換される

このコード体系で書くプログラムは+から始める事を推奨。

hello worldは略

ところで、同一メモリアドレスにBFコードとメモリを置きたいのなら
プログラムコード、ヌル文字、(普通のBFで言う)メモリの先頭アドレス、
の順に配置すれば良いんじゃね?ヌル文字を実行した時点で終了、とすれば
既存のコードも問題なく動くし。

<<[<]>[.>]\0Hello, World!\n
プログラム中に文字列リテラルを仕込めるのは反則っぽいがw

941 :デフォルトの名無しさん:2007/04/18(水) 23:50:11
>>629-646 のような実装なら、ヌルとか持ってこなくても単に ] でプログラムの終了ができるね

942 :938:2007/04/19(木) 00:21:51
自己書き換え可能にするとコード中の[]が動的に書き換えられる可能性があるから
スタックに積んでおく手法は残念ながら使えない。

あと、さっきの発言の「C++」は、C++のソースコードとして直接仕込むようにした、
と言いたかっただけだからあまり気にしないでくれ。

943 :デフォルトの名無しさん:2007/04/19(木) 01:09:15
なんか良くわかんないや。
interpretする言語とされる言語をはっきり明記してくれんと……。

俺は最初両方BFと思ったけど、C++出てきたからどうやら違うようだし。

944 :938:2007/04/19(木) 01:30:22
BFでメモリ上にQuine→メモリ内をBFでインタプリタ、
というプログラムを書けば後は無限に多段インタプリタを行うようになるな、
と思ったのだが、プログラムカウンタとポインタを管理するための領域が必要だから
2バイトに1命令という配置になっていなければインタプリタ出来ないようだ。
しかし、メモリ上にQuineするのって標準出力と比べて遥かに難しいな・・・

「C++」はただのaa f**kの説明・・・を書く途中で送信しただけ

945 :デフォルトの名無しさん:2007/04/19(木) 07:41:34
インタプリタは道具の名前だろうが。

946 :デフォルトの名無しさん:2007/04/20(金) 18:53:03
学校の休み時間中ノートの上で脳内インタプリタ働かせて
Brainfuckやってたんだが、

友達に「なにやってんのー?」って聞かれたから
「Brainfuck」って言ったら結構引かれた。

ってわけで、Brainfuckのかっこいい和名考えない?


947 :デフォルトの名無しさん:2007/04/20(金) 19:31:07
>>946
ビーエフでええやん。

948 :デフォルトの名無しさん:2007/04/20(金) 19:35:47
>>947
横文字じゃなくて、漢字がイイ

949 :デフォルトの名無しさん:2007/04/20(金) 19:43:00
「脳姦」以外に考えられない!

950 :デフォルトの名無しさん:2007/04/20(金) 20:04:31
パズルやってるっていえばいいのに

951 :デフォルトの名無しさん:2007/04/20(金) 20:13:04
>>946
こんなところに俺がいた^^;

952 :デフォルトの名無しさん:2007/04/20(金) 21:27:04
脑奸 (nao3 jian1)

953 :デフォルトの名無しさん:2007/04/20(金) 21:59:46
C−

954 :デフォルトの名無しさん:2007/04/20(金) 23:35:32
のーみそこねこね。

955 :デフォルトの名無しさん:2007/04/21(土) 05:03:49
>>949
ノーカン、クソワロタ

956 :デフォルトの名無しさん:2007/04/21(土) 22:47:48
暇だったので作ってみた
後悔はしていない
http://www.uploda.org/uporg782704.zip.html
パス:brainfuck

957 :デフォルトの名無しさん:2007/04/22(日) 08:30:33
>>956
もうとっくに消えてるorz
もうしわけないが、再うpしてくれないか。

958 :デフォルトの名無しさん:2007/04/22(日) 12:05:17
>>957
http://www.bnbest.net/uploader/upload.cgi?mode=dl&file=482
パス:BF

Shift_JISに対応できない(´・ω・`)

959 :デフォルトの名無しさん:2007/04/22(日) 13:02:30
>>958
ありがとうございます!
さっそく居ただきました!

960 :デフォルトの名無しさん:2007/04/22(日) 16:30:20
Brainfuck追加文字
: 画像のロード
; ロードして画像を出力

例)>:"img\\test.bmp";
> ・・・ メモリ{1}に移動して

:"img\\tets.bmp" ・・・ imgフォルダのtest.bmpを読み込む
このとき、test.bmpがnバイトとすると、{1}〜{n-1}は画像に占領される。
{n}は、画像終了を意味する文字が入る

; ・・・ {1}から{n-1}までの画像データを出力

961 :デフォルトの名無しさん:2007/04/22(日) 17:14:37
>>946
八則程序編制

八つで組むプログラミングみたいな意味

962 :,+[-.,+]:2007/04/22(日) 18:06:52
ポインターゴルフ

ポインターをこつこつ叩いて、ゴールまで持ってく感じ

963 :デフォルトの名無しさん:2007/04/22(日) 22:16:06
>>958
頂きました。
俺もJavaScript実装書いてるのでパクらせ、、、参考にさせてて頂きますw

964 :デフォルトの名無しさん:2007/04/23(月) 19:25:52
Brainfuck→脳姦→のうかん→脳幹

脳幹
電脳の中でメモリーをこつこつ叩いて、ゴールまで持ってく感じ

965 :デフォルトの名無しさん:2007/04/23(月) 20:07:42
ゆとり「のう・・・・・・かん・・・?」

966 :デフォルトの名無しさん:2007/04/24(火) 17:29:05
ノーコンみたいやね

967 :デフォルトの名無しさん:2007/04/25(水) 18:20:54
やっと>>1から読んだけど、すごいね。

968 :デフォルトの名無しさん:2007/04/26(木) 05:08:13
もし次スレを立てるようなことがあるなら、スレタイの< >には注意な
&lt; &gt;で

969 :デフォルトの名無しさん:2007/04/26(木) 22:34:30
Win32ネイティブBFコンパイラ
バグあるかもしれん。時間あったら直します。

http://ten.vc/uploader/upload.cgi?mode=dl&file=496

DLパス:bfc

あと俺は>>375>>504とは別人なので。念のため


970 :デフォルトの名無しさん:2007/04/26(木) 22:41:36
コンパイラやインタプリタばっかり出てコードが出てこない(´・ω・`)

971 :デフォルトの名無しさん:2007/04/27(金) 13:18:55
それがこの言語の本質でもあるからな

972 :デフォルトの名無しさん:2007/04/27(金) 18:43:43
>>969
付属のhello.bfで試したけど上手くいかないな。

973 :デフォルトの名無しさん:2007/04/27(金) 20:01:54
次スレ案
Brainfuck +++++++[>+++++++<-]>+.

コピペ用
Brainfuck +++++++[&gt;+++++++&lt;-]&gt;+.

974 :デフォルトの名無しさん:2007/04/27(金) 20:03:20
もう少しリーダブルにしろよw
ここは品悪く
<[+-.,]>BrainFuck 2回戦目


975 :デフォルトの名無しさん:2007/04/27(金) 21:05:12
http://golf.shinh.org/
ここの問題2,3問といてたら、>>973程度は十分リーダブル。
むしろ、<[+-.,]>という良く分からない無意味なプログラムが気持ち悪く感じる。

976 :デフォルトの名無しさん:2007/04/27(金) 22:07:56
いくらなんでも板の風習を無視しすぎ

977 :デフォルトの名無しさん:2007/04/27(金) 22:17:47
どんな風習だよ

978 :デフォルトの名無しさん:2007/04/27(金) 22:27:43
別に意味あるプログラムにする必要はないじゃん
変に凝ろうとしたり、書き方を変える(Vol.X→X巻 等)のもわかりづらい。
今のスレの次スレということがわかるタイトルにすればよろし。

979 :デフォルトの名無しさん:2007/04/27(金) 23:25:23
>>975
全コマンドを列挙してあるんじゃん。
>>973 みたいなのがスレタイにあるほうが嫌やわ。

980 :デフォルトの名無しさん:2007/04/30(月) 14:55:05
【<[+-.,]>】Brainfuck【+++++++[>+++++++<-]>+.】

981 :デフォルトの名無しさん:2007/04/30(月) 16:45:55
>>980
なんという複合スレタイ…
どう見ても両方の悪いところしか残っていない…

982 :デフォルトの名無しさん:2007/04/30(月) 16:58:38
BrainFuck 2 <[+-.,]>

でいいじゃん

983 :デフォルトの名無しさん:2007/04/30(月) 16:58:58
Brainfuckの文字列があればあとはなんでも良いよ。

984 :デフォルトの名無しさん:2007/04/30(月) 17:25:30
>>982
斬新だ!

985 :デフォルトの名無しさん:2007/04/30(月) 17:42:11
じゃあ次スレはBF拡張について話そうか。

986 :デフォルトの名無しさん:2007/04/30(月) 17:47:45
拡張したらもはやBrainfuckとは言えないのだよ

987 :デフォルトの名無しさん:2007/04/30(月) 19:24:27
>>986
じゃあ次のネタよろ。(´ω`)

988 :969:2007/04/30(月) 20:40:24
流れぶった切って投下

>>969 を修正してみた
http://up.spawn.jp/file/up18148.zip.html

文字比較書いてみたけど難しい…。これで大丈夫かな?
http://up.spawn.jp/file/up18154.txt.html

989 :デフォルトの名無しさん:2007/04/30(月) 21:47:30
Brainf**ck

990 :デフォルトの名無しさん:2007/04/30(月) 21:53:23
>>988
helloworldが

0=DDGSGOGJD<H

とか吐いたんだがこれはなんだ

991 :デフォルトの名無しさん:2007/04/30(月) 23:47:17
最近知ったんだけど、これ面白いね
まだよく理解できてないけどorz

992 :BrainFuck状態な人の発言:2007/05/01(火) 01:18:30
抽象化した結果表現されるものは、設計者が想定した概念やイメージだ。しかし、
実在するものそのものではなく、人が考えたものであるために、このイメージは
非常に脆く、不安定だ。外部からの影響をもろに受け、形を変え易い。個々人が
持つイメージの些細な相違から認識のずれが生じ易い。扇風機の使い方は人に
よって異なることはないが、人がイメージしたものは、その生成から、破棄に至る
まで、非常に不安定な状態になり易い。それを防ぐには、イメージそのものをなる
べく強固なものにし、インターフェースに一貫性と整合性をもたせ、外因による影響
を受けに難くく、壊れ難くするための技術を見につけ、理解を深めておくしかない。

仮想化とは対象物を不完全ながらもその性質や姿を模倣し現出させることだ。
対して抽象化は、対象物のある特徴的な側面を抽出し概念化することだ。
仮想化で抽象化の技術が使われることはあるだろうが、その逆は考え難い。
コンピュータを使い、扇風機やコタツを抽象化することはできても、仮想化する
ことはできないのだ。少なくとも今の技術では無理だ。コンピュータがその姿形
を変えることはできないのだから。コンピュータが仮想化できるものは、コンピュー
タそのものが直接扱うものだけだ。例えば、仮想メモリ、仮想ネットワーク、仮想
マシン、仮想キーボードといったものだ。

993 :デフォルトの名無しさん:2007/05/01(火) 07:53:07
>992
「BrainFuck状態な人の発言」なら、ちゃんとBFのコードで語るハズだ

994 :デフォルトの名無しさん:2007/05/01(火) 11:04:31
とりあえず、日本語喋れるBFに拡張しようぜ。

995 :デフォルトの名無しさん:2007/05/01(火) 11:38:53
BFで書かれたBFコンパイラとかよくあるけどあれの使い方が分かんない

996 :デフォルトの名無しさん:2007/05/01(火) 11:57:44
999ならナナリンはオレ(ンジ)のもの

997 :デフォルトの名無しさん:2007/05/01(火) 11:59:23
999なら(戦艦)長門は俺の嫁

998 :デフォルトの名無しさん:2007/05/01(火) 12:01:13
>>995
そのBFコンパイラを別のコンパイラでコンパイルして、標準入力からBFコードを食わせるんだ。

999 :デフォルトの名無しさん:2007/05/01(火) 12:01:30
BrainFuck Part.2 <[+-.,]>
http://pc11.2ch.net/test/read.cgi/tech/1177988460/

1000 :デフォルトの名無しさん:2007/05/01(火) 12:02:30
1000ならみんなでたのしくBrainfuck

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

210 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)