BrainFuckとは
難解プログラミング言語の一つ。
オシシメサイトはhttp://www.google.co.jp/
以下俺的見解
・スレッドタイトルに全命令が入る素敵な言語。
・1レス内に全命令のリファレンスが入る素敵な言語。
> ポインタをインクリメント
< ポインタをデクリメント
+ ポインタが示すメモリ位置のデータをインクリメント
- ポインタが示すメモリ位置のデータをデクリメント
. ポインタが示すメモリ位置のデータを出力
, ポインタが示すメモリ位置のデータに入力
[ ポインタが示すメモリ位置のデータがヌルなら対応する]までジャンプ
] ポインタが示すメモリ位置のデータがヌルじゃないなら対応する[までジャンプ
前スレ: BrainFuck Part.2 <[+-.,]>
http://pc11.2ch.net/test/read.cgi/tech/1177988460/
過去スレ: BrainFuck <[+-.,]>
http://pc11.2ch.net/test/read.cgi/tech/1036013915/
BrainFuck Part.3 <[+-.,]>
■ このスレッドは過去ログ倉庫に格納されています
2009/01/08(木) 12:09:18
2009/01/08(木) 12:11:32
Brainfuck(ブレインファック)はプログラミング言語の一つ。
名称が良いものではないため、Brainf*ckと呼称するのが一般的。
開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。
実際、Müllerが開発したコンパイラのサイズは123バイト(キロバイトではない!)、
インタプリタは98バイトとなっている。
処理系には十分なサイズのbyte型配列とその要素のひとつを指すポインタがある。
ポインタを「>」「<」命令で移動させながら、そのポインタが指す値を増減させて
処理を進めていく(Hello world参照)。
実用性はほとんど無いように思われるが、これだけでチューリングマシンで実行可能な
あらゆるプログラムが記述できる(チューリング完全である)とされている。
名称が良いものではないため、Brainf*ckと呼称するのが一般的。
開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。
実際、Müllerが開発したコンパイラのサイズは123バイト(キロバイトではない!)、
インタプリタは98バイトとなっている。
処理系には十分なサイズのbyte型配列とその要素のひとつを指すポインタがある。
ポインタを「>」「<」命令で移動させながら、そのポインタが指す値を増減させて
処理を進めていく(Hello world参照)。
実用性はほとんど無いように思われるが、これだけでチューリングマシンで実行可能な
あらゆるプログラムが記述できる(チューリング完全である)とされている。
2009/01/08(木) 12:20:32
<>参考サイト
ttp://ja.wikipedia.org/wiki/Brainfuck
ttp://vipprog.net/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E/Brainfuck.html
<>実行環境等
Cソースに変換するコンパイラ(超高速)
ttp://esoteric.sange.fi/brainfuck/impl/compilers/BF2C.c
JavaScript版インタプリタ(超低速)
ttp://cfs.maxn.jp/neta/onlineBrainFuck.html
VHDLで書かれたBF-CPU(BIOS付き)
ttp://www.clifford.at/bfcpu/bfcpu.html
<>例
Hello world!
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
>>1乙
++++++++[>++++++++<-]>--..-------------.<+++++[>++++++<-]>.+++++.+.
ttp://ja.wikipedia.org/wiki/Brainfuck
ttp://vipprog.net/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E/Brainfuck.html
<>実行環境等
Cソースに変換するコンパイラ(超高速)
ttp://esoteric.sange.fi/brainfuck/impl/compilers/BF2C.c
JavaScript版インタプリタ(超低速)
ttp://cfs.maxn.jp/neta/onlineBrainFuck.html
VHDLで書かれたBF-CPU(BIOS付き)
ttp://www.clifford.at/bfcpu/bfcpu.html
<>例
Hello world!
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
>>1乙
++++++++[>++++++++<-]>--..-------------.<+++++[>++++++<-]>.+++++.+.
2009/01/08(木) 12:25:23
<>亜種
長門有希
(リンク先行方不明)
neko mimi Fu**
ttp://d.hatena.ne.jp/tokuhirom/20041015/p14
Misa
ttp://homepage2.nifty.com/kujira_niku/okayu/misa.html
あえぎ声記述言語
ttp://vipprog.tumblr.com/post/35257076/brainf-ck
※置換ネタは無意味なので控えましょう
長門有希
(リンク先行方不明)
neko mimi Fu**
ttp://d.hatena.ne.jp/tokuhirom/20041015/p14
Misa
ttp://homepage2.nifty.com/kujira_niku/okayu/misa.html
あえぎ声記述言語
ttp://vipprog.tumblr.com/post/35257076/brainf-ck
※置換ネタは無意味なので控えましょう
5デフォルトの名無しさん
2009/01/08(木) 13:14:46 こんな本が出てるらしい
ttp://book.mycom.co.jp/book/978-4-8399-2784-4/978-4-8399-2784-4.shtml
> あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、
> 空白だけで構成されるプログラミング言語があるのをご存じだろうか。
> 本書では、そんな奇妙な言語(Esoteric Language)を題材に
> プログラミング言語の作り方を解説します。
ttp://book.mycom.co.jp/book/978-4-8399-2784-4/978-4-8399-2784-4.shtml
> あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、
> 空白だけで構成されるプログラミング言語があるのをご存じだろうか。
> 本書では、そんな奇妙な言語(Esoteric Language)を題材に
> プログラミング言語の作り方を解説します。
6デフォルトの名無しさん
2009/01/08(木) 13:15:32 1-2 サンプルプログラムに特化した言語、HQ9+
1-3 8つの命令ですべてを記述する言語、Brainf*ck
1-4 決して印刷できない言語、Whitespace
2-1 きらめく星空のような言語、Starry
2-2 Unicodeを悪ノリした言語、Bolic
付録 Esoteric Language傑作選
新次元のプログラミング言語、Befunge
文字を一種類しか使わない言語、Wierd
英文学的プログラミング言語、Shakespeare
数値を「調理」する言語、Chef
関数だけでできている言語、Unlambda
ちょっと草植えときますね型言語、Grass
1キロバイトでコンパイラが書ける言語、False8
0次元のプログラミング言語、NULL
A, AAA言語、AAAAAAAAAAAAAA!!!!
普通の言語に似て非なる言語、INTERCAL
地獄から来た言語、Malbolge
風にたなびく煙のような言語、KEMURI
データをドライブする言語、Taxi4
1-3 8つの命令ですべてを記述する言語、Brainf*ck
1-4 決して印刷できない言語、Whitespace
2-1 きらめく星空のような言語、Starry
2-2 Unicodeを悪ノリした言語、Bolic
付録 Esoteric Language傑作選
新次元のプログラミング言語、Befunge
文字を一種類しか使わない言語、Wierd
英文学的プログラミング言語、Shakespeare
数値を「調理」する言語、Chef
関数だけでできている言語、Unlambda
ちょっと草植えときますね型言語、Grass
1キロバイトでコンパイラが書ける言語、False8
0次元のプログラミング言語、NULL
A, AAA言語、AAAAAAAAAAAAAA!!!!
普通の言語に似て非なる言語、INTERCAL
地獄から来た言語、Malbolge
風にたなびく煙のような言語、KEMURI
データをドライブする言語、Taxi4
2009/01/08(木) 13:19:17
Amazon.co.jp: Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~: 原 悠: 本
ttp://www.amazon.co.jp/dp/4839927847
ttp://images-jp.amazon.com/images/P/4839927847.09.MZZZZZZZZZ.jpg
>内容紹介
>あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、空白だけで構成されるプログラミング言語があるのをご存じだろうか。
>本書では、そんな奇妙な言語(Esoteric Language)を題材にプログラミング言語の作り方を解説します。
[esobook] Brainf*ckとWhitespaceの本を書きましたwwww - Greenbear Diary (2008-12-08)
ttp://mono.kmc.gr.jp/~yhara/d/?date=20081208#p01
> 第一部ではHQ9+から始まり、Brainf*ck、Whitespaceを題材にインタプリタ・VM方式の処理系を作る
> 第二部では本書オリジナル言語であるStarry、Bolicを題材に新しいプログラミング言語の作り方を解説
> 付録では本編で取り上げられなかった13個のEsoteric Languageをちょっとずつ紹介 (Grassもあるよ!)
ttp://www.amazon.co.jp/dp/4839927847
ttp://images-jp.amazon.com/images/P/4839927847.09.MZZZZZZZZZ.jpg
>内容紹介
>あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、空白だけで構成されるプログラミング言語があるのをご存じだろうか。
>本書では、そんな奇妙な言語(Esoteric Language)を題材にプログラミング言語の作り方を解説します。
[esobook] Brainf*ckとWhitespaceの本を書きましたwwww - Greenbear Diary (2008-12-08)
ttp://mono.kmc.gr.jp/~yhara/d/?date=20081208#p01
> 第一部ではHQ9+から始まり、Brainf*ck、Whitespaceを題材にインタプリタ・VM方式の処理系を作る
> 第二部では本書オリジナル言語であるStarry、Bolicを題材に新しいプログラミング言語の作り方を解説
> 付録では本編で取り上げられなかった13個のEsoteric Languageをちょっとずつ紹介 (Grassもあるよ!)
8デフォルトの名無しさん
2009/01/08(木) 13:21:41 punctfuck.rb
$___,@_,@__,$_=(@@__="")=~//,?#=~/$/,->(_){_<(__="####"=~/$/)**__&&(@@__<<
_;@__[_+@_])},[*$<]*@@__;@__[$___];$____,$_,@___,$__,@__=$_[@_+($_+?!=~/!/
)..-@_],$`,[],[],->(_){(__=$_[_];__=~/[><+\-\.,]/?$__<<$_[_]:__==?[?(@___,
$__=$__,[]):__==?]?$__=@___<<$__:__==$\?$\:_)&&@__[_+@_]};@__[$___];@___,
$_,@@_,@__=[],[],$___,->(_){$_[@@_]||=$___;({?>=>->{@@_+=@_},?<=>->{@@_-=
@_},?+=>->{$_[@@_]+=@_},?-=>->{$_[@@_]-=@_},?.=>->{$><<@@__[$_[@@_]]},?,=>
->{$____=~/^./&&($____=$';$_[@@_]=@@__=~/#{((__,=[*?/..?:]&[$&];__)||(__,=
[*?@...?[]&[$&];__)||(__,=[*?`...?{]&[$&];__))&&__!=?{?$&:'\\'+$&}/)},$\=>
->{$\}}[$__[_]]||->{$_[@@_]!=$___&&(@___<<[$__,_-@_];$__=$__[_];@__[$___]
*@___,($__,_)=@___);""})[]&&@__[_+@_]};@__[$___]
■[Ruby] 記号だけで brainfuck インタプリタ
http://d.hatena.ne.jp/ku-ma-me/20080626/p1
$___,@_,@__,$_=(@@__="")=~//,?#=~/$/,->(_){_<(__="####"=~/$/)**__&&(@@__<<
_;@__[_+@_])},[*$<]*@@__;@__[$___];$____,$_,@___,$__,@__=$_[@_+($_+?!=~/!/
)..-@_],$`,[],[],->(_){(__=$_[_];__=~/[><+\-\.,]/?$__<<$_[_]:__==?[?(@___,
$__=$__,[]):__==?]?$__=@___<<$__:__==$\?$\:_)&&@__[_+@_]};@__[$___];@___,
$_,@@_,@__=[],[],$___,->(_){$_[@@_]||=$___;({?>=>->{@@_+=@_},?<=>->{@@_-=
@_},?+=>->{$_[@@_]+=@_},?-=>->{$_[@@_]-=@_},?.=>->{$><<@@__[$_[@@_]]},?,=>
->{$____=~/^./&&($____=$';$_[@@_]=@@__=~/#{((__,=[*?/..?:]&[$&];__)||(__,=
[*?@...?[]&[$&];__)||(__,=[*?`...?{]&[$&];__))&&__!=?{?$&:'\\'+$&}/)},$\=>
->{$\}}[$__[_]]||->{$_[@@_]!=$___&&(@___<<[$__,_-@_];$__=$__[_];@__[$___]
*@___,($__,_)=@___);""})[]&&@__[_+@_]};@__[$___]
■[Ruby] 記号だけで brainfuck インタプリタ
http://d.hatena.ne.jp/ku-ma-me/20080626/p1
9デフォルトの名無しさん
2009/01/08(木) 13:24:43 今までに作ったソフト - Nintendo DSでプログラミング
http://void-main.org/dsprogram/index.php?%E4%BB%8A%E3%81%BE%E3%81%A7%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%BD%E3%83%95%E3%83%88
http://void-main.org/dsprogram/index.php?%E4%BB%8A%E3%81%BE%E3%81%A7%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%BD%E3%83%95%E3%83%88
10デフォルトの名無しさん
2009/01/08(木) 13:34:15 ttp://www.esolangs.org/wiki/Quantum_brainfuck
11デフォルトの名無しさん
2009/01/08(木) 13:36:49 ttp://hoznas.blogspot.com/2008/06/brainfukexcel.html
ttp://unkun.ikaduchi.com/excel_bf/index.html
ttp://unkun.ikaduchi.com/excel_bf/index.html
12デフォルトの名無しさん
2009/01/08(木) 13:42:24 ttp://www.hevanet.com/cristofd/brainfuck/
ttp://jp.youtube.com/watch?v=GcDshWmhF4A
#…今指すメモリに西暦の上2桁入力
次のメモリに下2桁
次のメモリに月入力
次のメモリに日入力
#
> >[> > >+<<<-]> > >+[<+++++++++++++>-]+++++<[> >+>+<<<-]> > >[<<<+> > >-]<<[>>
+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[<<<<[> >+>+<<<-]> >
>[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]> >[<<<<+> > > >-]<<<
[-]<<<<<<++[> > > > >+<<<<<-]> >+++++[> > >+<<<-]> > > >+++++++<[> >+>+<<<-]> >
>[<<<+> > >-]<<[> >+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[
<<<<[> >+>+<<<-]> > >[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]>
>[<<<<+> > > >-]<<++++++++[<++++++>-]<.
今日の曜日を計算
0…月曜日 1…火曜日 ・・・ 6…日曜日
閏年の厳密な計算が面倒だったので2008〜2011までしか通用しないのと、
除算は前スレの誰かのを流用しただけなので、もっと短くできる。(メモリを破壊してもいいので)
ttp://jp.youtube.com/watch?v=GcDshWmhF4A
#…今指すメモリに西暦の上2桁入力
次のメモリに下2桁
次のメモリに月入力
次のメモリに日入力
#
> >[> > >+<<<-]> > >+[<+++++++++++++>-]+++++<[> >+>+<<<-]> > >[<<<+> > >-]<<[>>
+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[<<<<[> >+>+<<<-]> >
>[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]> >[<<<<+> > > >-]<<<
[-]<<<<<<++[> > > > >+<<<<<-]> >+++++[> > >+<<<-]> > > >+++++++<[> >+>+<<<-]> >
>[<<<+> > >-]<<[> >+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[
<<<<[> >+>+<<<-]> > >[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]>
>[<<<<+> > > >-]<<++++++++[<++++++>-]<.
今日の曜日を計算
0…月曜日 1…火曜日 ・・・ 6…日曜日
閏年の厳密な計算が面倒だったので2008〜2011までしか通用しないのと、
除算は前スレの誰かのを流用しただけなので、もっと短くできる。(メモリを破壊してもいいので)
13デフォルトの名無しさん
2009/01/08(木) 13:47:25 ttp://lab.moyo.biz/garage/brainfuck/index.xsp
ttp://brainfuck.sourceforge.net/results0.html
ttp://jp.youtube.com/watch?v=pP1yTDEtiDE
ttp://www.jmuk.org/diary/2007/03/01/0
>shebang 行の解釈は execve(2)、つまりカーネルが行なう。
>やったことがないなら man execve してみるといいと思う。ちゃんと解説してあります。
だと。シェルはカーネルに丸投げするだけみたいだ。
つまり、1行目を除いてからアプリに投げるカーネルを作ってやれば、おk(違
#勉強になった。
ttp://brainfuck.sourceforge.net/results0.html
ttp://jp.youtube.com/watch?v=pP1yTDEtiDE
ttp://www.jmuk.org/diary/2007/03/01/0
>shebang 行の解釈は execve(2)、つまりカーネルが行なう。
>やったことがないなら man execve してみるといいと思う。ちゃんと解説してあります。
だと。シェルはカーネルに丸投げするだけみたいだ。
つまり、1行目を除いてからアプリに投げるカーネルを作ってやれば、おk(違
#勉強になった。
2009/01/08(木) 13:58:25
ttp://groups.google.co.jp/group/brainfunck?hl=ja
>++++++++++[>+++++
+++>+++++++++++>++
++++++++++[<]>-]>--
.>>---.<--..<++.>+++.
>++++++++++[>+++++
+++>+++++++++++>++
++++++++++[<]>-]>--
.>>---.<--..<++.>+++.
2009/01/08(木) 13:59:38
module brainfuck;
const(ubyte)[] brainfuck(const(char)[] code)(in const(ubyte)[] input = []) {
ubyte[] output, mem = new ubyte[100];
uint ptr, readptr;
mixin(_brainfuck(code));
return output;
}
private const(char)[] _brainfuck(const(char)[] code) {
char[] o = "".dup;
foreach(c; code) {
switch(c) {
case '>': o ~= "if(++ptr >= mem.length) mem.length = mem.length * 2;"; break;
case '<': o ~= "--ptr;"; break;
case '+': o ~= "++mem[ptr];"; break;
case '-': o ~= "--mem[ptr];"; break;
case '.': o ~= "output ~= mem[ptr];"; break;
case ',': o ~= "mem[ptr] = readptr < input.length ? input[readptr++] : 0;"; break;
case '[': o ~= "while(mem[ptr] != 0) {"; break;
case ']': o ~= "}"; break;
default: break;
}
}
return o;
}
unittest {
assert(brainfuck!("+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.") == cast(ubyte[])"Hello, world!");
}
const(ubyte)[] brainfuck(const(char)[] code)(in const(ubyte)[] input = []) {
ubyte[] output, mem = new ubyte[100];
uint ptr, readptr;
mixin(_brainfuck(code));
return output;
}
private const(char)[] _brainfuck(const(char)[] code) {
char[] o = "".dup;
foreach(c; code) {
switch(c) {
case '>': o ~= "if(++ptr >= mem.length) mem.length = mem.length * 2;"; break;
case '<': o ~= "--ptr;"; break;
case '+': o ~= "++mem[ptr];"; break;
case '-': o ~= "--mem[ptr];"; break;
case '.': o ~= "output ~= mem[ptr];"; break;
case ',': o ~= "mem[ptr] = readptr < input.length ? input[readptr++] : 0;"; break;
case '[': o ~= "while(mem[ptr] != 0) {"; break;
case ']': o ~= "}"; break;
default: break;
}
}
return o;
}
unittest {
assert(brainfuck!("+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.") == cast(ubyte[])"Hello, world!");
}
2009/01/08(木) 14:00:38
>++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++..
..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>
.....<..>..<...>..
..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>
.....<..>..<...>..
17デフォルトの名無しさん
2009/01/08(木) 14:02:02 ttp://www.nishiohirokazu.org/blog/2007/02/grinedit_6.html
2009/01/08(木) 14:05:00
GZip+Base64
H4sICFJPkEYAAIGfdzVLMjdCRnIyAJWV63ECMQyE/9/MVSKUCjRuxOP+28jntc6CC0wSAcaWVmu9
Dlprj9YM6bFWX9J88I7wfplrRS6zQeDdIh5C2XksimIRg8doXR+z4ikqAJZsHBC0HpLzYJFvlw1O
1g4QlsCJ2xciMAhkOsILTJ9QCHk1jE/hGTYL//vSfVQGEMygz4PMuH7lwd4b6SDAbVTGlS9kYCc4
PcE7O4UeM0YREztwpaM4MyXkusDHVLUsCQifBNMGYJQQ44apQgmDstTdLz1hpzKUecJsS1dnOkFm
WJGNHChzLobi037sC4d/bth5fGhZ9YsVk4dr2SvxbnS7vNY87j7da9VupZLVohAAoiCpPo89eYS8
mjA3su6aIcqAwCZN8gxobrdzhJF7ew5BGFs8bB5EOldpsICpTZZljRvkXeO35xHBVW/rpnN1Evv7
7lXPLLtvegrL9e4mYtdFsBrqbLdY8AMsV2nkAIrpGQswiVCqMkAmCBG9UkAgpb96iVlgdLkXC1ln
nXZ98utDld7U6Pl6Zf1aiIoI+wX9T9wwVuRycLmjgQIVekuFiJbOpcn5cDSzplINPYU2/aoW9bOd
gkkpOslnf3R7ISZ1wGL1zFwV8szWfv6OKY0vNa+odF7Su2HSPD5++ZsZ31FFeUKKBgAA
H4sICFJPkEYAAIGfdzVLMjdCRnIyAJWV63ECMQyE/9/MVSKUCjRuxOP+28jntc6CC0wSAcaWVmu9
Dlprj9YM6bFWX9J88I7wfplrRS6zQeDdIh5C2XksimIRg8doXR+z4ikqAJZsHBC0HpLzYJFvlw1O
1g4QlsCJ2xciMAhkOsILTJ9QCHk1jE/hGTYL//vSfVQGEMygz4PMuH7lwd4b6SDAbVTGlS9kYCc4
PcE7O4UeM0YREztwpaM4MyXkusDHVLUsCQifBNMGYJQQ44apQgmDstTdLz1hpzKUecJsS1dnOkFm
WJGNHChzLobi037sC4d/bth5fGhZ9YsVk4dr2SvxbnS7vNY87j7da9VupZLVohAAoiCpPo89eYS8
mjA3su6aIcqAwCZN8gxobrdzhJF7ew5BGFs8bB5EOldpsICpTZZljRvkXeO35xHBVW/rpnN1Evv7
7lXPLLtvegrL9e4mYtdFsBrqbLdY8AMsV2nkAIrpGQswiVCqMkAmCBG9UkAgpb96iVlgdLkXC1ln
nXZ98utDld7U6Pl6Zf1aiIoI+wX9T9wwVuRycLmjgQIVekuFiJbOpcn5cDSzplINPYU2/aoW9bOd
gkkpOslnf3R7ISZ1wGL1zFwV8szWfv6OKY0vNa+odF7Su2HSPD5++ZsZ31FFeUKKBgAA
2009/01/08(木) 14:13:48
= で式の終了。q でプログラムの終了。
プログラムが終了しないときは = → 実行 → q → 実行 で終了するはず。
123+45 * 6+ (200+ 12 *( 99 -90) / 4 )*77 *=
を入れたらちゃんと17872を出すからバグはないと信じたい。
なんか凄いな、Brainfuck。C言語で
int main(){char a;scanf("%c",&a);a++;printf("%c",a);return 0;}
っていうプログラムも、BFにかかれば、
,+.
になっちまうんだもんな。すごいよBrainfuck。すごいよUrban Muller。
あ、あとBrainfuckをBrainf*ckって言ってるサイトが多いから、
Brainfでぐぐっても結構引っ掛かるんだよな。
だから、Brainfっていう呼び方を推奨する。
因みに日本語訳は、”魚の骨”だ。解説は要らないと思う。
プログラムが終了しないときは = → 実行 → q → 実行 で終了するはず。
123+45 * 6+ (200+ 12 *( 99 -90) / 4 )*77 *=
を入れたらちゃんと17872を出すからバグはないと信じたい。
なんか凄いな、Brainfuck。C言語で
int main(){char a;scanf("%c",&a);a++;printf("%c",a);return 0;}
っていうプログラムも、BFにかかれば、
,+.
になっちまうんだもんな。すごいよBrainfuck。すごいよUrban Muller。
あ、あとBrainfuckをBrainf*ckって言ってるサイトが多いから、
Brainfでぐぐっても結構引っ掛かるんだよな。
だから、Brainfっていう呼び方を推奨する。
因みに日本語訳は、”魚の骨”だ。解説は要らないと思う。
2009/01/08(木) 14:24:15
>>1
+++++++++[>+++[>+++++<-]<-]>>++.<++++++[>+++++++<-]>.
+++++++++[>+++[>+++++<-]<-]>>++.<++++++[>+++++++<-]>.
2009/01/08(木) 15:49:57
すみませんoctaveのプログラムについて聞きたいのですが・・・
どこで聞いたらいいでしょうか??この板にくるのは初めてなもんでorz
スレチですみません、誰か心やさしい人教えてください
どこで聞いたらいいでしょうか??この板にくるのは初めてなもんでorz
スレチですみません、誰か心やさしい人教えてください
2009/01/08(木) 15:57:11
データ解析ツールoctaveを語ろう
http://pc11.2ch.net/test/read.cgi/unix/1086016412/
http://pc11.2ch.net/test/read.cgi/unix/1086016412/
2009/01/08(木) 16:15:31
>>22
ありがとうございます!
ありがとうございます!
2009/01/08(木) 21:44:16
前スレでBFの出力すぐ見たいっていう話があったので
ブックマークレット作ってみることにした
ブックマークレット作ってみることにした
2009/01/08(木) 22:27:07
無限ループ判断をどうするかで悩んだら凡人決定
2009/01/08(木) 23:12:08
テストコード
+++++++++++++++++++++++++++++++++++++++++++++++++.
+++++++++++++++++++++++++++++++++++++++++++++++++.
2009/01/08(木) 23:13:19
テストコード
,[.>,]
,[.>,]
2009/01/09(金) 00:06:51
BFコードが無限ループする前にJavaScriptが無限ループしてます orz
2009/01/09(金) 00:17:41
無限ループするかどうか判定するブックマークレット
2009/01/09(金) 00:34:13
無限ループする無限ループするかどうか判定するブックマークレット
2009/01/09(金) 00:41:51
無限ループするかどうか判定するブックマークレットが無限ループするか判定させてみよう
2009/01/09(金) 01:45:02
javascript:(function(bf){a='........\t.\r..\n.................. !"#$%&\'
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmn
opqrstuvwxyz{|}~........................................................
...........................................................................';
p='';m=0;b=[0];i=0;s=[];o=[];c='';z=1;d=function(e){r=e+'\n('+c+') at '+i+
'\ns: '+s.join(',')+'\nm: '+m+'\nb['+b.join(',')+']\n'+o.join('');if(z){if
(!confirm(r)){z=0;}}else{alert(r);}};if(confirm('このコードは '+bf.length+
' 文字あります ( loop 除く )\n実行に時間がかかる場合がございます')){while
(i<bf.length){c=bf.charAt(i);if(c==','){p=prompt('入力(とりあえず1文字目のみ
有効)','');b[m]=(p&&p.length)?p.charAt(0).charCodeAt():0;}else if(c=='.')
{o.push(a.charAt(b[m] % 256));}else if(c=='['){if(!b[m]){k=0;j=i+1;while
(j<bf.length){f=bf.charAt(j);if(f=='['){k++;}else if(f==']'){if(!k){i=j+1;
continue;}else{k--;}}j++;}if(j>=bf.length){return d('対応する]が見つかりません');
}}else{s.push(i);}}else if(c==']'){if(!b[m]){s.pop();}else{i=s.pop();continue;}}
else if(c=='<'){if(--m<0){return d('未定義メモリ参照');}}else if(c=='>'){if
(++m>=b.length){b.push(0);}}else if(c=='+'){b[m]++;}else if(c=='-'){b[m]--;}
else if(c!=' '&&c!='\t'&&c!='\r'&&c!='\n'){return d('未定義命令');}if(z){d
('debug');}i++;}return d('正常終了');}})(document.selection?document.selection
.createRange().text:document.getSelection());
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmn
opqrstuvwxyz{|}~........................................................
...........................................................................';
p='';m=0;b=[0];i=0;s=[];o=[];c='';z=1;d=function(e){r=e+'\n('+c+') at '+i+
'\ns: '+s.join(',')+'\nm: '+m+'\nb['+b.join(',')+']\n'+o.join('');if(z){if
(!confirm(r)){z=0;}}else{alert(r);}};if(confirm('このコードは '+bf.length+
' 文字あります ( loop 除く )\n実行に時間がかかる場合がございます')){while
(i<bf.length){c=bf.charAt(i);if(c==','){p=prompt('入力(とりあえず1文字目のみ
有効)','');b[m]=(p&&p.length)?p.charAt(0).charCodeAt():0;}else if(c=='.')
{o.push(a.charAt(b[m] % 256));}else if(c=='['){if(!b[m]){k=0;j=i+1;while
(j<bf.length){f=bf.charAt(j);if(f=='['){k++;}else if(f==']'){if(!k){i=j+1;
continue;}else{k--;}}j++;}if(j>=bf.length){return d('対応する]が見つかりません');
}}else{s.push(i);}}else if(c==']'){if(!b[m]){s.pop();}else{i=s.pop();continue;}}
else if(c=='<'){if(--m<0){return d('未定義メモリ参照');}}else if(c=='>'){if
(++m>=b.length){b.push(0);}}else if(c=='+'){b[m]++;}else if(c=='-'){b[m]--;}
else if(c!=' '&&c!='\t'&&c!='\r'&&c!='\n'){return d('未定義命令');}if(z){d
('debug');}i++;}return d('正常終了');}})(document.selection?document.selection
.createRange().text:document.getSelection());
2009/01/09(金) 01:47:57
ブックマークを作成してURLに上の改行取り除いたものをまるごと保存してください
その後BFコードを選択してブックマークを選ぶと実行されます
デフォルトでデバッグモードで起動しますがデバッグをキャンセルすると
その場所から残りをリアルタイムで実行されます
とりあえず FireFox3 では動いた
IE6 だと JavaScript 単体では動くがブックマークレットにすると動かない
たぶんどこかの文字をエスケープする必要があると思う
その後BFコードを選択してブックマークを選ぶと実行されます
デフォルトでデバッグモードで起動しますがデバッグをキャンセルすると
その場所から残りをリアルタイムで実行されます
とりあえず FireFox3 では動いた
IE6 だと JavaScript 単体では動くがブックマークレットにすると動かない
たぶんどこかの文字をエスケープする必要があると思う
2009/01/09(金) 01:49:00
コントロールキャラクタ等は全部「.」表示されます
2バイトコードは試したけどまだうまくいっていないので
同様に「.」表示されます
2バイトコードは試したけどまだうまくいっていないので
同様に「.」表示されます
2009/01/09(金) 07:26:31
すげーけど使い勝手悪いね
2009/01/09(金) 07:39:02
alertのpopupじゃなくてwindowのpopupしようとしたら
popupブロックに引っ掛かったのでとりあえずalertにした感じ
改良予定としてはpopupじゃなく画面分割でデバッグ出来て
ここみたいに
ttp://cfs.maxn.jp/neta/onlineBrainFuck.html
実行位置が目視で判るようにしつつワークレジスタも表示出来るといいですね
FireFoxだと動いてIEで動かないときってFireBugでデバッグ出来ないから困りますね orz
popupブロックに引っ掛かったのでとりあえずalertにした感じ
改良予定としてはpopupじゃなく画面分割でデバッグ出来て
ここみたいに
ttp://cfs.maxn.jp/neta/onlineBrainFuck.html
実行位置が目視で判るようにしつつワークレジスタも表示出来るといいですね
FireFoxだと動いてIEで動かないときってFireBugでデバッグ出来ないから困りますね orz
2009/01/09(金) 07:41:34
FizzBuzzとか時間掛かるコードだと無限ループしてなくても
FireFoxのwatchdogにつかまって警告でてワロス
FireFoxのwatchdogにつかまって警告でてワロス
2009/01/09(金) 08:46:23
>>33
乙
IE6のブックマークレットの文字数制限
ttp://subsimple.com/bookmarklets/rules.asp
The Number of Characters
There is a limit to the number of characters your bookmarklet can contain.
The problem is, this limit differs between browser versions.
These are my findings on the number of characters supported by different browsers:
Browser Max chars
Netscape > 2000
Firefox > 2000
Opera > 2000
IE 4 2084
IE 5 2084
IE 6 508
IE 6 SP 2 488
IE 7 beta 2 2084
ブックマークレットを外部ファイルに書く方法(IE限定)
ttp://d.hatena.ne.jp/hasegawayosuke/20080116/p1
(この設定はセキュリティ的に心配あり)
頑張って文字数削るかIE6を捨てよう
乙
IE6のブックマークレットの文字数制限
ttp://subsimple.com/bookmarklets/rules.asp
The Number of Characters
There is a limit to the number of characters your bookmarklet can contain.
The problem is, this limit differs between browser versions.
These are my findings on the number of characters supported by different browsers:
Browser Max chars
Netscape > 2000
Firefox > 2000
Opera > 2000
IE 4 2084
IE 5 2084
IE 6 508
IE 6 SP 2 488
IE 7 beta 2 2084
ブックマークレットを外部ファイルに書く方法(IE限定)
ttp://d.hatena.ne.jp/hasegawayosuke/20080116/p1
(この設定はセキュリティ的に心配あり)
頑張って文字数削るかIE6を捨てよう
2009/01/09(金) 08:49:31
回避方法?
ttp://subsimple.com/bookmarklets/tips.asp#ScriptInclusion
ttp://subsimple.com/bookmarklets/tips.asp#ScriptInclusion
2009/01/09(金) 12:46:24
>>32
バグというか仕様の解釈の違いだろうけど
b[m]++; → ++b[m]&=255;
b[m]--; → --b[m]&=255;
o.push(a.charAt(b[m] % 256)); → o.push(a.charAt(b[m]));
の方が安定するかもしれない
(無限ループもどきが減ると思う)
バグというか仕様の解釈の違いだろうけど
b[m]++; → ++b[m]&=255;
b[m]--; → --b[m]&=255;
o.push(a.charAt(b[m] % 256)); → o.push(a.charAt(b[m]));
の方が安定するかもしれない
(無限ループもどきが減ると思う)
2009/01/09(金) 13:08:31
もうひとつあった
0の状態で[]に突入せずスルーするケースで(そういう書き方が存在するんだね)落ちてる
if(c=='['){}中の
if(!b[m])のelse節にs.push(i);があるけどそこは取ってif(!b[m])の前に移す
if(c=='['){s.push(i);if(!b[m])
0の状態で[]に突入せずスルーするケースで(そういう書き方が存在するんだね)落ちてる
if(c=='['){}中の
if(!b[m])のelse節にs.push(i);があるけどそこは取ってif(!b[m])の前に移す
if(c=='['){s.push(i);if(!b[m])
2009/01/09(金) 13:25:35
よく見たらその中のwhile中のcontinueが変
JavaScriptスレ池とか言われそうなので
一通り直したらまたうpするかも知れません
JavaScriptスレ池とか言われそうなので
一通り直したらまたうpするかも知れません
2009/01/09(金) 13:43:17
やはり内側のcontinueが外まで抜けることを期待してたバグだった
pushの位置が原因じゃなかったんだな
まさにBFコードが無限ループする前にJavaScriptが無限(ry
いままで良く動いてたなwww
pushの位置が原因じゃなかったんだな
まさにBFコードが無限ループする前にJavaScriptが無限(ry
いままで良く動いてたなwww
2009/01/09(金) 13:53:21
という訳でバグ修正版うp
javascript:(function(bf){a='........\t.\r..\n.................. !
"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`
abcdefghijklmnopqrstuvwxyz{|}~...................................
.................................................................
...............................';p=c='';m=i=0;b=[0];s=[];o=[];z=1
;d=function(e){r=e+'\n('+c+') at '+i+'\ns: '+s.join(',')+'\nm: '+
m+'\nb['+b.join(',')+']\n'+o.join('');if(z){if(!confirm(r)){z=0;}
}else{alert(r);}};if(confirm('このコードは '+bf.length+' 文字あり
ます ( loop 除く )\n実行に時間がかかる場合がございます')){while(i
<bf.length){c=bf.charAt(i);if(c==','){p=prompt('入力(とりあえず1
文字目のみ有効)','');b[m]=(p&&p.length)?p.charAt(0).charCodeAt():
0;}else if(c=='.'){o.push(a.charAt(b[m]));}else if(c=='['){if(!b[
m]){k=0;j=i;while(++j<bf.length){f=bf.charAt(j);if(f=='['){k++;}e
lse if(f==']'){if(!k){i=j+1;break;}else{k--;}}}if(j>=bf.length){r
eturn d('対応する]が見つかりません');}continue;}else{s.push(i);}}
else if(c==']'){t=s.pop();if(b[m]){i=t;continue;}}else if(c=='<')
{if(--m<0){return d('未定義メモリ参照');}}else if(c=='>'){if(++m>
=b.length){b.push(0);}}else if(c=='+'){++b[m];b[m]&=255;}else if(
c=='-'){--b[m];b[m]&=255;}else if(c!=' '&&c!='\t'&&c!='\r'&&c!='\
n'){return d('未定義命令');}if(z){d('debug');}i++;}return d('正常
終了');}})(document.selection?document.selection.createRange().te
xt:document.getSelection());
javascript:(function(bf){a='........\t.\r..\n.................. !
"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`
abcdefghijklmnopqrstuvwxyz{|}~...................................
.................................................................
...............................';p=c='';m=i=0;b=[0];s=[];o=[];z=1
;d=function(e){r=e+'\n('+c+') at '+i+'\ns: '+s.join(',')+'\nm: '+
m+'\nb['+b.join(',')+']\n'+o.join('');if(z){if(!confirm(r)){z=0;}
}else{alert(r);}};if(confirm('このコードは '+bf.length+' 文字あり
ます ( loop 除く )\n実行に時間がかかる場合がございます')){while(i
<bf.length){c=bf.charAt(i);if(c==','){p=prompt('入力(とりあえず1
文字目のみ有効)','');b[m]=(p&&p.length)?p.charAt(0).charCodeAt():
0;}else if(c=='.'){o.push(a.charAt(b[m]));}else if(c=='['){if(!b[
m]){k=0;j=i;while(++j<bf.length){f=bf.charAt(j);if(f=='['){k++;}e
lse if(f==']'){if(!k){i=j+1;break;}else{k--;}}}if(j>=bf.length){r
eturn d('対応する]が見つかりません');}continue;}else{s.push(i);}}
else if(c==']'){t=s.pop();if(b[m]){i=t;continue;}}else if(c=='<')
{if(--m<0){return d('未定義メモリ参照');}}else if(c=='>'){if(++m>
=b.length){b.push(0);}}else if(c=='+'){++b[m];b[m]&=255;}else if(
c=='-'){--b[m];b[m]&=255;}else if(c!=' '&&c!='\t'&&c!='\r'&&c!='\
n'){return d('未定義命令');}if(z){d('debug');}i++;}return d('正常
終了');}})(document.selection?document.selection.createRange().te
xt:document.getSelection());
2009/01/09(金) 13:54:46
最初のconfirmはうざければ取っても問題ないと思う
未定義命令もエラー出さずにスキップして良いかもしれない
FizzBuzzもちゃんと一瞬で終わるようになったよ
++++++[->++++> >+>+>-<<<<<]>[<++++> >+++>++++> >+++>+
++++>+++++> > > > > >++> >++<<<<<<<<<<<<<<-]<++++>+++
>-->+++>-> >--->++> > >+++++[->++>++<<]<<<<<<<<<<[->-
[> > > > > > >]>[<+++>.>.> > > >..> > >+<]<<<<<-[> > > >]>[<+
++++>.>.>..> > >+<]> > > >+<-[<<<]<[[-<<+> >]> > >+>+<<<<<
<[-> >+>+>-<<<<]<]>>[[-]<]>[> > >[>.<<.<<<]<[.<<<<]>]>.<<<<
<<<<<<<]
未定義命令もエラー出さずにスキップして良いかもしれない
FizzBuzzもちゃんと一瞬で終わるようになったよ
++++++[->++++> >+>+>-<<<<<]>[<++++> >+++>++++> >+++>+
++++>+++++> > > > > >++> >++<<<<<<<<<<<<<<-]<++++>+++
>-->+++>-> >--->++> > >+++++[->++>++<<]<<<<<<<<<<[->-
[> > > > > > >]>[<+++>.>.> > > >..> > >+<]<<<<<-[> > > >]>[<+
++++>.>.>..> > >+<]> > > >+<-[<<<]<[[-<<+> >]> > >+>+<<<<<
<[-> >+>+>-<<<<]<]>>[[-]<]>[> > >[>.<<.<<<]<[.<<<<]>]>.<<<<
<<<<<<<]
2009/01/09(金) 14:32:52
エラー処理とか>>40とか無視して短く書いてみた。cscript.exeで動作確認。
var prompt=function(x,y){return'a'};
var alert=function(s){WScript.Echo(s)};
//var alert=print; //for SpiderMonkey, V8, etc
(function(bf){
j=[];s=[];for(i=0;i<bf.length;++i){switch(bf.charAt(i)){case'[':s.push(i);break;case']':j[j[i]=s.pop()]=i;}}
o=[];p='';b=[0],m=0;
for(i=0;i<bf.length;++i){
switch(bf.charAt(i)){
case'>':b[++m]=b[m]||0;break;
case'<':--m;break;
case'+':++b[m];break;
case'-':--b[m];break;
case'[':b[m]||(i=j[i]);break;
case']':b[m]&&(i=j[i]);break;
case',':p=prompt('>','');b[m]=(p&&p.length)?p.charCodeAt(0):0;break;
case'.':o.push(String.fromCharCode(b[m]))
}}alert(o.join(''));return;
})('++++++++[>++++++++<-]>+.');
//})(document.selection?document.selection.createRange().text:document.getSelection());
けどまだ本体部分600字近くあるな。。orz
var prompt=function(x,y){return'a'};
var alert=function(s){WScript.Echo(s)};
//var alert=print; //for SpiderMonkey, V8, etc
(function(bf){
j=[];s=[];for(i=0;i<bf.length;++i){switch(bf.charAt(i)){case'[':s.push(i);break;case']':j[j[i]=s.pop()]=i;}}
o=[];p='';b=[0],m=0;
for(i=0;i<bf.length;++i){
switch(bf.charAt(i)){
case'>':b[++m]=b[m]||0;break;
case'<':--m;break;
case'+':++b[m];break;
case'-':--b[m];break;
case'[':b[m]||(i=j[i]);break;
case']':b[m]&&(i=j[i]);break;
case',':p=prompt('>','');b[m]=(p&&p.length)?p.charCodeAt(0):0;break;
case'.':o.push(String.fromCharCode(b[m]))
}}alert(o.join(''));return;
})('++++++++[>++++++++<-]>+.');
//})(document.selection?document.selection.createRange().text:document.getSelection());
けどまだ本体部分600字近くあるな。。orz
2009/01/09(金) 15:19:57
javascript:x=document;y=x.selection?x.selection.createRange().text:x.getSele
ction();w=y.length;m=i=0;b=[0];s=[];o=[];while(i<w){c=y.charCodeAt(i);if(c==
44){p=prompt();b[m]=(p&&p.length)?p.charCodeAt(0):0}if(c==46){o.push(b[m])}i
f(c==91){if(b[m]){s.push(i)}else{k=0;j=i;while(++j<w){f=y.charAt(j);if(f=='[
'){k++}if(f==']'){if(k){k--}else{i=j;break}}}if(j>=w){break}}}if(c==93){t=s.
pop();if(b[m]){i=t-1}}if(c==60){--m}if(c==62){if(++m>=b.length){b.push(0)}}i
f(c==43){++b[m]}if(c==45){--b[m]}i++}alert(o.join());
もう一息
っつーか前スレの
http://pc11.2ch.net/test/read.cgi/tech/1177988460/283
に似てきた(入力は無いみたいだけど)
ction();w=y.length;m=i=0;b=[0];s=[];o=[];while(i<w){c=y.charCodeAt(i);if(c==
44){p=prompt();b[m]=(p&&p.length)?p.charCodeAt(0):0}if(c==46){o.push(b[m])}i
f(c==91){if(b[m]){s.push(i)}else{k=0;j=i;while(++j<w){f=y.charAt(j);if(f=='[
'){k++}if(f==']'){if(k){k--}else{i=j;break}}}if(j>=w){break}}}if(c==93){t=s.
pop();if(b[m]){i=t-1}}if(c==60){--m}if(c==62){if(++m>=b.length){b.push(0)}}i
f(c==43){++b[m]}if(c==45){--b[m]}i++}alert(o.join());
もう一息
っつーか前スレの
http://pc11.2ch.net/test/read.cgi/tech/1177988460/283
に似てきた(入力は無いみたいだけど)
2009/01/09(金) 15:20:49
var prompt=function(x,y){return'a'};
var alert=function(s){WScript.Echo(s)};
//var alert=print; //for SpiderMonkey, V8, etc
(function(bf){
j=s=[];b=[i=m=0];o=p="";bf=bf.split("");
for(i in bf)if(bf[i]=='[')s.push(i),if(bf[i]==']')j[j[i]=s.pop()]=i;
for(i=0;i<bf.length;++i)
(c=bf[i])=='>'?b[++m]=b[m]||0:
c=='<'?--m:
c=='+'?++b[m]:
c=='-'?--b[m]:
c=='['?b[m]||(i=j[i]):
c==']'?b[m]&&(i=j[i]):
c==','?b[m]=((p=prompt('>',''))&&p.length)?p.charAt(0):0:
c=='.'?o+=String.fromCharCode(b[m]):void(0);
alert(o);
})('++++++++[>++++++++<-]>+.');
//})((S=(D=document).selection)?D.S.createRange().text:D.getSelection());
>>46を勝手に短くしてみた。100文字くらい削れた。
var alert=function(s){WScript.Echo(s)};
//var alert=print; //for SpiderMonkey, V8, etc
(function(bf){
j=s=[];b=[i=m=0];o=p="";bf=bf.split("");
for(i in bf)if(bf[i]=='[')s.push(i),if(bf[i]==']')j[j[i]=s.pop()]=i;
for(i=0;i<bf.length;++i)
(c=bf[i])=='>'?b[++m]=b[m]||0:
c=='<'?--m:
c=='+'?++b[m]:
c=='-'?--b[m]:
c=='['?b[m]||(i=j[i]):
c==']'?b[m]&&(i=j[i]):
c==','?b[m]=((p=prompt('>',''))&&p.length)?p.charAt(0):0:
c=='.'?o+=String.fromCharCode(b[m]):void(0);
alert(o);
})('++++++++[>++++++++<-]>+.');
//})((S=(D=document).selection)?D.S.createRange().text:D.getSelection());
>>46を勝手に短くしてみた。100文字くらい削れた。
2009/01/09(金) 15:34:29
>>48
この大きさだとIE6のbookmarkletに入りますかね
この大きさだとIE6のbookmarkletに入りますかね
2009/01/09(金) 18:32:42
>>48
おおお勉強になった。でもなんかエラー出たので微修正。
javascript:(function(bf){j=s=[];o=p='';b=[m=0];bf=bf.split('');
for(i in bf)(c=bf[i])=='['?s.push(i):c==']'?j[j[i]=s.pop()]=i:0;
for(i=0;c=bf[i],i<bf.length;++i)
c=='>'?b[++m]=b[m]||0:
c=='<'?--m:c=='+'?++b[m]:
c=='-'?--b[m]:
c=='['?b[m]||(i=j[i]):
c==']'?b[m]&&(i=j[i]):
c==','?(b[m]=((p=prompt('>',''))&&p.length)?p.charCodeAt(0):0):
c=='.'?o+=String.fromCharCode(b[m]):0;alert(o)
})((S=(D=document).selection)?S.createRange().text:D.getSelection());
IE7とFirefoxで確認したけど肝心のIE6がない。
おおお勉強になった。でもなんかエラー出たので微修正。
javascript:(function(bf){j=s=[];o=p='';b=[m=0];bf=bf.split('');
for(i in bf)(c=bf[i])=='['?s.push(i):c==']'?j[j[i]=s.pop()]=i:0;
for(i=0;c=bf[i],i<bf.length;++i)
c=='>'?b[++m]=b[m]||0:
c=='<'?--m:c=='+'?++b[m]:
c=='-'?--b[m]:
c=='['?b[m]||(i=j[i]):
c==']'?b[m]&&(i=j[i]):
c==','?(b[m]=((p=prompt('>',''))&&p.length)?p.charCodeAt(0):0):
c=='.'?o+=String.fromCharCode(b[m]):0;alert(o)
})((S=(D=document).selection)?S.createRange().text:D.getSelection());
IE7とFirefoxで確認したけど肝心のIE6がない。
2009/01/09(金) 19:00:32
52デフォルトの名無しさん
2009/01/09(金) 19:14:15 []の対応がおかしいっぽ
2009/01/09(金) 20:50:36
Rubyで作る奇妙なプログラミング言語
~Esoteric Language~
たちよみしてきた
Brainfuck
じゃなくて
Brainfsck
だっていうのは本当なんだろうか
~Esoteric Language~
たちよみしてきた
Brainfuck
じゃなくて
Brainfsck
だっていうのは本当なんだろうか
2009/01/09(金) 21:44:07
本家Wikipediaでbrainfsckで検索するとbrainfuckへ誘導されるから
元々あったネタなんだなと思ったんだけどどうなんだろ。
元々あったネタなんだなと思ったんだけどどうなんだろ。
2009/01/10(土) 00:03:49
2009/01/10(土) 00:36:09
「brainfsck -brainfuck」でぐぐると7万件くらい引っかかるから
あっちではそこそこ知られてるネタなんだと思うけど
出所はわからなかった
あっちではそこそこ知られてるネタなんだと思うけど
出所はわからなかった
2009/01/10(土) 02:04:24
2009/01/10(土) 07:15:46
++[>++[>++>++<<-]<-]
を食わせてみたら本来 00 00 08 08 となるべきところ
なにもでなかった
2009/01/10(土) 18:00:58
>>+++++[-<++++++>]<+[-<++>]<.>+++[-<------>]<-.........>++++++[-<++++++++>]<
.>>+++++++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------...........
.>+++[-<++++++>]<+.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------
--.+++.-........+.---...........>+++++++++++[-<--->]<.>+++++++++++[-<+++>]<.
...+++.++++++++++++++++.>+++[-<------>]<-...>++++++[-<++++++++>]<.>>++++++++
+++[-<++>]<+[-<-->]<.+++++++++++++++.---------------......+++++++++++++++++.
>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------.+.++++++++++++++++
.>+++[-<------>]<-.............>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[
-<-->]<.+++++++++++++++.---------------.....+++++++++++++++++.>+++++[-<+++++
+>]<+.>+++++++++++[-<--->]<.--------------.++++++++++++++++.>+++++++++++++[-
<---->]<.>+++++++++++[-<+++>]<.................>++++++[-<++++++++>]<.>>+++++
++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------..>+++[-<++++++>]<+
.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--------------.---....+++.+++++++
+++++++++.>+++[-<------>]<-..........>++++++[-<++++++++>]<.>>+++++++++++[-<+
+>]<+[-<-->]<.+++++++++++++++.---------------.....>+++++++[-<----->]<.>+++++
++[-<+++++>]<.+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--
------------.>++++++[-<------>]<.
http://lowreal.net/logs/2006/09/04/3
.>>+++++++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------...........
.>+++[-<++++++>]<+.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------
--.+++.-........+.---...........>+++++++++++[-<--->]<.>+++++++++++[-<+++>]<.
...+++.++++++++++++++++.>+++[-<------>]<-...>++++++[-<++++++++>]<.>>++++++++
+++[-<++>]<+[-<-->]<.+++++++++++++++.---------------......+++++++++++++++++.
>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------.+.++++++++++++++++
.>+++[-<------>]<-.............>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[
-<-->]<.+++++++++++++++.---------------.....+++++++++++++++++.>+++++[-<+++++
+>]<+.>+++++++++++[-<--->]<.--------------.++++++++++++++++.>+++++++++++++[-
<---->]<.>+++++++++++[-<+++>]<.................>++++++[-<++++++++>]<.>>+++++
++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------..>+++[-<++++++>]<+
.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--------------.---....+++.+++++++
+++++++++.>+++[-<------>]<-..........>++++++[-<++++++++>]<.>>+++++++++++[-<+
+>]<+[-<-->]<.+++++++++++++++.---------------.....>+++++++[-<----->]<.>+++++
++[-<+++++>]<.+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--
------------.>++++++[-<------>]<.
http://lowreal.net/logs/2006/09/04/3
2009/01/10(土) 18:11:22
>++++[<++++++++>-] // 0 pm2 = ' '
>+++++++[<++++++++>-]<+>+++++++++> // 1 pm1 = '9' p0 = 9
>++++++++++[<++++++++++>-]<-- // 1 p1= 98 p2 = 0
[ >[-]<[->+>+<<]>>[-<<+>>]<- // 2 p2 = p1 m 1
[ >[-]<<[->>+>+<<<]>>>[-<<<+>>>]<+ // 3 p3 = p1 p 1 p4 = 0
[ >>[-]>[-]<<[>+>+<<-]>>[<<+>>-]< // 5 p5 = p4 p6 = 0
>[-]+<[>-<[-]]>[-< // 5 if (p5 == 0) then
<<<[->>+>>+<<<<]>>>>[-<<<<+>>>>]<<+> // 5 p4 = p2 p 1
>]<
<- // 4 p4 m= 1
<- ] // 3 p3 m= 1
> >[-]+<[[-]>-< ]>[-< // 4 if (p4 == 0) then
>>[-]+<< // 4 p6 = 1
<<[-]+>> // 4 p2 = 1
>]<
<<- ] // 2 p2 m= 1
>>>> >[-]+<[[-]>-< ]>[-< // 6 if (p6 == 0) then
<<<<<<<.> // 0 print pm1
>>[-]++++++[<<++++++++>>-] // 2 p2 = 0 p0 p= 48
<<.>> // 2 print p0
++++++[<<-------->>-] // 2 p2 = 0 p0 m= 48
<<<<.>>>>>>>> // 6 print pm2
>]<
<<<<<- // 1 p1 m= 1
>>[-]<<<[->>+>+<<<]>>>[-<<<+>>>]< // 2 p2 = p0 p3 = 0
>+<[[-]>-< // 2 if (p2 == 0) then
<<->> // 2 p0 m= 1
]>[-< // 2 else
<<+++++++++ // 0 p0 p= 9
<->>> // 2 pm1 m= 1
>]<
< ] // 1 http://labs.cybozu.co.jp/blog/kazuho/archives/2006/06/bf_prime.php
>+++++++[<++++++++>-]<+>+++++++++> // 1 pm1 = '9' p0 = 9
>++++++++++[<++++++++++>-]<-- // 1 p1= 98 p2 = 0
[ >[-]<[->+>+<<]>>[-<<+>>]<- // 2 p2 = p1 m 1
[ >[-]<<[->>+>+<<<]>>>[-<<<+>>>]<+ // 3 p3 = p1 p 1 p4 = 0
[ >>[-]>[-]<<[>+>+<<-]>>[<<+>>-]< // 5 p5 = p4 p6 = 0
>[-]+<[>-<[-]]>[-< // 5 if (p5 == 0) then
<<<[->>+>>+<<<<]>>>>[-<<<<+>>>>]<<+> // 5 p4 = p2 p 1
>]<
<- // 4 p4 m= 1
<- ] // 3 p3 m= 1
> >[-]+<[[-]>-< ]>[-< // 4 if (p4 == 0) then
>>[-]+<< // 4 p6 = 1
<<[-]+>> // 4 p2 = 1
>]<
<<- ] // 2 p2 m= 1
>>>> >[-]+<[[-]>-< ]>[-< // 6 if (p6 == 0) then
<<<<<<<.> // 0 print pm1
>>[-]++++++[<<++++++++>>-] // 2 p2 = 0 p0 p= 48
<<.>> // 2 print p0
++++++[<<-------->>-] // 2 p2 = 0 p0 m= 48
<<<<.>>>>>>>> // 6 print pm2
>]<
<<<<<- // 1 p1 m= 1
>>[-]<<<[->>+>+<<<]>>>[-<<<+>>>]< // 2 p2 = p0 p3 = 0
>+<[[-]>-< // 2 if (p2 == 0) then
<<->> // 2 p0 m= 1
]>[-< // 2 else
<<+++++++++ // 0 p0 p= 9
<->>> // 2 pm1 m= 1
>]<
< ] // 1 http://labs.cybozu.co.jp/blog/kazuho/archives/2006/06/bf_prime.php
2009/01/10(土) 18:18:46
>>59
>+++++++++[-<++++++++++++>]<+.--------.+++++++++++
++++.>+++[-<------>]<-.>+++++++++++++[-<----->]<.>
+++++++++++++++++[-<++>]<.++++.>++++++++++[-<-----
->]<.
>+++++++++[-<++++++++++++>]<+.--------.+++++++++++
++++.>+++[-<------>]<-.>+++++++++++++[-<----->]<.>
+++++++++++++++++[-<++>]<.++++.>++++++++++[-<-----
->]<.
2009/01/10(土) 18:24:30
>++++[<++++++++>-]>++++++++[<++++++>-]<++.<.> +.<.> ++.<.> ++.<.> >++ [<--->-]
<..<.> .++.<.> --.>++ [<+++>-]<.<.> >++ [<--->-]<.>++[<++++>-]<.<.> >++[<--->-]
<-.+.<.> -.>+++[<++>-]<+.<.> >++ [<--->-]<.--.<.> ++.++++.<.> ---.---.<.> +++.
-.<.> +.+++.<.> --.--.<.> ++.++++.<.> ---.-----.<.> +++++.+.<.> .>++ [<--->-]
<.<.> >++ [<+++>-]<.----.<.> ++++.++.<.> -.-----.<.> +++++.+.<.> .--.
http://labs.cybozu.co.jp/blog/takesako/2006/06/bpencode.html
<..<.> .++.<.> --.>++ [<+++>-]<.<.> >++ [<--->-]<.>++[<++++>-]<.<.> >++[<--->-]
<-.+.<.> -.>+++[<++>-]<+.<.> >++ [<--->-]<.--.<.> ++.++++.<.> ---.---.<.> +++.
-.<.> +.+++.<.> --.--.<.> ++.++++.<.> ---.-----.<.> +++++.+.<.> .>++ [<--->-]
<.<.> >++ [<+++>-]<.----.<.> ++++.++.<.> -.-----.<.> +++++.+.<.> .--.
http://labs.cybozu.co.jp/blog/takesako/2006/06/bpencode.html
2009/01/10(土) 19:00:44
>++++[<++++++++>-]>+++++++[<++++++++>-]<+>+++++++++>>++++++++++[<++++++++++>-]
<--[>[-]<[->+>+<<]>>[-<<+>>]<-[>[-]<<[->>+>+<<<]>>>[-<<<+>>>]<+[>>[-]>[-]
<<[>+>+<<-]>>[<<+>>-]<>[-]+<[>-<[-]]>[-<<<<[->>+>>+<<<<]>>>>[-<<<<+>>>>]<<+>>]
<<-<-]> >[-]+<[[-]>-< ]>[-<>>[-]+<<<<[-]+>>>]<<<-]>>>> >[-]+<[[-]>-< ]
>[-<<<<<<<<.>>>[-]++++++[<<++++++++>>-]<<.>>++++++[<<-------->>-]
<<<<.>>>>>>>>>]<<<<<<->>[-]<<<[->>+>+<<<]>>>[-<<<+>>>]<>+<[[-]>-<<<->>]
>[-<<<+++++++++<->>>>]<<]
<--[>[-]<[->+>+<<]>>[-<<+>>]<-[>[-]<<[->>+>+<<<]>>>[-<<<+>>>]<+[>>[-]>[-]
<<[>+>+<<-]>>[<<+>>-]<>[-]+<[>-<[-]]>[-<<<<[->>+>>+<<<<]>>>>[-<<<<+>>>>]<<+>>]
<<-<-]> >[-]+<[[-]>-< ]>[-<>>[-]+<<<<[-]+>>>]<<<-]>>>> >[-]+<[[-]>-< ]
>[-<<<<<<<<.>>>[-]++++++[<<++++++++>>-]<<.>>++++++[<<-------->>-]
<<<<.>>>>>>>>>]<<<<<<->>[-]<<<[->>+>+<<<]>>>[-<<<+>>>]<>+<[[-]>-<<<->>]
>[-<<<+++++++++<->>>>]<<]
2009/01/10(土) 23:43:54
お、なんか賑わってるねぇ。
前DAT、前々DAT誰か持ってたら
保管庫でもつくっとくかな
前DAT、前々DAT誰か持ってたら
保管庫でもつくっとくかな
2009/01/10(土) 23:51:28
これでいいのか
ttp://ranobe.com/up/src/up330615.zip
ttp://ranobe.com/up/src/up330615.zip
2009/01/10(土) 23:56:34
+[<++>-]
と
+[-<++>]
は意味的には同じですか?
と
+[-<++>]
は意味的には同じですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 [お断り★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★3 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★4 [少考さん★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 [少考さん★]
- 【芸能】粗品 「間違ったお笑いの常識が放送されている」「テレビ見てる素人って、笑い声でしか面白いかどうか判断できない。可哀想」 [冬月記者★]
- 他サポ2025-302
- 【NJPW】新日本プロレスワールド part.2431
- 阪神競馬5回4日目 阪神JF
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★1
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★2
- 中山競馬5回4日目その2カペラエス
- 【悲報】中学の頃ワイ彡(゚)(゚)、『ひぐらし』のキャラに恋をして無事死亡wwwwwww🏡
- 【悲報】ココナッツサブレ、なぜか売り切れ続出する🤔 [733893279]
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- あ、出ちゃう、イクッ😫💦🏡
- ( ・᷄ὢ・᷅ )デカいんで
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★6
