BrainFuck <[+-.,]>

429デフォルトの名無しさん
新言語 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 のサイトは
完全にお遊び用だったからバックアップも取ってなかったし、ただいまあちこちのマシンから発掘作業中。
しかし件のアプレットのソースはまだ見つかってない…
448447:04/10/29 15:41:53
あーマジでないっぽいっす。archive.org にも転がってなかったし、誰か
ダウンロードしてる人居たらどっかのアップローダーか postmaster@tool-ya.ddo.ジェーピー
まで送ってください。
449デフォルトの名無しさん:04/10/31 19:43:20
とりあえず、俺にはまだ
>>10の動きが、
同じならカッコ内ではなく、違ってればカッコ内としか読めない。
解説キボンヌ。
450447: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
乙です
復帰したらまた遊ばせてもらいます。
453447: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
++++[>>++++++++<<-]++[>>>+++++<<<-]++++++++[>+++++++++++<-]>-.<++++[>++++<-]>+.-
------.<++++[>+++++<-]>-.>.<<++++[>----<-]>-.++++++++++++.--.--------.++++++++++
++++.>.<-----.---------.<++++[>+++++<-]>-.----.>.<-----------.+++++.>.<++++++.--
----------.---.>.<++++++++++++++.--------------.++++++++++++.++++.<++++[>----<-]
>.+++++++++.-----------.++.<++++++[>------<-]>--.>>.<<------.>>.<<------.++++++.
---.+++.>>.<<-------.+++++++..-------.+++++++.>>.<<--------.++++++++...------.++
++++.---.>>.<<----.+++++++..--.----.++++++..---.+++.>>.<<-------.+++++++.-------
--.+++++++++.--------.++++++++...---.+++.>>.<<--------.++++++++.-------.+++++++..
----.++++...-------.+++++++.>>.<<.---------.+++++++++...----.++.++...---.+++.
456447:04/11/16 01:15:05
デフォルトでエコーバックしないようにしてみた。あと文字入力モードに入ったときに
多少分かりやすくなったか。全角の扱いに関してはまた今度。

履歴見たら最初に作ってからもう2年も経ってんだな。俺も三十路に入ったよ…
457デフォルトの名無しさん:04/11/16 16:48:10
コードに改行が入ってると実行したときにコードのカーソルと上2つの表示がずれてきます
458447: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
エニグマ暗号機に似てるとオモタ
463447:04/11/24 06:36:35
ステップ実行のカーソル位置ずれより先に国際文字出力に対応したザンス。
Shift_JIS でも UTF-8 でも文字出力可能 (になってる事を望む…)。
464447=蔓屋 ◆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
                  [勇気]
                [勇気][勇気]
             [勇気][勇気][勇気][勇気]
生産が        [勇気][勇気][勇気][勇気]
 追いつかないよ  .[勇気][勇気][勇気][勇気]
   ∧__∧    [勇気][勇気][勇気][勇気][勇気]
   ( ´・ω・)    [勇気][勇気][勇気][勇気][勇気]
   /ヽ○==○  [勇気][勇気][勇気][勇気][勇気]
  /  ||_ | [勇気][勇気][勇気][勇気][勇気][勇気]
  し' ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄
473447=蔓屋 ◆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
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
588586: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 BE:368189478-
>>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を使おう。
632631: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が動かない壊れたカモ(ビクビク)←実はコンセント入ってない並にワラタ

638631: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
㌧クス。負の数を扱うのはアレだから、とりあえずメモリサイズ 256 にして、回り込むようにしたよ。
.NET の実行ファイル吐き出す奴は出来たから、最適化まで出来たら公開してみるよ。
646デフォルトの名無しさん:2005/09/30(金) 01:51:42
647デフォルトの名無しさん:2005/10/08(土) 20:28:04
えらい長いな
648デフォルトの名無しさん:2005/10/09(日) 21:45:13
, の扱いがおかしい気がする
649646: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
>・一般的な証明法はない
>あるとすると、問題となっているコードより短いコード全ての
>停止性が判定できることになる。

くあしく
656652:2005/10/20(木) 18:09:43
[] が無いと、虱潰しで最短であるかどうかが調べられそうな気がします。
この仮定が合っていれば、証明できないコードには最低限 [] が含まれていることになるんですが……。

今回 652 を思ったわけは、
  1: メモリ配置の工夫によって <> を削減できる
  2: <> の量は計算手順に変化を与えない
から、計算手順を固定で考えれば、最短コードであるかどうかが証明できそうな気がしたんです。
657654: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
くあしく
661652: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は異なる結果を出す」
事を証明しないといけないが、それはどうする?
664652:2005/10/20(木) 21:22:51
>>663
生実行
665652: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
つまり、本質的には停止性問題なので、最短判定はできないと。
670652: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
停止性が保証されるのと
停止するかどうか判断できるというのは
だいぶ違うような気が
682sage: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
おれもそれを最初に考えたけど、それって短すぎるから、相手のコードがすごく長いときに自分が先に殺されて負けない?
691689: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なりたてだから許して。
773770: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
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と似たようなブロックを多数設置、
状態遷移用のスタックと、スタックポインタを用意しておいて、
そいつの値によってどのブロックを実行するか決める。
ブロックの終端でスタックをポップして前のブロックのすぐ次に戻る。

「すぐ次に戻ってくる」っていうのが難しそうだが、
できないこともないと思うんだが。
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
[…]のネストを色分けで表示できるとカラフルでハッピーだな
820812: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
ちょっと燃えてきました。(`・ω・´)
878877: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インタプリタはどっかに落ちてるから、それを改造するとかかね。
いや、難しそうだな……。
940938: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 のような実装なら、ヌルとか持ってこなくても単に ] でプログラムの終了ができるね
942938:2007/04/19(木) 00:21:51
自己書き換え可能にするとコード中の[]が動的に書き換えられる可能性があるから
スタックに積んでおく手法は残念ながら使えない。

あと、さっきの発言の「C++」は、C++のソースコードとして直接仕込むようにした、
と言いたかっただけだからあまり気にしないでくれ。
943デフォルトの名無しさん:2007/04/19(木) 01:09:15
なんか良くわかんないや。
interpretする言語とされる言語をはっきり明記してくれんと……。

俺は最初両方BFと思ったけど、C++出てきたからどうやら違うようだし。
944938: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
じゃあ次のネタよろ。(´ω`)
988969: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
992BrainFuck状態な人の発言: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
1000デフォルトの名無しさん:2007/05/01(火) 12:02:30
1000ならみんなでたのしくBrainfuck
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。