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
+[<++>-]
と
+[-<++>]
は意味的には同じですか?
と
+[-<++>]
は意味的には同じですか?
2009/01/11(日) 00:54:03
2009/01/11(日) 00:56:49
受け取れたようなので消しといた。
2009/01/11(日) 14:01:36
>>66
一緒じゃね
一緒じゃね
2009/01/14(水) 10:04:19
ז
71デフォルトの名無しさん
2009/01/14(水) 13:24:37 ++++[>++++[>+++++>++++>+++++>+++++<<<<-]<-]>>-----.>+.>+++.>-.
2009/01/14(水) 21:45:10
2048コア位のBFCPUまだー?
2009/01/14(水) 22:03:43
.NET用のアセンブリにするコンパイラ書いてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8636.txt
世の中には既に同じようなものがあるみたいだけど気にしない
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8636.txt
世の中には既に同じようなものがあるみたいだけど気にしない
2009/01/15(木) 15:22:25
BFで書かれてるのかとワクワクしちゃったじゃないか…
2009/01/21(水) 16:59:37
置換ネタで、いいなぁって思うのは
ソース見ても一見、大した意味のない文章に見える所だと思う。
だからやたら出回ってる置換ネタの九割は意味なし。
その点長門は秀逸
ソース見ても一見、大した意味のない文章に見える所だと思う。
だからやたら出回ってる置換ネタの九割は意味なし。
その点長門は秀逸
2009/01/21(水) 17:55:47
2009/01/21(水) 19:47:05
misaじゃね?
2009/02/10(火) 15:00:45
みさみさ?
2009/02/15(日) 03:35:54
ttp://thumb.vipper.org/vfile/vip1110508.jpg
2009/02/15(日) 11:41:04
抜いた
2009/02/15(日) 13:34:23
魂が?w
2009/02/15(日) 14:31:34
>>79
++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
2009/03/15(日) 02:48:14
sage
2009/03/15(日) 14:53:08
age
2009/03/21(土) 19:00:51
sagi
2009/03/23(月) 17:43:14
いい加減飽きただろうがどうしても置換ネタ
> → r(right)
< → l(left)
+ → p(plus)
- → m(minus)
[ → s(start)
] → e(end)
. → o(output)
, → i(input)
BFの命令を上の表で対応する英字から始まる任意の英単語に置換して英文を作る。解釈の際に、記号や表で対応関係に無い英字から始まる英単語は無視される。
例) pineapple → +
例) She must go east. → [-]
Hello, world!↓
> → r(right)
< → l(left)
+ → p(plus)
- → m(minus)
[ → s(start)
] → e(end)
. → o(output)
, → i(input)
BFの命令を上の表で対応する英字から始まる任意の英単語に置換して英文を作る。解釈の際に、記号や表で対応関係に無い英字から始まる英単語は無視される。
例) pineapple → +
例) She must go east. → [-]
Hello, world!↓
2009/03/23(月) 20:55:06
普通に「読めない文字はスルーする」という従来通りの挙動でいいのでは
2009/03/23(月) 22:18:12
無駄に英文が長くなる 却下
2009/03/23(月) 22:19:31
88は86に対するレスね >>87でいいと思う
2009/03/23(月) 23:14:10
なんとか意味の通じる英文を・・・と考えての仕様だろうが
残念ながら君には50音版を作ってもらう
残念ながら君には50音版を作ってもらう
2009/03/24(火) 00:31:18
+ → E
- → A
> → T
< → I
[ → S
] → N
. → R
, → U
2009/03/24(火) 18:17:48
>>91
-<[<>+.,
-<[<>+.,
2009/03/24(火) 19:15:54
>>92
[<+][,.,
[<+][,.,
2009/03/26(木) 21:34:05
+ → いろはにほへと
- → ちりぬるを
> → わかよたれそ
< → つねならむ
[ → うゐのおくやま
] → けふこえて
. → あさきゆめみし
, → ゑひもせす
濁音・半濁音・小文字は清音と一緒
「ん」はスルー
- → ちりぬるを
> → わかよたれそ
< → つねならむ
[ → うゐのおくやま
] → けふこえて
. → あさきゆめみし
, → ゑひもせす
濁音・半濁音・小文字は清音と一緒
「ん」はスルー
2009/03/27(金) 04:37:11
ルール考えるのはいいけど、
それで自分でプログラム書いてみろってばさ。
それで自分でプログラム書いてみろってばさ。
2009/03/28(土) 15:17:10
Urban Muellerさんに言ってるんだな
2009/03/30(月) 23:42:15
もう痴漢ネタは秋田
2009/04/10(金) 11:23:47
ほしゅ
2009/04/16(木) 22:58:24
ほしゅう
100デフォルトの名無しさん
2009/04/25(土) 15:59:46 ごしゅう
101デフォルトの名無しさん
2009/05/08(金) 00:39:19 じ
102デフォルトの名無しさん
2009/05/15(金) 21:03:39 +
103デフォルトの名無しさん
2009/05/17(日) 20:47:00 []
104デフォルトの名無しさん
2009/05/17(日) 23:05:24 > > > > > >
105デフォルトの名無しさん
2009/06/04(木) 21:57:56 無ネタ
106デフォルトの名無しさん
2009/06/13(土) 16:24:34 +++[>+++<-]>[>+>+<<-]>->>++++++++++[<++++++++++>-]<------------.++++++<.>.<.>--.++<.>
107デフォルトの名無しさん
2009/06/20(土) 16:17:42 ]
108デフォルトの名無しさん
2009/06/22(月) 01:30:36 、
109デフォルトの名無しさん
2009/08/02(日) 21:49:41_.。ャぁて丕刀フ7ゎ。._
,.ィ炙ヲi≠┴⇒弍j込ス>。
. ,ィ升ヲナ'´ `゙'<弖心、
. ;夕フア´ \ホi心.
んfiУ ▽ij∧
从j'Y ∨iハ
. 斤W kい
|友カ }ソ川
. い叭 仄ガ
. Wi从 从ノリ
. ∀t△ ∧fリ/
゙マじへ、 /リiУ
\夊id、_ ,.イ!刋/
`マ才i「≧ェ。。.。。っ夭テ少'゚
`゚'' ミ芝玉竺壬云=‐'´
 ̄ ̄
110デフォルトの名無しさん
2009/08/03(月) 22:46:35 一応BFとして動くな
111デフォルトの名無しさん
2009/08/03(月) 23:31:46 [と]の個数があってればなんでも一応動くだろ
112デフォルトの名無しさん
2009/08/03(月) 23:52:00 個数が合っててもネスト構造がおかしかったら処理系によっては動かないだろ
113デフォルトの名無しさん
2009/08/04(火) 00:49:19 あー言い間違えた。そうそうそういうことが言いたかった
114デフォルトの名無しさん
2009/08/04(火) 16:49:05 というかム板じゃない他スレにも貼ってあったから無視したが
これはコードだったのか
これはコードだったのか
115デフォルトの名無しさん
2009/08/04(火) 17:49:22 BFコードとして解釈できないレスの方が珍しい
116デフォルトの名無しさん
2009/08/04(火) 19:41:55 処理系によっては動くおかしなネスト構造ってどういうやつ?
117デフォルトの名無しさん
2009/08/04(火) 21:46:45 [ ] ] [ [ ]
とかじゃね
処理系によっては過剰の ] をプログラムの終了と解釈するとかもあるので
そのような処理系の場合は正常に終了する
とかじゃね
処理系によっては過剰の ] をプログラムの終了と解釈するとかもあるので
そのような処理系の場合は正常に終了する
118デフォルトの名無しさん
2009/08/04(火) 21:47:47 ん、ちょっと言い間違えた
終了するかはともかく、正常に実行される
終了するかはともかく、正常に実行される
119デフォルトの名無しさん
2009/08/18(火) 21:46:42 BrainFuckでライブラリを書けば、どんな言語、どんな環境にも極めて簡単にポーティング可能!
BrainFuckライブラリを充実させることこそ我々の急務ではないだろうか!
BrainFuckライブラリを充実させることこそ我々の急務ではないだろうか!
120デフォルトの名無しさん
2009/08/18(火) 23:36:08 再入可能どころか再配置可能も怪しいぞ
121デフォルトの名無しさん
2009/08/20(木) 06:23:46122デフォルトの名無しさん
2009/08/25(火) 18:52:06 >>120
相対位置でできれば良いんじゃない?
相対位置でできれば良いんじゃない?
123デフォルトの名無しさん
2009/08/25(火) 23:08:59 まずは再入、再配置のライブラリを書いてみようか?
124デフォルトの名無しさん
2009/08/26(水) 02:46:50125デフォルトの名無しさん
2009/08/26(水) 11:09:01 中間言語→BFにコンパイルするコンパイラを作ればいいんじゃね
逆ポーランド記法な言語からのコンパイラならなんとかできるかな
逆ポーランド記法な言語からのコンパイラならなんとかできるかな
126デフォルトの名無しさん
2009/08/26(水) 11:30:45127デフォルトの名無しさん
2009/08/26(水) 22:42:52 どうせ有限なんだから時間さえあればいける
128デフォルトの名無しさん
2009/08/26(水) 23:31:10 ついでにBrainFuckを逆アセンブル?してCソースにするコンパイラもよろしく。
129デフォルトの名無しさん
2009/08/26(水) 23:43:45 それは最適化しなくていいなら簡単
130デフォルトの名無しさん
2009/08/27(木) 00:02:29 もちろん可能な限り元のコードの意味を推測して、それらしいコードを復元してほしい。
131デフォルトの名無しさん
2009/08/27(木) 00:22:41 今JSでそういうの書いてる
132デフォルトの名無しさん
2009/08/27(木) 17:47:54 期待
133デフォルトの名無しさん
2009/08/27(木) 19:07:31 がんばってくれ
134デフォルトの名無しさん
2009/08/27(木) 23:43:54 前スレより
http://www.clifford.at/bfcpu/bfcomp.html
A compiler for a c-like high-level language which generates brainf*ck code
http://www.clifford.at/bfcpu/bfcomp.html
A compiler for a c-like high-level language which generates brainf*ck code
135デフォルトの名無しさん
2009/08/29(土) 21:39:59 まだか?
2009/08/30(日) 08:20:26
>>128
guy shirts
guy shirts
137デフォルトの名無しさん
2009/08/31(月) 23:10:26 >134
linuxか・・・
linuxか・・・
138デフォルトの名無しさん
2009/09/01(火) 23:56:37 BrainFuckでビジービーバーゲームをやるのも面白いかもしれない。
http://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%BC%E3%83%93%E3%83%BC%E3%83%90%E3%83%BC
ここでやるのはスレチかな?
http://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%BC%E3%83%93%E3%83%BC%E3%83%90%E3%83%BC
ここでやるのはスレチかな?
139デフォルトの名無しさん
2009/09/02(水) 07:09:25140デフォルトの名無しさん
2009/09/02(水) 07:31:28 >>139
それはチューリングマシンの説明で、ビジービーバーゲームとは違う。ビジービーバーの要点は
>停止するまでにテープに 1 を最も多く出力するような n-状態チューリングマシンを見つけ出そう、というゲーム
だよ。
それはチューリングマシンの説明で、ビジービーバーゲームとは違う。ビジービーバーの要点は
>停止するまでにテープに 1 を最も多く出力するような n-状態チューリングマシンを見つけ出そう、というゲーム
だよ。
141デフォルトの名無しさん
2009/09/02(水) 07:43:26142デフォルトの名無しさん
2009/09/02(水) 07:56:56 ビジービーバーゲームの説明はそれでおk。
普通はチューリングマシンでやるところをBrainFuckでやってみようと。
普通はチューリングマシンでやるところをBrainFuckでやってみようと。
143デフォルトの名無しさん
2009/09/02(水) 08:03:58 まず遷移関数をどうやって
BFプログラムに変換するかが問題だな
BFプログラムに変換するかが問題だな
144デフォルトの名無しさん
2009/09/02(水) 17:55:03 状態数は、BFでいえばコードのバイト数と似たようなもんだよ。
だから、
同じバイト数のBFコードで、
より大きな10進数を標準出力に生成する
こんな競技になる。
だから、
同じバイト数のBFコードで、
より大きな10進数を標準出力に生成する
こんな競技になる。
145デフォルトの名無しさん
2009/09/02(水) 18:01:24 +[.]
じゃあかんの
じゃあかんの
146デフォルトの名無しさん
2009/09/02(水) 18:24:18147デフォルトの名無しさん
2009/09/02(水) 19:06:13 つまんないけど最強だろ
148デフォルトの名無しさん
2009/09/02(水) 19:10:37 ビジービーバーゲームでのプログラムは停止しなきゃいけないんだ。
じゃなきゃ比較なんて出来ないからな。
じゃなきゃ比較なんて出来ないからな。
149デフォルトの名無しさん
2009/09/02(水) 20:00:00 じゃこれ
[>+.]
ポインタがオーバーフローすれば止まる
[>+.]
ポインタがオーバーフローすれば止まる
150デフォルトの名無しさん
2009/09/02(水) 20:03:58151デフォルトの名無しさん
2009/09/02(水) 20:52:53152デフォルトの名無しさん
2009/09/02(水) 21:58:45 後出しルールうざい
153デフォルトの名無しさん
2009/09/02(水) 22:41:24 後出しルールって言うか>>138のリンク先に全部書いてあるのに読んでないのが悪いんだと思うんだが
154デフォルトの名無しさん
2009/09/02(水) 22:51:29 てか、一般的なBFの話をするなら無限長のテープじゃないとダメだろ
実装ではしょうがないかもしれないけどさ
実装ではしょうがないかもしれないけどさ
155デフォルトの名無しさん
2009/09/02(水) 22:56:09 テープの長さが有限だとチューリング完全にならない
156デフォルトの名無しさん
2009/09/02(水) 23:28:56 そうそう、実際の処理系じゃなくて理想の処理系で動かさないと。
157デフォルトの名無しさん
2009/09/02(水) 23:37:01 なあ、詳しい人教えてくれ。
ある100状態のチューリングマシンがあって、
そのチューリングマシンがΣ(100)ステップ後に停止したとする。
このチューリングマシンがΣ(100)ステップ後に停止することを証明しようとしたら、
その証明は少なくともΣ(100)文字程度のオーダーの長さになる。
これは正しい?
ある100状態のチューリングマシンがあって、
そのチューリングマシンがΣ(100)ステップ後に停止したとする。
このチューリングマシンがΣ(100)ステップ後に停止することを証明しようとしたら、
その証明は少なくともΣ(100)文字程度のオーダーの長さになる。
これは正しい?
158デフォルトの名無しさん
2009/09/03(木) 03:57:09159デフォルトの名無しさん
2009/09/04(金) 22:47:53 ほ
160デフォルトの名無しさん
2009/09/06(日) 18:28:26 ho
161デフォルトの名無しさん
2009/09/08(火) 00:22:48 h
162デフォルトの名無しさん
2009/09/10(木) 07:01:39 ho
163デフォルトの名無しさん
2009/09/10(木) 15:59:52 ++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
164デフォルトの名無しさん
2009/09/10(木) 19:50:09 >>163
グロ注意
グロ注意
165デフォルトの名無しさん
2009/09/15(火) 22:01:45 ほ
166デフォルトの名無しさん
2009/09/18(金) 23:51:37 +[ほ+]
167デフォルトの名無しさん
2009/09/21(月) 19:44:06 ho
168デフォルトの名無しさん
2009/09/22(火) 07:00:44 俺的にBrainFuckの文法に最小限の拡張を加えて最大限パワーアップさせるには
どうしたらいいか考えてみた結果次のようになった。
まず、メモリはテープではなく無限の高さを持つ2分木のようなものを想定。
L ポインタを2分木メモリの左の子へ移動
R ポインタを2分木メモリの右の子へ移動
U ポインタを2分木メモリの親へ移動
+ BFと同様
- BFと同様
. BFと同様
, BFと同様
[ BFと同様
] BFと同様
まあ、大体BFでlispのconsセルが使えるようなイメージ。
どうしたらいいか考えてみた結果次のようになった。
まず、メモリはテープではなく無限の高さを持つ2分木のようなものを想定。
L ポインタを2分木メモリの左の子へ移動
R ポインタを2分木メモリの右の子へ移動
U ポインタを2分木メモリの親へ移動
+ BFと同様
- BFと同様
. BFと同様
, BFと同様
[ BFと同様
] BFと同様
まあ、大体BFでlispのconsセルが使えるようなイメージ。
169デフォルトの名無しさん
2009/09/22(火) 14:13:50 そんなもん普通のBFの範囲でできるがな
170デフォルトの名無しさん
2009/09/22(火) 14:17:53 BFはチューリング完全だから
変わらないぞ
変わらないぞ
171デフォルトの名無しさん
2009/09/22(火) 16:31:49 この拡張でコードが劇的に短くなる例が欲しいな
172デフォルトの名無しさん
2009/09/22(火) 17:20:27 んで、最終的にアセンブリやCになる・・・と
拡張=BFの死なんだよな
過去ログの通り、拡張行為すればするほどBFの簡潔さが失われていき
別にBFを使う理由がなくなる
拡張=BFの死なんだよな
過去ログの通り、拡張行為すればするほどBFの簡潔さが失われていき
別にBFを使う理由がなくなる
173デフォルトの名無しさん
2009/09/22(火) 18:50:58 うだうだ言ってないでインタプリタとコンパイラかけ
500バイト以内で書けたら合格にしてやる
500バイト以内で書けたら合格にしてやる
174デフォルトの名無しさん
2009/09/22(火) 20:51:37 既出じゃね?
175168
2009/09/22(火) 22:56:17 んが。既出なのか。ま、既出でも全然不思議ではないけど。
一応このスレの中はチェックしたつもりだったけど
前スレはチェックしてないんだよね。
>>168のプログラム言語をBTBF(BinaryTree BrainFuck)と呼ぶとして、
BTBFのコードをBFのコードに変換するトランスレータを実装しろってのは
学生向け演習問題として良問じゃね?
一応このスレの中はチェックしたつもりだったけど
前スレはチェックしてないんだよね。
>>168のプログラム言語をBTBF(BinaryTree BrainFuck)と呼ぶとして、
BTBFのコードをBFのコードに変換するトランスレータを実装しろってのは
学生向け演習問題として良問じゃね?
176デフォルトの名無しさん
2009/09/22(火) 22:59:16 >175
まだ出てなかったぞ
まだ出てなかったぞ
177デフォルトの名無しさん
2009/09/22(火) 23:06:44 コード短くする役に立つとすればこんなのかなぁ
まあいらないけど
x 直前のコマンドを*p回繰り返す
* p=*p
& *p=p
c 最も近い前方の[にジャンプ
b 最も近い後方の]にジャンプ
まあいらないけど
x 直前のコマンドを*p回繰り返す
* p=*p
& *p=p
c 最も近い前方の[にジャンプ
b 最も近い後方の]にジャンプ
178168
2009/09/22(火) 23:42:17 >>172
俺は拡張=BFの死とは思ってないんだよね。
シンプルさがBFの価値なのは同意だけど、
もっともシンプルなチューリング完全言語BFと
Cやlispといった高級言語の生産性の溝がどれだけあるかってのを
把握できるのもBFの存在価値だと思う。
だから「BF+α=lisp」のαの部分がどれだけあるのか、俺は興味があるです。
#どっちもチューリング完全だから等価って乱暴な議論はなしね。
俺は拡張=BFの死とは思ってないんだよね。
シンプルさがBFの価値なのは同意だけど、
もっともシンプルなチューリング完全言語BFと
Cやlispといった高級言語の生産性の溝がどれだけあるかってのを
把握できるのもBFの存在価値だと思う。
だから「BF+α=lisp」のαの部分がどれだけあるのか、俺は興味があるです。
#どっちもチューリング完全だから等価って乱暴な議論はなしね。
179デフォルトの名無しさん
2009/09/23(水) 00:05:02 純lispはBFと同じくらいシンプルだけど考え方が全然違うから
そんな+α的な物はない
そんな+α的な物はない
180168
2009/09/23(水) 00:08:29 ないわけはない。
チューリング完全的に考えて。
極端な話、理屈の上ではBFでlispインタプリタは書けることになっている。
それがどれくらい大変か?と言う問題はある。
lispでBFインタプリタを書くのは簡単だけど、
BFでlispインタプリタを書くのはきつそう。
チューリング完全的に考えて。
極端な話、理屈の上ではBFでlispインタプリタは書けることになっている。
それがどれくらい大変か?と言う問題はある。
lispでBFインタプリタを書くのは簡単だけど、
BFでlispインタプリタを書くのはきつそう。
181デフォルトの名無しさん
2009/09/23(水) 00:17:40 lispからbfに変換するプログラムは作れるんじゃないか?
182デフォルトの名無しさん
2009/09/23(水) 03:42:27 LISPでBFのインタプリタが簡単ねえ
真面目にシンボルをASCIIのチャーチ数表現で取り扱えば同じかそれ以上に大変だと思うけどな
真面目にシンボルをASCIIのチャーチ数表現で取り扱えば同じかそれ以上に大変だと思うけどな
183デフォルトの名無しさん
2009/09/23(水) 08:18:23 pure LISPだとBFよりもプログラム書くの難易度高いだろJK
184168
2009/09/23(水) 08:33:05 よくみたら純lispって書いてあるな。
てっきりclispのつもりで話してた。
てっきりclispのつもりで話してた。
185デフォルトの名無しさん
2009/09/23(水) 09:12:38 >>168
便利かどうか試しに実装してみようと思ったら疑問がいくつか。
・2分木メモリは値を持つの?持たないとしたらポインタがconsを指しているとき
入出力命令は何をすべき?
・+-で指すリニアなメモリとLRUで指す2分木メモリの空間はまったく別のもの?
ていうか+-廃止すべき?
自分的にはノーアイデアなんだけど、BFくらい最小のLispができそうですごく面白そうだとは思う。
便利かどうか試しに実装してみようと思ったら疑問がいくつか。
・2分木メモリは値を持つの?持たないとしたらポインタがconsを指しているとき
入出力命令は何をすべき?
・+-で指すリニアなメモリとLRUで指す2分木メモリの空間はまったく別のもの?
ていうか+-廃止すべき?
自分的にはノーアイデアなんだけど、BFくらい最小のLispができそうですごく面白そうだとは思う。
186168
2009/09/23(水) 10:30:02 メモリは値を持ちます。
後は通常のBFと同じ。
後は通常のBFと同じ。
187デフォルトの名無しさん
2009/09/23(水) 10:47:01 まずはhello worldから始めろ
プログラミング言語として使えないなら机上の空論
プログラミング言語として使えないなら机上の空論
188デフォルトの名無しさん
2009/09/23(水) 10:49:15 この板ではチューリング完全という言葉がたまに登場するが、
もちろん、このスレで使ってる人たちも、意味とか前提とか
分かって使ってるよね?
もちろん、このスレで使ってる人たちも、意味とか前提とか
分かって使ってるよね?
189185
2009/09/23(水) 12:19:47 あ、<>と+-を勘違いしてた。<>の代わりにLRUということか。
190デフォルトの名無しさん
2009/09/23(水) 16:29:57 >>188
説明して
説明して
191デフォルトの名無しさん
2009/09/23(水) 16:43:51 入出力が便利になれば使い道はあると思うとかは考える
でも、それじゃ駄目なんだよな
BFとは別物として考えなきゃいけなくなる
でも、それじゃ駄目なんだよな
BFとは別物として考えなきゃいけなくなる
192デフォルトの名無しさん
2009/09/23(水) 16:53:57 システムコールは欲しいな
193デフォルトの名無しさん
2009/09/23(水) 19:48:01 BFってpure LISPほど純粋じゃないよな。
入出力命令なんてあるし。
ある意味入出力命令がシステムコールってことになるんじゃね。
入出力命令なんてあるし。
ある意味入出力命令がシステムコールってことになるんじゃね。
194デフォルトの名無しさん
2009/09/23(水) 19:51:53195デフォルトの名無しさん
2009/09/23(水) 21:26:57 BFのシンプルな体系を壊さずに拡張する方法としては
負の方向のメモリマッピングにコンソール(.,)以外の
I/Oを割り当てることかな
[-1]に数値をストアしておいて
[-2]の位置で+-すると[-1]の回数beepとか
[-3][-4]に数値をストアしておいて
[-5]の位置で+-すると[-3][-4]の座標の白黒が反転するとか
負の方向のメモリマッピングにコンソール(.,)以外の
I/Oを割り当てることかな
[-1]に数値をストアしておいて
[-2]の位置で+-すると[-1]の回数beepとか
[-3][-4]に数値をストアしておいて
[-5]の位置で+-すると[-3][-4]の座標の白黒が反転するとか
196デフォルトの名無しさん
2009/09/24(木) 01:22:24 入出力命令をin,outにすればいい
>+++++++++[-<++++++++++>]<++++++, //in 60h
>+++++++++[-<++++++++++>]<++++++, //in 60h
197185
2009/09/24(木) 02:13:09 >>168 の提案した奴を作ってみたけど、面白い使い方がなかなか見つからないなあ。
実際のリスト構造はともかくとして、いろいろ遊んでみると、メモリ空間がL-UとR-Uの
2次元になった、という印象。可能性はすごく感じるので、なんとかしたいのだが。
実際のリスト構造はともかくとして、いろいろ遊んでみると、メモリ空間がL-UとR-Uの
2次元になった、という印象。可能性はすごく感じるので、なんとかしたいのだが。
198168
2009/09/24(木) 05:53:17 消費メモリが定数なアルゴリズムだとBTBFの有り難味はないかもね。
実行中にバンバンnewするようなプログラムや複数の可変長配列を使うアルゴリズムが
いくらか書きやすくなるんじゃないかとは思ってる。
あと、関数コールの機構もBFで実装するのはきつくても
BTBFならもしかしたらBFよりずっと楽にいけんじゃね?
実行中にバンバンnewするようなプログラムや複数の可変長配列を使うアルゴリズムが
いくらか書きやすくなるんじゃないかとは思ってる。
あと、関数コールの機構もBFで実装するのはきつくても
BTBFならもしかしたらBFよりずっと楽にいけんじゃね?
199デフォルトの名無しさん
2009/09/24(木) 21:05:22 実装は既存のBF処理系に
L: p*=2;
R: p=p*2+1;
U: p/=2
を付け加えて、ptrの初期値を1に修正するだけだな
L: p*=2;
R: p=p*2+1;
U: p/=2
を付け加えて、ptrの初期値を1に修正するだけだな
200デフォルトの名無しさん
2009/09/27(日) 23:03:26 ところで、2分木を綺麗にグラフィカルに表示するライブラリって何かいいのある?
201デフォルトの名無しさん
2009/09/27(日) 23:20:15 BFスレでその話題を振るココロは?
202デフォルトの名無しさん
2009/09/27(日) 23:43:25203デフォルトの名無しさん
2009/09/27(日) 23:56:13 そもそもBFで書かれたライブラリなんて存在するのか?
204デフォルトの名無しさん
2009/09/27(日) 23:57:21 まずbfはライブラリを作ること自体困難だろ
205デフォルトの名無しさん
2009/09/28(月) 01:51:09 まずは整数の四則演算ライブラリからだな
ライブラリというかコードスニペットレベル?
ライブラリというかコードスニペットレベル?
206デフォルトの名無しさん
2009/09/28(月) 07:02:38 前スレであったみたいに
どこのメモリに数値を入れて
どこのメモリに答えが返ってくる
って感じにすると良いんじゃない?
どこのメモリに数値を入れて
どこのメモリに答えが返ってくる
って感じにすると良いんじゃない?
207デフォルトの名無しさん
2009/09/29(火) 02:17:13 call
208デフォルトの名無しさん
2009/09/29(火) 02:31:22 任意のシステムコールさえ呼べれば何とでもなる
敢えて関数呼び出し機構を命令に加える必要はない
敢えて関数呼び出し機構を命令に加える必要はない
209デフォルトの名無しさん
2009/09/29(火) 03:23:00 文字列やポインタを渡さなくちゃならないシステムコールはどうするんだ
210デフォルトの名無しさん
2009/09/29(火) 09:22:16 システムコールとシリアル通信すればいいよ
211デフォルトの名無しさん
2009/09/29(火) 10:00:05 VRAMの上で走るBFを、
標準入出力から他のBFプロセスで制御すればいいんじゃね…?
標準入出力から他のBFプロセスで制御すればいいんじゃね…?
212デフォルトの名無しさん
2009/09/29(火) 12:15:04 それをBFの機能と言えるかが問題だな
バイナリデータですらシステムコールが可能と言えてしまうぞ
バイナリデータですらシステムコールが可能と言えてしまうぞ
213デフォルトの名無しさん
2009/09/29(火) 18:41:29 BFのデータセグメントをVRAMに置けっ場解決するのか?
ダブるバッファリングは無理か
ダブるバッファリングは無理か
214デフォルトの名無しさん
2009/09/29(火) 19:54:18 もうbf用のOS作ったら?
215デフォルトの名無しさん
2009/09/29(火) 20:22:16 OSにBF向けのインターフェースがあればいいわけだな
0番地に+すると1番地の番号のシステムコールを2,3,4,...番地の値を引数にして呼び出すみたいな
0番地に+すると1番地の番号のシステムコールを2,3,4,...番地の値を引数にして呼び出すみたいな
216デフォルトの名無しさん
2009/09/29(火) 20:26:54 そうすればハードディスクとかメモリとかにアクセスできるな
解析とかも簡単になるんじゃない?
解析とかも簡単になるんじゃない?
217デフォルトの名無しさん
2009/09/29(火) 22:14:03 まずはリンカとローダだろ。
218デフォルトの名無しさん
2009/09/30(水) 02:09:42 コード空間とメモリ空間が分離されてるからリンカやロダは不要
219デフォルトの名無しさん
2009/11/11(水) 22:18:35 何で
220デフォルトの名無しさん
2009/11/19(木) 23:41:50 brainfuckって英語でどういう意味ですか?
221デフォルトの名無しさん
2009/11/20(金) 00:06:17 のーみそこねこね
222デフォルトの名無しさん
2009/12/03(木) 18:18:34 ___
/ \
/ ⌒ ⌒\
/ ,(⌒) (⌒)、\ ひとりSMセット買ったお
| /// (__人__)/// | 今夜は楽しむおww
\ ` ヽ_ノ /
ヽ , __ , イ
/ |_"____
| l.. /l SMグッズ l
ヽ 丶-.,/ |_________|
/`ー、_ノ / /
:: .|ミ|
:: .|ミ| ::::::::
::::: ____ |ミ| ::::
:: ,. -'"´ `¨ー 、 ::
:: / ,,.-'" ヽ ヽ、 ::
:: ,,.-'"_ r‐'" ,,.-'"` ヽ、 ::
:: / ヾ ( _,,.-='==-、ヽ ヽ、
:: i へ___ ヽゝ=-'"/ _,,> ヽ
:: ./ / > ='''"  ̄ ̄ ̄ ヽ
:: / .<_ ノ''" ヽ i
:: / i 人_ ノ .l
:: ,' ' ,_,,ノエエエェェ了 /
i じエ='='='" ', / ::
', (___,,..----U / ::
ヽ、 __,,.. --------------i-'" ::
ヽ、_ __ -_'"--''"ニニニニニニニニヽ ::
`¨i三彡--''"´ ヽ ::
/ ヽ :: ┼ヽ -|r‐、. レ |
/ ヽ:: d⌒) ./| _ノ __ノ
/ \
/ ⌒ ⌒\
/ ,(⌒) (⌒)、\ ひとりSMセット買ったお
| /// (__人__)/// | 今夜は楽しむおww
\ ` ヽ_ノ /
ヽ , __ , イ
/ |_"____
| l.. /l SMグッズ l
ヽ 丶-.,/ |_________|
/`ー、_ノ / /
:: .|ミ|
:: .|ミ| ::::::::
::::: ____ |ミ| ::::
:: ,. -'"´ `¨ー 、 ::
:: / ,,.-'" ヽ ヽ、 ::
:: ,,.-'"_ r‐'" ,,.-'"` ヽ、 ::
:: / ヾ ( _,,.-='==-、ヽ ヽ、
:: i へ___ ヽゝ=-'"/ _,,> ヽ
:: ./ / > ='''"  ̄ ̄ ̄ ヽ
:: / .<_ ノ''" ヽ i
:: / i 人_ ノ .l
:: ,' ' ,_,,ノエエエェェ了 /
i じエ='='='" ', / ::
', (___,,..----U / ::
ヽ、 __,,.. --------------i-'" ::
ヽ、_ __ -_'"--''"ニニニニニニニニヽ ::
`¨i三彡--''"´ ヽ ::
/ ヽ :: ┼ヽ -|r‐、. レ |
/ ヽ:: d⌒) ./| _ノ __ノ
223デフォルトの名無しさん
2009/12/03(木) 20:02:48 あるある
224デフォルトの名無しさん
2009/12/04(金) 05:07:08 perlでBrainfuckの処理系書いてみたんだが、
Brainfuckのプログラム書くより簡単でなんだか複雑な気分だ…
Brainfuckのプログラム書くより簡単でなんだか複雑な気分だ…
225デフォルトの名無しさん
2009/12/04(金) 22:07:52 次はBrainfuckでperlの…
226デフォルトの名無しさん
2009/12/04(金) 23:22:03 Brainfuckで日本語が扱えるようにはならないものか
227デフォルトの名無しさん
2009/12/04(金) 23:35:38 そーすに記述したいってんでもあるまいし、扱えないことはないだろう?
228デフォルトの名無しさん
2009/12/05(土) 00:08:59 ShiftJISなりUTF-8なりのバイト列を吐けばいいだけだよな
229デフォルトの名無しさん
2009/12/05(土) 09:33:31 例えば、
: で、ポインタの指している値とその次のポインタの値を2バイト文字として出力する。
; で、2バイト文字を入力して、ポインタの指している値とその次のポインタの値に代入する。
ってのはどうよ?
: で、ポインタの指している値とその次のポインタの値を2バイト文字として出力する。
; で、2バイト文字を入力して、ポインタの指している値とその次のポインタの値に代入する。
ってのはどうよ?
230デフォルトの名無しさん
2009/12/05(土) 11:01:11 .>.<と,>,<で十分じゃないか
231229
2009/12/05(土) 16:21:32 とりあえず実行してみた。
>++++++++++[<+++++++++++++>-]
+++[>+++++<-]>[<++++++++++++>-]<--->
>++++++++++[<+++++++++++++>-]
>++++[>++++<-]>[<+++[<+++++>-]>-]<<+>
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<+++++>
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<----->
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<+++++++++>
>++++++++++++[<++++++++++++>-]
>+++++++++++++[<+++++++++++++>-]<------->
>++++++++++++[<+++++++++++>-]<++++++>
>++++++++[<++++++++>-]<+++++>
>++++++++++[<+++++++++++++>-]<->
>++++++++[<+++++++++>-]<+
<<<<<<<<<<<<<<<
:>>:>>:>>:>>:>>:>>:>>:>>:
メモリに"こんにちは世界!"を表わす
82,B1,82,F1,81,C9,81,BF,82,CD,90,A2,8A,45,81,49
がメモリに積まれて、最後の方の":"命令で、Shift-JIS形式の文字が表示される。
作ってから思ったけど、これって既出?
>++++++++++[<+++++++++++++>-]
+++[>+++++<-]>[<++++++++++++>-]<--->
>++++++++++[<+++++++++++++>-]
>++++[>++++<-]>[<+++[<+++++>-]>-]<<+>
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<+++++>
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<----->
>++++++++++[<+++++++++++++>-]
>++++++++++++++[<++++++++++++++>-]<+++++++++>
>++++++++++++[<++++++++++++>-]
>+++++++++++++[<+++++++++++++>-]<------->
>++++++++++++[<+++++++++++>-]<++++++>
>++++++++[<++++++++>-]<+++++>
>++++++++++[<+++++++++++++>-]<->
>++++++++[<+++++++++>-]<+
<<<<<<<<<<<<<<<
:>>:>>:>>:>>:>>:>>:>>:>>:
メモリに"こんにちは世界!"を表わす
82,B1,82,F1,81,C9,81,BF,82,CD,90,A2,8A,45,81,49
がメモリに積まれて、最後の方の":"命令で、Shift-JIS形式の文字が表示される。
作ってから思ったけど、これって既出?
232デフォルトの名無しさん
2009/12/05(土) 17:03:48 うん。
233デフォルトの名無しさん
2009/12/05(土) 17:46:50234デフォルトの名無しさん
2009/12/05(土) 22:50:53 馬鹿だなぁ
:>
が顔に見えるってギャグだろどうせ
:>
が顔に見えるってギャグだろどうせ
235デフォルトの名無しさん
2009/12/06(日) 10:05:30 海外風な顔文字か。
[:<]<
[:<]<
236デフォルトの名無しさん
2009/12/06(日) 23:24:24 BFで : を .>.< に置き換えるBFプロプロセッサ書けばいいよ
237デフォルトの名無しさん
2009/12/08(火) 12:47:34 まだBFなんてやってんのかよだっせー
時代は純粋関数型言語Unlambdaだぜ
時代は純粋関数型言語Unlambdaだぜ
238デフォルトの名無しさん
2009/12/09(水) 03:11:58239デフォルトの名無しさん
2009/12/09(水) 18:02:48 bfユーザが理解できるようにトランスレータはbfで書こうぜ
240デフォルトの名無しさん
2009/12/22(火) 13:47:48 #defineしまくればCでも書けるかな
241デフォルトの名無しさん
2010/01/02(土) 17:42:21 esotope-bfcって凄いな
自分で作る気が失せる出来
自分で作る気が失せる出来
242デフォルトの名無しさん
2010/01/02(土) 17:58:44243デフォルトの名無しさん
2010/01/03(日) 00:13:20 まだまだだな
例示のプログラムのmやpはいらん
例示のプログラムのmやpはいらん
244デフォルトの名無しさん
2010/01/03(日) 08:07:28 そのへんは削除するようにする(した)って書いてるよ
245デフォルトの名無しさん
2010/01/09(土) 00:17:46 #include <stdio.h>
int main(int argc, char *argv[])
{
int c;
while ((c=getchar()) != EOF) {
while (c) {
putchar('+');
c--;
}
puts(".>");
}
}
int main(int argc, char *argv[])
{
int c;
while ((c=getchar()) != EOF) {
while (c) {
putchar('+');
c--;
}
puts(".>");
}
}
246デフォルトの名無しさん
2010/01/09(土) 02:25:08 俺にもHello Worldが作れた!
247245
2010/01/09(土) 19:43:17 修正
#include <stdio.h>
int main(int argc, char *argv[]){
int c,d;
int l = 0;
while ((c=getchar()) != EOF) {
d = c-l;
if (d>0) {
while (d--) {
putchar('+');
}
} else {
while (d++) {
putchar('-');
}
}
puts(".");
l = c;
}
}
#include <stdio.h>
int main(int argc, char *argv[]){
int c,d;
int l = 0;
while ((c=getchar()) != EOF) {
d = c-l;
if (d>0) {
while (d--) {
putchar('+');
}
} else {
while (d++) {
putchar('-');
}
}
puts(".");
l = c;
}
}
248デフォルトの名無しさん
2010/01/10(日) 04:01:44 最適化されたBFのソースを吐くなら、まだ修正する意味もあるかもしれないな。
249デフォルトの名無しさん
2010/01/15(金) 16:34:45 最小ブレインファック問題の計算複雑性ってどの程度?
250デフォルトの名無しさん
2010/01/16(土) 09:18:43251デフォルトの名無しさん
2010/01/16(土) 17:09:01 >>249
直感的には、NP完全
直感的には、NP完全
252デフォルトの名無しさん
2010/01/16(土) 20:19:33253デフォルトの名無しさん
2010/01/17(日) 12:19:05254253
2010/01/17(日) 12:23:29 いや、計算不可能かもしれない。ごめん。
無限ループかと思えるくらいに長い時間をかけて、最小BFとなるパターンと、単なる無限ループを区別するには
停止可能性の判定が必要になってくる。
無限ループかと思えるくらいに長い時間をかけて、最小BFとなるパターンと、単なる無限ループを区別するには
停止可能性の判定が必要になってくる。
255デフォルトの名無しさん
2010/01/17(日) 19:49:19 プログラムの等価性判定って計算不可能だよね?
だとすれば、最小BFが計算できればその最小BF同士の比較によって等価性判定ができちゃうので計算不可能だと思う。
だとすれば、最小BFが計算できればその最小BF同士の比較によって等価性判定ができちゃうので計算不可能だと思う。
256245
2010/01/20(水) 22:10:00 short bf_opt1(char *bfcode, char *optbfcode)
{
int prevcode;
int deletecode;
/*ここに最適化処理を書きます。*/
/*1 ムダなコードの取り除き*/
while (*bfcode) {
if (prevcode == '>' && *bfcode == '<') {
*bfcode = *(-1 +bfcode) = ' ';
deletecode = deletecode+2;
}
if (prevcode == '+' && *bfcode == '-') {
*bfcode = *(-1 +bfcode) = ' ';
deletecode = deletecode+2;
}
prevcode = *bfcode++;
}
strcpy(optbfcode, bfcode);
return deletecode = deletecode+2;
}
{
int prevcode;
int deletecode;
/*ここに最適化処理を書きます。*/
/*1 ムダなコードの取り除き*/
while (*bfcode) {
if (prevcode == '>' && *bfcode == '<') {
*bfcode = *(-1 +bfcode) = ' ';
deletecode = deletecode+2;
}
if (prevcode == '+' && *bfcode == '-') {
*bfcode = *(-1 +bfcode) = ' ';
deletecode = deletecode+2;
}
prevcode = *bfcode++;
}
strcpy(optbfcode, bfcode);
return deletecode = deletecode+2;
}
257デフォルトの名無しさん
2010/02/21(日) 14:34:22 ほ
258デフォルトの名無しさん
2010/02/21(日) 18:32:02 スーパーpre記法のシンタックス・ハイライトが Brainfuck, Clojureに対応しました - はてなダイアリー日記
http://d.hatena.ne.jp/hatenadiary/20100219/1266571864
http://d.hatena.ne.jp/hatenadiary/20100219/1266571864
259デフォルトの名無しさん
2010/02/22(月) 17:35:51 何やってんだw
260デフォルトの名無しさん
2010/02/27(土) 15:51:14 bfがインタプリタ作るのが簡単な言語とはよく言われていたが、
シンタックスハイライト作るのも簡単ってのは斜め上だなぁ。気づかなかった。
シンタックスハイライト作るのも簡単ってのは斜め上だなぁ。気づかなかった。
261デフォルトの名無しさん
2010/03/03(水) 16:39:55 プログラマーが仕事をサボっている兆候一覧
「Dvorakでもかなり早く打てるようになってきたぞ」
「念のためうちのサーバーでもGopherをサポートできるようにしときました」
「XHTML、HTML、さらにHAIKUにも準拠しています」
「brainfuckのシンタックスハイライトに対応しました」 ← new!
「Dvorakでもかなり早く打てるようになってきたぞ」
「念のためうちのサーバーでもGopherをサポートできるようにしときました」
「XHTML、HTML、さらにHAIKUにも準拠しています」
「brainfuckのシンタックスハイライトに対応しました」 ← new!
262デフォルトの名無しさん
2010/04/10(土) 11:57:14 +[+] //まだまだ終わらせないコード
263デフォルトの名無しさん
2010/04/14(水) 01:57:52 そのコードいずれオーバーフローして止まるぞ
264デフォルトの名無しさん
2010/04/14(水) 02:03:54 +[-+]
265デフォルトの名無しさん
2010/04/14(水) 09:13:58266デフォルトの名無しさん
2010/04/14(水) 16:52:59267デフォルトの名無しさん
2010/04/14(水) 17:08:11 今日じゃねえかwww
268デフォルトの名無しさん
2010/05/13(木) 00:26:54 一ヶ月前だ
269デフォルトの名無しさん
2010/05/13(木) 16:03:27 今となっては昔のことだが
270デフォルトの名無しさん
2010/05/19(水) 23:22:02 Brainfuckというものがあったそうな
271デフォルトの名無しさん
2010/05/20(木) 00:20:07 湯水のごとく記号を使い、小さなプログラムを組んではスレに納めていたそうな
272デフォルトの名無しさん
2010/05/24(月) 15:35:19 ttp://twitter.com/YewShmz/status/14212364028
273デフォルトの名無しさん
2010/05/29(土) 04:23:28 2日前からBrainfuckプログラミング初めた
ようやくHelloWorldできた
>>>++++++++++[<+<<+>>>-]<[<++++>>++++++>++++++++++<<-]+++++
+++++>>[<<+>>>>+<<-]++++[>+++++<-]>>[<+<+>>-]>+++++[<++++++
+>-]<.<<<<-----.+++++.>>-.<<--.>>>---.<+.+.>>---.<<<.>>--.+
.<-.+++++.<<+++.<++++++.>>>-.<++.<<<.>>>>+.<<-.>>>.>.<<<<-.
>>--------.<<----.+++++.<------.+.<.>>>>>+++++++.<<<<<.>>>>
>>....<<<<++.++.---------.+++++.>>>-------.<+++++.<<<-.----
--.>>>++.---.<<--..+++.>>>>.<+++.<<<.+++.------.>>-.>>+.-<<
--------.<<++.<.+++++++.>>---.<<<.>>>>>>....<<<<++++.>>++++
+++++.>---.+.<<<.----.>>>>.<<<<<+++++++.>>.<<<.>>>>>++++++++.
ようやくHelloWorldできた
>>>++++++++++[<+<<+>>>-]<[<++++>>++++++>++++++++++<<-]+++++
+++++>>[<<+>>>>+<<-]++++[>+++++<-]>>[<+<+>>-]>+++++[<++++++
+>-]<.<<<<-----.+++++.>>-.<<--.>>>---.<+.+.>>---.<<<.>>--.+
.<-.+++++.<<+++.<++++++.>>>-.<++.<<<.>>>>+.<<-.>>>.>.<<<<-.
>>--------.<<----.+++++.<------.+.<.>>>>>+++++++.<<<<<.>>>>
>>....<<<<++.++.---------.+++++.>>>-------.<+++++.<<<-.----
--.>>>++.---.<<--..+++.>>>>.<+++.<<<.+++.------.>>-.>>+.-<<
--------.<<++.<.+++++++.>>---.<<<.>>>>>>....<<<<++++.>>++++
+++++.>---.+.<<<.----.>>>>.<<<<<+++++++.>>.<<<.>>>>>++++++++.
274デフォルトの名無しさん
2010/05/29(土) 07:48:52 うわぁ・・・
いまどき文字列出力くらいは拡張命令でやるのが常識だぞ
いくらなんでも非効率的に過ぎる
#!/bin/bf
printf("HelloWorld\n")
いまどき文字列出力くらいは拡張命令でやるのが常識だぞ
いくらなんでも非効率的に過ぎる
#!/bin/bf
printf("HelloWorld\n")
275デフォルトの名無しさん
2010/05/29(土) 11:43:29276デフォルトの名無しさん
2010/05/29(土) 13:01:04 音は出ないの?
277デフォルトの名無しさん
2010/05/29(土) 16:20:38 任意のアドレスに割り当て
+-で操作して
.で鳴らす
とか考えたけどハードというか実装依存だね
+-で操作して
.で鳴らす
とか考えたけどハードというか実装依存だね
278デフォルトの名無しさん
2010/05/29(土) 16:24:55 出力したら音が鳴るインタプリタ作ってやろうかと思ったけど
よく考えたらそんな技術無かった。
よく考えたらそんな技術無かった。
279デフォルトの名無しさん
2010/05/29(土) 16:33:02 楽な方法なら
三角波でド〜↑のドまでの単音ファイルを用意して
数値によって再生
三角波でド〜↑のドまでの単音ファイルを用意して
数値によって再生
280デフォルトの名無しさん
2010/05/30(日) 03:33:27 出力からmidiを鳴らすインタプリタ半分完成した
音の長さや音色、テンポ、スケール、和音なんかを扱える仕様を考えてる
今日はもう寝るがな
音の長さや音色、テンポ、スケール、和音なんかを扱える仕様を考えてる
今日はもう寝るがな
281デフォルトの名無しさん
2010/05/30(日) 03:42:12 >>280
ソースきぼん
ソースきぼん
282デフォルトの名無しさん
2010/05/30(日) 03:53:02 >>281
javaだけど、思い出しつつ調べつつ書いた汚いソースだぞ
すぐには見せられんわ
文字コードを音階に対応させて再生してるだけだし
一応スクリーンショット
蛙の歌を再生中
http://www.dotup.org/uploda/www.dotup.org924517.png
javaだけど、思い出しつつ調べつつ書いた汚いソースだぞ
すぐには見せられんわ
文字コードを音階に対応させて再生してるだけだし
一応スクリーンショット
蛙の歌を再生中
http://www.dotup.org/uploda/www.dotup.org924517.png
283282
2010/05/30(日) 20:14:49 とりあえず動くものが出来ました!
中のtxtをソフトの左の欄にはっつけてrunしてみて下さい!
XPなら動くと思います。
midi音源にMicrosoft GS Wavetable SW Synthを使用してます。
http://www.dotup.org/uploda/www.dotup.org925971.zip
あ、もちろん実行は自己責任で。
中のtxtをソフトの左の欄にはっつけてrunしてみて下さい!
XPなら動くと思います。
midi音源にMicrosoft GS Wavetable SW Synthを使用してます。
http://www.dotup.org/uploda/www.dotup.org925971.zip
あ、もちろん実行は自己責任で。
284282
2010/05/30(日) 22:07:16 反応無いけどバージョンアップだよ\(^o^)/
命令の数を4096個まで実行可能にしたよ。
スペランカーフルだよ。
http://www.dotup.org/uploda/www.dotup.org926263.zip
命令の数を4096個まで実行可能にしたよ。
スペランカーフルだよ。
http://www.dotup.org/uploda/www.dotup.org926263.zip
285デフォルトの名無しさん
2010/05/31(月) 01:46:40 あなたは神様ですか?
286デフォルトの名無しさん
2010/05/31(月) 03:05:01 とんでもねえ、あたしゃ神様だよ
287デフォルトの名無しさん
2010/05/31(月) 12:48:23 win7だと何も起きないのね
ちなみにwindowCloseイベントくらい処理してほしかったなぁ
ちなみにwindowCloseイベントくらい処理してほしかったなぁ
288282
2010/05/31(月) 12:52:12289282
2010/05/31(月) 17:58:07 一応(遅いですが)仕様を連ねておこうと思います。
■インターフェイス編
・画面左欄がソース、右欄がアウトプット
・runすると同時にsetされます
set状態ではソースの変更は出来ません
set/unsetボタンで解除できます
・下の欄がインプットです
','でインプット欄の文字が1文字読み込まれます
・stepボタン右のlabelにはプログラムカウンタが表示されます(正直あまり意味ない)
・アウトプット欄には通常のbrainfuckで出力される文字のみが表示されます
■MIDI編
・MIDI出力には標準で"Microsoft GS Wavetable SW Synth"を使用しています
一応、引数により任意のデバイスを使えます 例 brainmidi.jar "Java Sound Synthesizer"
起動時にSystem.out.printでコンピュータ内のデバイス名をコンソールに列記してますが、私はjar実行ファイルでのコンソール出力を知るすべを知りません\(^o^)/
・デバイスのオープンに失敗してもエラーはでません
・文字コードどmidi出力の対応表です
33〜123 : 音を出す
1 + 引数 : テンポを引数に設定
動作報告がない
■インターフェイス編
・画面左欄がソース、右欄がアウトプット
・runすると同時にsetされます
set状態ではソースの変更は出来ません
set/unsetボタンで解除できます
・下の欄がインプットです
','でインプット欄の文字が1文字読み込まれます
・stepボタン右のlabelにはプログラムカウンタが表示されます(正直あまり意味ない)
・アウトプット欄には通常のbrainfuckで出力される文字のみが表示されます
■MIDI編
・MIDI出力には標準で"Microsoft GS Wavetable SW Synth"を使用しています
一応、引数により任意のデバイスを使えます 例 brainmidi.jar "Java Sound Synthesizer"
起動時にSystem.out.printでコンピュータ内のデバイス名をコンソールに列記してますが、私はjar実行ファイルでのコンソール出力を知るすべを知りません\(^o^)/
・デバイスのオープンに失敗してもエラーはでません
・文字コードどmidi出力の対応表です
33〜123 : 音を出す
1 + 引数 : テンポを引数に設定
動作報告がない
290282
2010/05/31(月) 18:09:47 ごめんなさい途中で送ってしまいました。。。
2 + 引数 : 引数の音数を同時に発するように設定します
3 + 引数 : 音の長さを設定します 引数は0〜5までそれぞれ16分音符、8分音符、4分音符、3分音符、2分音符、全音符に対応します
* + 引数 の表記は*を出力した後引数を出力するという意味です
走り書きでごめんなさい
そして、見直すべき所がいっぱいですね
動作報告や反応がないのでどうしていいやら^^;
もうそんな下らないものはいいというのであれば去ります
もっと改良してというのであれば頑張ります
長文すいませんでした
2 + 引数 : 引数の音数を同時に発するように設定します
3 + 引数 : 音の長さを設定します 引数は0〜5までそれぞれ16分音符、8分音符、4分音符、3分音符、2分音符、全音符に対応します
* + 引数 の表記は*を出力した後引数を出力するという意味です
走り書きでごめんなさい
そして、見直すべき所がいっぱいですね
動作報告や反応がないのでどうしていいやら^^;
もうそんな下らないものはいいというのであれば去ります
もっと改良してというのであれば頑張ります
長文すいませんでした
291デフォルトの名無しさん
2010/05/31(月) 19:39:12 >>282
Win7+JDK6だとbrainmidi.jarをダブルクリック
×ボタン(WindowClose)をクリック
無反応になるのよ
あとサンプルのsperanka.txtをエディタで開いて左ペインに貼り付けてからrunをすると
ウィンドウがすべてグレー(選択不可)になっているにも関わらず何もおきない(CPUも食わない)
になる
音源ってJavaからのアクセスのために特別な設定が何か必要だったっけ?
きれいじゃなくてもいいからソースがあれば手伝えるのだけど、さすがにjarだけだとめんどくさいんだ
Win7+JDK6だとbrainmidi.jarをダブルクリック
×ボタン(WindowClose)をクリック
無反応になるのよ
あとサンプルのsperanka.txtをエディタで開いて左ペインに貼り付けてからrunをすると
ウィンドウがすべてグレー(選択不可)になっているにも関わらず何もおきない(CPUも食わない)
になる
音源ってJavaからのアクセスのために特別な設定が何か必要だったっけ?
きれいじゃなくてもいいからソースがあれば手伝えるのだけど、さすがにjarだけだとめんどくさいんだ
292282
2010/05/31(月) 20:05:34293デフォルトの名無しさん
2010/05/31(月) 22:15:53 >Microsoft GS Wavetable SW Synth
普通に考えてコレが入ってないのあり得ないと思うんだが
デフォルトのMIDI音源だよね?
普通に考えてコレが入ってないのあり得ないと思うんだが
デフォルトのMIDI音源だよね?
294282
2010/05/31(月) 22:39:06295デフォルトの名無しさん
2010/05/31(月) 23:08:07 おまえどうせXPだろ
297デフォルトの名無しさん
2010/06/01(火) 00:09:14 やはりな・・・
インターネットの普及とインフラ整備によりMIDIは事実上役目を終えた
Vista以降は標準でMIDIの再生など出来ない
おまえだけ浮いているのはそのせい
インターネットの普及とインフラ整備によりMIDIは事実上役目を終えた
Vista以降は標準でMIDIの再生など出来ない
おまえだけ浮いているのはそのせい
298282
2010/06/01(火) 00:25:32 そんな・・・
7,vistaにXPユーザ数は負けたというのか・・・?
そんなことないだろ!ここはム板だぞ!!
XPは現役のはず!
と、茶番はさておき
MIDIの再生は出来ないってのは嘘ですね、流石に^^;
使用できるMIDI音源を指定できるようにはしてますのでvista,7さんも何とか出来るはずです
7,vistaにXPユーザ数は負けたというのか・・・?
そんなことないだろ!ここはム板だぞ!!
XPは現役のはず!
と、茶番はさておき
MIDIの再生は出来ないってのは嘘ですね、流石に^^;
使用できるMIDI音源を指定できるようにはしてますのでvista,7さんも何とか出来るはずです
299282
2010/06/01(火) 01:23:09 どれくらいの人に動かしてもらっているか分かりませんがサンプルを
tempo
+.-
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ .
chord
>++.-.-<
init
>
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ +++++++
main
. ++. ++. +. ++. ++. ++. +.
シンプルにドレミファソラシドを再生します
tempo chordの部分を省いてもらっても鳴ります
ソース欄に +[,.]
インプット欄に MOQRTVXY
でも同じようになります
ではおやすみなさい
tempo
+.-
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ .
chord
>++.-.-<
init
>
++++++++++ ++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ +++++++
main
. ++. ++. +. ++. ++. ++. +.
シンプルにドレミファソラシドを再生します
tempo chordの部分を省いてもらっても鳴ります
ソース欄に +[,.]
インプット欄に MOQRTVXY
でも同じようになります
ではおやすみなさい
300デフォルトの名無しさん
2010/06/01(火) 05:08:18301デフォルトの名無しさん
2010/06/01(火) 08:08:41 何となく虫してたけど今試してみた。すげw
302282
2010/06/01(火) 08:10:44 >>300
動作報告ありがとうございます!
実は私の環境ではJava Sound Synthesizerが鳴らないんですよ・・・
ググると
>Java標準のシンセ(Java Sound Synthesizer)にインストゥルメントがロードされていないため
とか出るんですけど
いまいちよく分かりませぬ/(^o^)\
動作報告ありがとうございます!
実は私の環境ではJava Sound Synthesizerが鳴らないんですよ・・・
ググると
>Java標準のシンセ(Java Sound Synthesizer)にインストゥルメントがロードされていないため
とか出るんですけど
いまいちよく分かりませぬ/(^o^)\
304デフォルトの名無しさん
2010/06/14(月) 18:27:23 最近神様が来られない。。。
305デフォルトの名無しさん
2010/06/14(月) 18:37:05 邪道だとは思うけど、アルファベット一文字をマクロにすればかなり書きやすくなるよね。
小文字で定義、大文字で展開とか。ついでに数字一文字で繰り返しとか。
例えばこんな感じ。
9+[>8+>9+++>5+<<<-]>.>++.+++++++..+++.>-.a---AAAA.<++++++++.AA--.+++.AA.AA--.>+.
いかん、例が悪くて余り書き易そうに見えないw
小文字で定義、大文字で展開とか。ついでに数字一文字で繰り返しとか。
例えばこんな感じ。
9+[>8+>9+++>5+<<<-]>.>++.+++++++..+++.>-.a---AAAA.<++++++++.AA--.+++.AA.AA--.>+.
いかん、例が悪くて余り書き易そうに見えないw
306デフォルトの名無しさん
2010/06/14(月) 18:42:18 拡張の話は別にしてもいいが
誰でも思いつきそうなのは勘弁
誰でも思いつきそうなのは勘弁
307282
2010/06/14(月) 19:16:14 #defineでマクロ定義はすでに作った
308デフォルトの名無しさん
2010/06/14(月) 19:17:59 やだ、名前残ってた
恥ずかしい
恥ずかしい
309デフォルトの名無しさん
2010/06/14(月) 23:15:41 誰かAPIの叩き方をだな
310デフォルトの名無しさん
2010/06/14(月) 23:51:07311デフォルトの名無しさん
2010/06/23(水) 00:03:38 *p番のシステムコールを呼び出す命令があれば何でもできる
312デフォルトの名無しさん
2010/06/25(金) 03:39:19 >>311 神発見
313デフォルトの名無しさん
2010/07/09(金) 21:37:29 ここって他のbrain系のコードの解説ってお願い出来る?
スレチだったら申し訳ないが何でhelloworldになるのか分からないのがある
一応このスレの例のhelloworldは理解してるつもりです
スレチだったら申し訳ないが何でhelloworldになるのか分からないのがある
一応このスレの例のhelloworldは理解してるつもりです
314デフォルトの名無しさん
2010/07/09(金) 23:12:06 どうせ他にネタもないし出してみそ
315デフォルトの名無しさん
2010/07/09(金) 23:33:26 vectorに合った奴何ですが
={+++++++>--->+<<!-.これでHが表示されますが何故でしょう?
=!でループするのは分かってますが、考えると++しすぎて数値が何千って行っています
Hは72なのに何故Hが画面に出るのかが分からないです
今日学校で見つけてからずっと悩んでいます
={+++++++>--->+<<!-.これでHが表示されますが何故でしょう?
=!でループするのは分かってますが、考えると++しすぎて数値が何千って行っています
Hは72なのに何故Hが画面に出るのかが分からないです
今日学校で見つけてからずっと悩んでいます
316デフォルトの名無しさん
2010/07/09(金) 23:33:35317デフォルトの名無しさん
2010/07/10(土) 02:00:02 純bf以外なら「vectorに合った奴」じゃなくて名前を書いてくれないと・・・
2010/07/10(土) 04:00:09
=とか!とか{とかって何だよ
2010/07/10(土) 05:20:18
ttp://www.vector.co.jp/soft/win95/prog/se484667.html
これか。
これか。
2010/07/10(土) 05:29:29
>>315
読んだ。
1セルがmod 256の数値だと仮定して、
終端ポインタがmem[30000]をさしていると考えると
最初のセルは
7 * (30000-1) -1 = 72
になるんだと思われる。
拡張命令の是非はさておき、
メモリのサイズが変わると結果も変わるので、
俺はあまり意味のあるプログラムだとは思わんね。
読んだ。
1セルがmod 256の数値だと仮定して、
終端ポインタがmem[30000]をさしていると考えると
最初のセルは
7 * (30000-1) -1 = 72
になるんだと思われる。
拡張命令の是非はさておき、
メモリのサイズが変わると結果も変わるので、
俺はあまり意味のあるプログラムだとは思わんね。
2010/07/10(土) 08:20:05
有難うございます。
でもどうして256何ですか?
でもどうして256何ですか?
2010/07/10(土) 08:55:40
http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88_(%E6%83%85%E5%A0%B1)
2010/07/10(土) 09:53:40
有難うございます。
符号無しで0から255の意味が最初分かりませんでしたが255から+したら0に戻るんですね
何千って数値が行くと思っていました
符号無しで0から255の意味が最初分かりませんでしたが255から+したら0に戻るんですね
何千って数値が行くと思っていました
2010/07/10(土) 14:12:28
325デフォルトの名無しさん
2010/07/12(月) 01:23:09 バイナリ配るって発想が・・・・
326デフォルトの名無しさん
2010/07/12(月) 02:27:30 つーか32bitでUbuntuならARMでも動くのかとか突っ込みたくなるな
327デフォルトの名無しさん
2010/07/12(月) 11:10:21 そういやCで書かれたBrainFuckのインタプリタのソースコードって公開されてなくないか?
JSとかは良く見るけどさ
JSとかは良く見るけどさ
328デフォルトの名無しさん
2010/07/12(月) 12:23:37 逆じゃね?
一番多くサンプルあるのがCだろ
実装が楽だし、よくポインタ理解度チェックとして初心者の練習問題に使われてるし
歴史的経緯から考えてもCが多いだろうよ
一番多くサンプルあるのがCだろ
実装が楽だし、よくポインタ理解度チェックとして初心者の練習問題に使われてるし
歴史的経緯から考えてもCが多いだろうよ
329デフォルトの名無しさん
2010/07/12(月) 15:11:14 ARMだったらCよりThumbで書いた方が楽しそう
330デフォルトの名無しさん
2010/07/12(月) 17:07:05 thumbはマゾいな
楽しさなら個人的にはarmの方が上だなぁ
楽しさなら個人的にはarmの方が上だなぁ
331デフォルトの名無しさん
2010/07/15(木) 21:10:21 新しいesolang覚えたらHelloWorldとQuineの次は大体BFインタプリタ
332デフォルトの名無しさん
2010/07/15(木) 23:11:09 BFのQuine書けるやつは凄い
333デフォルトの名無しさん
2010/07/16(金) 15:37:19 BFインタプリタ作ってみようと思ったが[][][]のようにループが複数ある時どう書けばいいの?
[[]]とか中に複数あるならいいんだけど、[][]と離れると動かない
[[]]とか中に複数あるならいいんだけど、[][]と離れると動かない
334デフォルトの名無しさん
2010/07/16(金) 19:07:44 バックトラックのときに"]"の数を数えるカウンタを用意して、
"]"が来たらカウンタを増やす
"["が来たらカウンタを減らす
カウンタが0のときに"["が来たら、そこに飛ぶ。
でいいと思うよ。
"]"が来たらカウンタを増やす
"["が来たらカウンタを減らす
カウンタが0のときに"["が来たら、そこに飛ぶ。
でいいと思うよ。
335デフォルトの名無しさん
2010/07/22(木) 03:16:23336デフォルトの名無しさん
2010/07/22(木) 08:14:33 FO3か。それメモリダンプからパスワード当てるって設定だから、
構文も何もないよ。
構文も何もないよ。
337デフォルトの名無しさん
2010/07/22(木) 12:25:38 女の没論理性はいかんともし難い。
338デフォルトの名無しさん
2010/07/22(木) 12:43:24 仕事中暇だったから、上のbr系使ってhelloworldを出力するCソースを吐き出し
それをビルドして実行させてみた
++++++++[****{*****{*************}}-]***|>{{|+>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|<<<
<<<<<<<<<<<++++++>----->++++>+++++++++++++>---->--->}}&{>&++++++++++++++++++++>
+++++++++++>++++++++++++>---->+>+++++++>&++++++>>|}|+++++++++++++++++++>{{{&+++
+++++++>}|+>|++++++>|++++++++++++>}}|--->{{|+++++>|------->|+>|++++++>}|>|+>{|+
++++++++++++++++++>++++++++++>}}///|>|>|>|>{{|++++++++>|+++++++++++++>|++++++++
++++>|+++++++++++>}|>}|++>{{|>++++++[<----->-]<-->|--->|++++>|++++>|+++++++>}|+
+++>}|>{{|+++++++++++++++>|+++++++>|++++++++++>|++++>|---->}}|+>|++>{|+>|>++++[
<+++++>-]<->++++++++++>}|>|>|>|>{{|++++++++++>|--->|++++++++++++>|+++++++++++++
>|++++++++++>|++++++>}}|>{|++++++++>|>++++[<+++++>-]<->++++++++++>{|>+++++[<+++
+>-]<+@
./braineasing hello.txt > hello.c && gcc -o hello.o hello.c && ./hello.o && rm hello.o hello.c
ふぅ…何やってるんだろ俺…
それをビルドして実行させてみた
++++++++[****{*****{*************}}-]***|>{{|+>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|<<<
<<<<<<<<<<<++++++>----->++++>+++++++++++++>---->--->}}&{>&++++++++++++++++++++>
+++++++++++>++++++++++++>---->+>+++++++>&++++++>>|}|+++++++++++++++++++>{{{&+++
+++++++>}|+>|++++++>|++++++++++++>}}|--->{{|+++++>|------->|+>|++++++>}|>|+>{|+
++++++++++++++++++>++++++++++>}}///|>|>|>|>{{|++++++++>|+++++++++++++>|++++++++
++++>|+++++++++++>}|>}|++>{{|>++++++[<----->-]<-->|--->|++++>|++++>|+++++++>}|+
+++>}|>{{|+++++++++++++++>|+++++++>|++++++++++>|++++>|---->}}|+>|++>{|+>|>++++[
<+++++>-]<->++++++++++>}|>|>|>|>{{|++++++++++>|--->|++++++++++++>|+++++++++++++
>|++++++++++>|++++++>}}|>{|++++++++>|>++++[<+++++>-]<->++++++++++>{|>+++++[<+++
+>-]<+@
./braineasing hello.txt > hello.c && gcc -o hello.o hello.c && ./hello.o && rm hello.o hello.c
ふぅ…何やってるんだろ俺…
339デフォルトの名無しさん
2010/07/22(木) 14:09:55 暇すぎるだろw
俺にその暇分けろ!
俺にその暇分けろ!
340デフォルトの名無しさん
2010/07/22(木) 15:43:41 暇は作り出すものだ
341デフォルトの名無しさん
2010/07/22(木) 15:47:44 暇乞い
342デフォルトの名無しさん
2010/07/22(木) 19:13:26 俺もやろうとしたらめんどくさ過ぎてやめたw
何時間掛かったんだ?
何時間掛かったんだ?
343デフォルトの名無しさん
2010/08/19(木) 23:07:17 おい、おまえら向けのサイトができてたぞ。
SqueakやScartch 系列のビジュアルプログラミング言語だが、かなり難解
衝突プログラミングがキモ
プログラミン | 文部科学省
http://www.mext.go.jp/programin/
ドラッグ&ドロップで簡単プログラミング 文科省が子ども向けに公開、まとめサイトも登場 - ITmedia News
http://www.itmedia.co.jp/news/articles/1008/19/news082.html
まとめ:プログラミン作品ギャラリー 『プログラミンでつくったよ!』を集めるサービス
http://programin.jp/
サンプルのジャンケンとシューティングを見ればできることがわかるとおもう
加算器
http://www.mext.go.jp/programin/share/?share_id=afde3d7c491b1839b35fe89ab8bf9dd0
SqueakやScartch 系列のビジュアルプログラミング言語だが、かなり難解
衝突プログラミングがキモ
プログラミン | 文部科学省
http://www.mext.go.jp/programin/
ドラッグ&ドロップで簡単プログラミング 文科省が子ども向けに公開、まとめサイトも登場 - ITmedia News
http://www.itmedia.co.jp/news/articles/1008/19/news082.html
まとめ:プログラミン作品ギャラリー 『プログラミンでつくったよ!』を集めるサービス
http://programin.jp/
サンプルのジャンケンとシューティングを見ればできることがわかるとおもう
加算器
http://www.mext.go.jp/programin/share/?share_id=afde3d7c491b1839b35fe89ab8bf9dd0
344デフォルトの名無しさん
2010/08/20(金) 22:13:12 プログラミンでbrainfuckきてたw
作りかけのbrainfuck: http://bit.ly/cpn2FL
瓶詰堂日記
http://www.binzume.net/diary/2010-08-20#A1
作りかけのbrainfuck: http://bit.ly/cpn2FL
瓶詰堂日記
http://www.binzume.net/diary/2010-08-20#A1
345デフォルトの名無しさん
2010/08/20(金) 22:13:35 落ちそうになってるのでage
346デフォルトの名無しさん
2010/08/20(金) 23:05:28 sage
347デフォルトの名無しさん
2010/08/20(金) 23:58:38 sageでも落ちないよ
348デフォルトの名無しさん
2010/09/13(月) 05:39:26 あげ
349デフォルトの名無しさん
2010/09/25(土) 22:52:38 Malbolgeを読める、または書ける香具師っているのかな?w
350デフォルトの名無しさん
2010/09/26(日) 05:21:38 某大学の研究でHello Worldは書けたらしいが…
読むのは無理だろw
読むのは無理だろw
351デフォルトの名無しさん
2010/11/02(火) 02:10:50 自作Brainfuck系難解プログラミング言語 Braincunt (ブレインカント) の仕様とインタプリタを公開しました。
http://www.boleros.x0.com/doc/ktlwiki/index.php?Braincunt
特別な技術も何もありませんが。
http://www.boleros.x0.com/doc/ktlwiki/index.php?Braincunt
特別な技術も何もありませんが。
352デフォルトの名無しさん
2010/11/02(火) 02:15:56 拡張飽きた
353デフォルトの名無しさん
2010/11/02(火) 07:58:58 シンプルさが売りなのにごてごて付け足してもね・・・
誰もそれでプログラムを書こうとするはずない
誰もそれでプログラムを書こうとするはずない
354デフォルトの名無しさん
2010/11/02(火) 08:17:33 むしろ命令を減らすほうに力を注ぐべきだな…
355デフォルトの名無しさん
2010/11/02(火) 12:20:50 全メモリの正負および左右の位置を反転させるコマンドを入れれば+-と<>は節約できる?
356デフォルトの名無しさん
2010/11/02(火) 13:32:32 できるね
それを@とすると、
< → @>@
- → @+@
と書き換えればおk
それを@とすると、
< → @>@
- → @+@
と書き換えればおk
357デフォルトの名無しさん
2010/11/02(火) 13:40:54 それでは美しさに欠ける
358デフォルトの名無しさん
2010/11/02(火) 13:43:28 (@-@;)
359デフォルトの名無しさん
2010/11/02(火) 15:38:46 というか、単に記号を減らしたいだけなら
> → 000
< → 001
+ → 010
- → 011
っていうふうに置き換えれば記号数は2個だ。
> → 000
< → 001
+ → 010
- → 011
っていうふうに置き換えれば記号数は2個だ。
360デフォルトの名無しさん
2010/11/02(火) 16:24:23361デフォルトの名無しさん
2010/11/02(火) 16:48:19 >273を置換した。(フォントにも拠るだろうけど)場所を取らないw
;;;lllllllllli:l::l;;;'I:i:llll;;llllll;llllllllll::'Illlll
lllll;;i::l;;;;l::'Illlli;lllll:'I;;i:l:l;;'I;llllli:llllll
l;'I:.::::'''''.lllll.;;'.::''.;;;'''.:l.l.;;'''.:::.;;''.l
.:'.lllll.::lll.:llllll.;;;'.:ll.:::.;;;;l.::'.;;;.;.::::'.
;;''''''''.::''''.lllll.:''''''.l.:.;;;;;lllllll.:::::.;;;;
;;....::::ll.ll.'''''''''.lllll.;;;'''''''.:lllll.:::'.''''
''.;;;ll.'''.::''..lll.;;;;.:lll.:::.lll.''''''.;;'.;;l.'::
''''''''.::ll.:.lllllll.;;'''.:::.;;;;;;....::::llll.;;llll
lllll.;'''.l.:::.''''.;;;;.:::::lllllll.;;.:::.;;;;;llllllll.
;;;lllllllllli:l::l;;;'I:i:llll;;llllll;llllllllll::'Illlll
lllll;;i::l;;;;l::'Illlli;lllll:'I;;i:l:l;;'I;llllli:llllll
l;'I:.::::'''''.lllll.;;'.::''.;;;'''.:l.l.;;'''.:::.;;''.l
.:'.lllll.::lll.:llllll.;;;'.:ll.:::.;;;;l.::'.;;;.;.::::'.
;;''''''''.::''''.lllll.:''''''.l.:.;;;;;lllllll.:::::.;;;;
;;....::::ll.ll.'''''''''.lllll.;;;'''''''.:lllll.:::'.''''
''.;;;ll.'''.::''..lll.;;;;.:lll.:::.lll.''''''.;;'.;;l.'::
''''''''.::ll.:.lllllll.;;'''.:::.;;;;;;....::::llll.;;llll
lllll.;'''.l.:::.''''.;;;;.:::::lllllll.;;.:::.;;;;;llllllll.
362デフォルトの名無しさん
2010/11/02(火) 17:04:38 bfコードをURLに圧縮してそのURLに飛ぶとすぐに実行できるサービスマダー?
363デフォルトの名無しさん
2010/11/02(火) 19:12:54 >>355-360
それらは命令をエンコードして記号数を減らしてるだけで、命令数は相変わらず8だよね。
それらは命令をエンコードして記号数を減らしてるだけで、命令数は相変わらず8だよね。
364デフォルトの名無しさん
2010/11/02(火) 20:19:41 これ以上減らしたらなんも出来なくなるだろ・・
365デフォルトの名無しさん
2010/11/02(火) 21:14:31 >>355は立派に一命令だろう
366デフォルトの名無しさん
2010/11/02(火) 21:15:19 記号数だけではなく内部状態数も気にしないとね。
367デフォルトの名無しさん
2010/11/02(火) 21:27:38 全メモリを書き換えるんだと思えば状態数は増えない
368デフォルトの名無しさん
2010/11/02(火) 21:31:43 ttp://ja.wikipedia.org/wiki/Brainfuck
>開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。
これ大事
処理が増えてはダメだろ
>開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。
これ大事
処理が増えてはダメだろ
369デフォルトの名無しさん
2010/11/02(火) 21:34:53 コンパイラがなるべく小さくなるつっても
コンパイラの言語にもよるからなぁ
コンパイラの言語にもよるからなぁ
370デフォルトの名無しさん
2010/11/02(火) 22:53:30 perlインタプリタをperlで書けば確実にBFより短く書けるからな
371デフォルトの名無しさん
2010/11/03(水) 01:30:04 コンパイラを何か勘違いしてないか?
372デフォルトの名無しさん
2010/11/03(水) 01:42:32 どういうCPUかにもよるよなあ
373デフォルトの名無しさん
2010/11/03(水) 05:08:07 判ってない香具師が間欠泉的に置換ネタに走るスレ
374デフォルトの名無しさん
2010/11/06(土) 15:15:15 命令数維持または微増で可読性を大幅に高めるた言語ってないのかね
375デフォルトの名無しさん
2010/11/07(日) 15:01:52 それは知らないけど、Cのプリプロセッサ使って書いたら楽になる気はする。
376デフォルトの名無しさん
2010/11/09(火) 02:20:18377デフォルトの名無しさん
2010/11/09(火) 07:46:10378デフォルトの名無しさん
2010/11/10(水) 09:14:31 >>377
BrainFuckに限らず、長いソースを掲示板に貼るはるとか、
2chに貼るとソースコードのライセンスうんたらかんたらとか
その他のサンプルソース実際に動かしたらこうだぜ、ってときに便利だよ
BrainFuckに限らず、長いソースを掲示板に貼るはるとか、
2chに貼るとソースコードのライセンスうんたらかんたらとか
その他のサンプルソース実際に動かしたらこうだぜ、ってときに便利だよ
379デフォルトの名無しさん
2010/11/10(水) 09:15:47 >>377
一応マジレスすると、短縮URLみたいなもんだろうけどね
DBのidみたいな一意のもを常に短くなるようにhash化してるようなもんだろ。
多分同じソースコードを貼っても同じURLにならないと思うよ
一応マジレスすると、短縮URLみたいなもんだろうけどね
DBのidみたいな一意のもを常に短くなるようにhash化してるようなもんだろ。
多分同じソースコードを貼っても同じURLにならないと思うよ
380デフォルトの名無しさん
2010/11/10(水) 12:24:02 >>378-379
処理結果が表示されてたから処理系組み込んであるのかなって思ったけど
やっぱりこれbrainfuckを動かすためのものじゃないよね
URLはハッシュだろうと単にBFコードを圧縮したものだろうとどっちにしろ読めないからいいけど
やはり専用のサイトがあったほうが便利
処理結果が表示されてたから処理系組み込んであるのかなって思ったけど
やっぱりこれbrainfuckを動かすためのものじゃないよね
URLはハッシュだろうと単にBFコードを圧縮したものだろうとどっちにしろ読めないからいいけど
やはり専用のサイトがあったほうが便利
381デフォルトの名無しさん
2010/11/10(水) 12:33:41 いや処理系が組み込んであるよ
brainfuckを含む多言語に対応してるだけ
brainfuckを含む多言語に対応してるだけ
382デフォルトの名無しさん
2010/11/10(水) 13:06:08 まじかよ
使い方はよくわからんがすげーな
使い方はよくわからんがすげーな
383デフォルトの名無しさん
2010/11/11(木) 09:20:46 >>380
疑問に思ったら、トップページくらい見ろw
http://ideone.com/
この手のオンラインの処理系はいくつかある
今気づいたら、ここUnlambdaやwhitespaceまであるし誰得なんだよ
疑問に思ったら、トップページくらい見ろw
http://ideone.com/
この手のオンラインの処理系はいくつかある
今気づいたら、ここUnlambdaやwhitespaceまであるし誰得なんだよ
384デフォルトの名無しさん
2010/12/10(金) 18:05:07 あげ
385デフォルトの名無しさん
2010/12/24(金) 23:32:39 []は不要
386デフォルトの名無しさん
2010/12/24(金) 23:33:41 bFでマルチスレッドできないの?
mallocできねえの?
mallocできねえの?
387デフォルトの名無しさん
2010/12/24(金) 23:39:59 C→bfトランスレータがどっかにあったはず
388デフォルトの名無しさん
2010/12/24(金) 23:42:19389デフォルトの名無しさん
2011/02/01(火) 16:40:33 携帯用のFlashで遊べるのってまだどこかに残ってる?
390デフォルトの名無しさん
2011/02/17(木) 07:30:40 ttp://mits.s59.xrea.com/flash/down.php?id=32&h=1
391デフォルトの名無しさん
2011/02/17(木) 14:17:38 >>390
ありがとう
ありがとう
392デフォルトの名無しさん
2011/03/04(金) 21:15:22.67 すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?
出てきたんですけど・・・・どうすればいいんですか?
393デフォルトの名無しさん
2011/03/05(土) 00:09:56.02 のーみそこねこねこんぱいる
394デフォルトの名無しさん
2011/03/08(火) 04:24:09.65 脳みそくすぐっちゃうよ?
395デフォルトの名無しさん
2011/03/08(火) 11:11:18.90 古い!
396デフォルトの名無しさん
2011/03/30(水) 01:34:04.99 BFのTuring完全性の証明ってどこかに無いですか?
397デフォルトの名無しさん
2011/03/30(水) 06:47:20.33398デフォルトの名無しさん
2011/03/30(水) 11:05:45.53399デフォルトの名無しさん
2011/03/30(水) 17:53:35.05 >>398
ありがとうございます
ありがとうございます
400デフォルトの名無しさん
2011/04/23(土) 13:57:46.22 163 以下、名無しにかわりましてVIPがお送りします[] 2011/04/23 (土) 13:25:20.95 ID:7z50yigJ0 (3/3) [PC] ?2BP(1000)
http://up3.viploader.net/pc/src/vlpc007110.png
ぼくのかんがえたさいきょうのぶれいんふぁっく^^;;;;;;;;;;
http://up3.viploader.net/pc/src/vlpc007110.png
ぼくのかんがえたさいきょうのぶれいんふぁっく^^;;;;;;;;;;
401デフォルトの名無しさん
2011/04/23(土) 15:34:09.43 BrainFuckでソースを出力するとCインタプリタが動くような
二重の仮想環境を作れば、ほぼなんでも出来るようになるな
二重の仮想環境を作れば、ほぼなんでも出来るようになるな
402デフォルトの名無しさん
2011/04/23(土) 15:51:44.40 なにこのVIPくさい
403デフォルトの名無しさん
2011/04/23(土) 22:40:02.52 borlandのコマンドラインのやつでつくったら?
404デフォルトの名無しさん
2011/04/24(日) 01:47:20.62 こういう拡張は仕様が物を言うから
手軽にできん
機能を絞るならいけるかもだが
手軽にできん
機能を絞るならいけるかもだが
405デフォルトの名無しさん
2011/04/24(日) 23:18:51.42 >>401
bfで出力した文字をコマンドラインに投げればいい
bfで出力した文字をコマンドラインに投げればいい
406デフォルトの名無しさん
2011/04/27(水) 00:54:00.81 プログラミングとかよくわからないけど、結局この言語だけで何作れんの?
文字しかつくれないの?
文字しかつくれないの?
407デフォルトの名無しさん
2011/04/27(水) 01:11:52.64 理屈の上ではなんでも作れるよ
なんでもっていう意味は、C言語やFortlanみたいな普通の言語と
同じだけの表現力があるっていうこと
たとえば、C言語で書ける処理は、かならずBFでも書ける
もちろん書きやすさにはだいぶ違いがあるけれど
なんでもっていう意味は、C言語やFortlanみたいな普通の言語と
同じだけの表現力があるっていうこと
たとえば、C言語で書ける処理は、かならずBFでも書ける
もちろん書きやすさにはだいぶ違いがあるけれど
408デフォルトの名無しさん
2011/04/27(水) 02:49:19.21 なんでも作る為には独自の実装をしないといけないと思う
メモリ配置とかシステムコールみたいな
主に番地を割り当てるのかね
純粋にBFだけ考えると入出力と計算、ループだけ
これ単体でグラフィカルなプログラミングとかは無理って解釈で良いと思うよ
メモリ配置とかシステムコールみたいな
主に番地を割り当てるのかね
純粋にBFだけ考えると入出力と計算、ループだけ
これ単体でグラフィカルなプログラミングとかは無理って解釈で良いと思うよ
409デフォルトの名無しさん
2011/04/27(水) 03:59:46.57 bfから各種APIを呼ぶエレガントな仕様案お待ちしてます
410デフォルトの名無しさん
2011/04/27(水) 04:41:17.72 理屈は可能なのか・・・
BFが気になったからBFでプログラムの勉強してみようかなと思ったんだけど
やっぱCとかからはじめたほうがいいのかね
BFが気になったからBFでプログラムの勉強してみようかなと思ったんだけど
やっぱCとかからはじめたほうがいいのかね
411デフォルトの名無しさん
2011/04/27(水) 04:45:52.77 いくらなんでも釣りだろ
ネタ言語だぞ
これで学べることはかなりプリミティブなものに限定される
ネタ言語だぞ
これで学べることはかなりプリミティブなものに限定される
412デフォルトの名無しさん
2011/04/27(水) 05:08:41.41 bfはアセンブラとか基本情報とか勉強した人が遊ぶ言語だから
cとは全く別物
何言語から始めるかは目的によるが
そういう話はこのスレで扱わない
この板にそういうスレあるから見たらいいよ
cとは全く別物
何言語から始めるかは目的によるが
そういう話はこのスレで扱わない
この板にそういうスレあるから見たらいいよ
413デフォルトの名無しさん
2011/04/27(水) 09:56:47.27 よく知らない言語でも、BFと同じ処理ができればチューリング完全だと言える。
その点がBFの存在意義なんじゃないかと思っている。
マトモにプログラム書く気でBFを使うのは、やめとけ。
その点がBFの存在意義なんじゃないかと思っている。
マトモにプログラム書く気でBFを使うのは、やめとけ。
414デフォルトの名無しさん
2011/04/27(水) 10:53:58.08 BFマシンの開発はまだですか?
415デフォルトの名無しさん
2011/04/27(水) 11:37:48.30 >>414
今時ならエミュレータでも充分実用的な速度が出るだろう。
今時ならエミュレータでも充分実用的な速度が出るだろう。
416デフォルトの名無しさん
2011/04/27(水) 11:45:50.32 言語が実用的でないのに
417デフォルトの名無しさん
2011/04/27(水) 11:51:06.41 トランスレータを作れば……なんて胡乱なw
418デフォルトの名無しさん
2011/04/27(水) 15:30:13.35 FPGAで誰か作ってるはず
419デフォルトの名無しさん
2011/05/01(日) 08:21:07.40 >>409
エレガントかどうかは分からんが、これくらいしか思い浮かばない。
API呼び出し命令を追加。
(関数ポインタか何か)APIを識別する数字と、APIに渡す引数をメモリにセットしてから
API呼び出し命令を処理すると、APIが呼ばれ、戻り値がセットされる。
エレガントかどうかは分からんが、これくらいしか思い浮かばない。
API呼び出し命令を追加。
(関数ポインタか何か)APIを識別する数字と、APIに渡す引数をメモリにセットしてから
API呼び出し命令を処理すると、APIが呼ばれ、戻り値がセットされる。
420デフォルトの名無しさん
2011/05/01(日) 10:20:12.92 特定の番地のメモリがインクリメントされることをOSがトリガとして感知して起動とかかな
421デフォルトの名無しさん
2011/05/01(日) 11:21:13.15 CPUと外部割込み機器の通信みたいになってきたな…
もしくはシステムコール呼び出しか…w
もしくはシステムコール呼び出しか…w
422デフォルトの名無しさん
2011/05/03(火) 00:12:38.86423デフォルトの名無しさん
2011/05/06(金) 10:25:20.65 >>410
プログラマ向けのパズルみたいなものですよ
プログラマ向けのパズルみたいなものですよ
424デフォルトの名無しさん
2011/06/05(日) 11:24:55.74 「ほむほむ」だけでプログラミングできる言語登場 わけがわからないよ
http://nlab.itmedia.co.jp/nl/articles/1106/02/news040.html
http://nlab.itmedia.co.jp/nl/articles/1106/02/news040.html
425デフォルトの名無しさん
2011/06/05(日) 16:17:20.90 なんだBF系じゃないのか
長門有希とかあったよなぁ
長門有希とかあったよなぁ
426デフォルトの名無しさん
2011/06/05(日) 16:40:10.65 BFジェネレータマダー
427デフォルトの名無しさん
2011/06/05(日) 17:21:52.56 BF コンパイラが BF で記述される日はまだまだ遠い‥‥。
428デフォルトの名無しさん
2011/06/05(日) 17:30:41.00 ほむほむ出力命令しかないのか
429デフォルトの名無しさん
2011/06/05(日) 17:46:47.91 入力命令もあるよ
標準入力を標準出力にコピー
ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ
標準入力を標準出力にコピー
ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ
430デフォルトの名無しさん
2011/06/05(日) 18:22:55.31 Scalaなんだな。
うまくコンパイルできないのだが。
うまくコンパイルできないのだが。
431デフォルトの名無しさん
2011/06/05(日) 20:18:58.75 なるほど、解らん
432デフォルトの名無しさん
2011/06/06(月) 00:58:31.39 >>427
ttp://code.google.com/p/awib/
ttp://code.google.com/p/awib/
433デフォルトの名無しさん
2011/06/06(月) 20:26:44.71 >>432
へー、こりはおどきました。thanks
へー、こりはおどきました。thanks
434天使 ◆uL5esZLBSE
2011/07/02(土) 11:22:56.87 土方に何をいわれても
435デフォルトの名無しさん
2011/07/02(土) 19:43:24.37マルチスレッド対応まだ?
SIMDいつ対応するの?
グラフィックどうするの?
436天使 ◆uL5esZLBSE
2011/07/04(月) 16:35:35.78 >>429
↓↓↓↓↓↓
「「「「「「「「「 入力命令もあるよ 」」」」」」」」」(キリッッ!!!!キリッッ!キリッきリッッッッッ
↑(キリきリッ!!!!
↓↓↓↓↓↓↓↓↓
「「「「「「「「「 標準入力を標準出力にコピー 」」」」」」」」」(←キリッッ!!ッッッッ!!!!
↑↑↑↑↑↑↑↑↑(キリッッ!!!!
↓↓↓↓↓↓↓↓↓↓
「「「「「「「 ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ 」」」」」」」(キリッ!キリッ!!!キリ!!!!!!
↑↑↑↑↑↑↑↑↑(キリッ!!
死ねゴミ
↓↓↓↓↓↓
「「「「「「「「「 入力命令もあるよ 」」」」」」」」」(キリッッ!!!!キリッッ!キリッきリッッッッッ
↑(キリきリッ!!!!
↓↓↓↓↓↓↓↓↓
「「「「「「「「「 標準入力を標準出力にコピー 」」」」」」」」」(←キリッッ!!ッッッッ!!!!
↑↑↑↑↑↑↑↑↑(キリッッ!!!!
↓↓↓↓↓↓↓↓↓↓
「「「「「「「 ほむ ほむほむほむほむ ほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむ 」」」」」」」(キリッ!キリッ!!!キリ!!!!!!
↑↑↑↑↑↑↑↑↑(キリッ!!
死ねゴミ
437デフォルトの名無しさん
2011/07/16(土) 13:33:21.82 また糖質が暴れてんのか
438デフォルトの名無しさん
2011/07/16(土) 14:03:33.90 キ ポインタをインクリメント
リ ポインタをデクリメント
↑ ポインタが示すメモリ位置のデータをインクリメント
↓ ポインタが示すメモリ位置のデータをデクリメント
き ポインタが示すメモリ位置のデータを出力
り ポインタが示すメモリ位置のデータに入力
「 ポインタが示すメモリ位置のデータがヌルなら対応する」までジャンプ
」 ポインタが示すメモリ位置のデータがヌルじゃないなら対応する「までジャンプ
リ ポインタをデクリメント
↑ ポインタが示すメモリ位置のデータをインクリメント
↓ ポインタが示すメモリ位置のデータをデクリメント
き ポインタが示すメモリ位置のデータを出力
り ポインタが示すメモリ位置のデータに入力
「 ポインタが示すメモリ位置のデータがヌルなら対応する」までジャンプ
」 ポインタが示すメモリ位置のデータがヌルじゃないなら対応する「までジャンプ
439デフォルトの名無しさん
2011/08/26(金) 08:39:55.96 sage
440デフォルトの名無しさん
2011/10/10(月) 17:08:24.66441デフォルトの名無しさん
2011/10/10(月) 18:04:50.60 そこから来たぞw
442デフォルトの名無しさん
2011/10/17(月) 14:57:12.47 ブレインファック娘マダー
443デフォルトの名無しさん
2011/10/20(木) 03:13:06.37 今度はKQか。
444デフォルトの名無しさん
2011/10/21(金) 00:33:17.39 すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?
出てきたんですけど・・・・どうすればいいんですか?
445デフォルトの名無しさん
2011/10/21(金) 10:54:05.09446デフォルトの名無しさん
2011/11/19(土) 20:12:50.22 ポインタを例えば100進めるのに、>を100回書かずもっと短く書く事って可能?
俺の頭じゃやり方が思いつかなかった
俺の頭じゃやり方が思いつかなかった
447デフォルトの名無しさん
2011/11/20(日) 00:49:41.35448デフォルトの名無しさん
2011/11/20(日) 03:28:44.77 えっ
449デフォルトの名無しさん
2011/11/20(日) 06:07:40.34 +を100じゃなくて、>を100って話でしょ
450デフォルトの名無しさん
2011/11/20(日) 06:16:52.90 メモリ破壊しながらなら出来る?
451デフォルトの名無しさん
2011/11/20(日) 13:23:17.26 現在地から100番地先まで全部ぶっ壊しても良ければ
[-]>++++++++++[<++++++++++>-]<[>[-]<[->+<]>-]
[-]>++++++++++[<++++++++++>-]<[>[-]<[->+<]>-]
452デフォルトの名無しさん
2011/11/20(日) 22:01:13.38 2〜99番地のデータを0〜97番地に退避しながら100まで移動
0〜1番地は破壊される
[-]>[-]++++++++++[<++++++++++>-]<--
[[>+<-]>>[<<+>>-]<-]>>
100まで行った後にデータを元に戻しながら0まで戻るのも書いてみたけど、
合計すると100バイト超えちゃったよ
0〜1番地は破壊される
[-]>[-]++++++++++[<++++++++++>-]<--
[[>+<-]>>[<<+>>-]<-]>>
100まで行った後にデータを元に戻しながら0まで戻るのも書いてみたけど、
合計すると100バイト超えちゃったよ
453デフォルトの名無しさん
2012/01/08(日) 23:01:39.83 ほ
454デフォルトの名無しさん
2012/01/24(火) 00:09:44.35 misaをLinuxに導入できないんだが
455デフォルトの名無しさん
2012/01/25(水) 16:50:44.57 ttp://www.hevanet.com/cristofd/brainfuck/dbfi.b
ここのより短いインタプリタってある?
ここのより短いインタプリタってある?
456デフォルトの名無しさん
2012/02/01(水) 04:20:22.93 これって一応C言語並に複雑な事出来るらしいけど
実際そこまで作りこんだソフトとかあんの?
実際そこまで作りこんだソフトとかあんの?
457デフォルトの名無しさん
2012/02/01(水) 14:05:51.04 あるわきゃない
458デフォルトの名無しさん
2012/02/21(火) 12:51:21.12 書きたいなら止めない
459デフォルトの名無しさん
2012/03/17(土) 10:19:23.06 標準入力と標準出力しか無いからな。出来ることは自ずと限られてくる。
そこでだ、画面同期('?')や出力位置設定('X','Y')といったゲーム用命令を追加した拡張BF
"a brainf**k console develop environment for game" (ABCDEFG)
というのを考えた。
お前ら実装してくれていいぞ。
そこでだ、画面同期('?')や出力位置設定('X','Y')といったゲーム用命令を追加した拡張BF
"a brainf**k console develop environment for game" (ABCDEFG)
というのを考えた。
お前ら実装してくれていいぞ。
460デフォルトの名無しさん
2012/03/17(土) 10:51:14.07 標準入出力があればXと通信できる
461デフォルトの名無しさん
2012/03/17(土) 11:26:35.24 お前ABCDEFGが言いたかっただけちゃうんかと
462デフォルトの名無しさん
2012/03/17(土) 14:05:06.19 エスケープシーケンスでいいじゃんね
463デフォルトの名無しさん
2012/04/20(金) 00:55:10.37 這い寄る混沌:「(」・ω・)」うー(/・ω・)/にゃー」でプログラムが書ける言語「Nyaruko」登場 - ねとらぼ
http://nlab.itmedia.co.jp/nl/articles/1204/19/news112.html
この手のネタは正直お腹いっぱいだけどまあ一応
http://nlab.itmedia.co.jp/nl/articles/1204/19/news112.html
この手のネタは正直お腹いっぱいだけどまあ一応
464デフォルトの名無しさん
2012/04/28(土) 09:01:42.47465デフォルトの名無しさん
2012/06/29(金) 23:15:40.90 BFのほかにミニマルな言語ってないのかね
466デフォルトの名無しさん
2012/06/30(土) 00:44:26.73 unlambdaとかpure lispとか。
467デフォルトの名無しさん
2012/06/30(土) 02:16:07.04 Grassとか。
468デフォルトの名無しさん
2012/06/30(土) 15:20:20.63 lazy-Kのiotaとかjotとか
469デフォルトの名無しさん
2012/07/02(月) 02:52:05.32 ttp://code.google.com/p/zozotez
bfで書いた pure lispなんてのもあるんね
bfで書いた pure lispなんてのもあるんね
470デフォルトの名無しさん
2012/07/27(金) 05:29:25.22471デフォルトの名無しさん
2012/07/27(金) 05:55:58.63 なくもない。
が、今は余裕がないので
暇になったら貰う。
が、今は余裕がないので
暇になったら貰う。
473デフォルトの名無しさん
2012/07/30(月) 16:08:41.10 ttp://www.hevanet.com/cristofd/brainfuck/dbfi.b
なんでインタプリタとして作動するのかだれか解説してください
なんでインタプリタとして作動するのかだれか解説してください
474デフォルトの名無しさん
2012/07/30(月) 18:27:46.26 ここに解説があるよ
http://www.hevanet.com/cristofd/08.html
http://www.hevanet.com/cristofd/08.html
475デフォルトの名無しさん
2012/07/30(月) 22:08:46.02 >>474
thx
thx
476470
2012/08/01(水) 09:14:17.07 http://www.dotup.org/uploda/www.dotup.org3262233.7z.html
ステップ実行,ブレーク,コンソール出力とかできます.
メモリは勝手にダンプします.HEXとASCII文字(21-7E)で1行に8つずつ吐きます.
実行した命令の数を吐きます.かかった時間も吐きます.
入力は,事前にたくさん打っとけば,なくなるまで一時停止せずに使います.何も入力されていなければ一時停止します.
Cっぽい擬似コードも吐きます.
ステップ実行,ブレーク,コンソール出力とかできます.
メモリは勝手にダンプします.HEXとASCII文字(21-7E)で1行に8つずつ吐きます.
実行した命令の数を吐きます.かかった時間も吐きます.
入力は,事前にたくさん打っとけば,なくなるまで一時停止せずに使います.何も入力されていなければ一時停止します.
Cっぽい擬似コードも吐きます.
477デフォルトの名無しさん
2012/08/29(水) 15:11:57.69478デフォルトの名無しさん
2012/11/24(土) 23:06:48.77 +++++[>++>+++[<]>-]>[<+++++>>+++
++>+++<<-]<[>++<-]+++[>>++<<-]>>+.<+.<+
++[>++<-]>+..<++[>+<-]>+.>>++.[<]++
+++[>>+++<<-]>>.<.<++[>++<-]>-.>>>++
+[<<<-->>>-]<<<.<++++[>--<-]>.>>[<+>-]++[<-->-]<.
やっとできた(´・ω・`)
++>+++<<-]<[>++<-]+++[>>++<<-]>>+.<+.<+
++[>++<-]>+..<++[>+<-]>+.>>++.[<]++
+++[>>+++<<-]>>.<.<++[>++<-]>-.>>>++
+[<<<-->>>-]<<<.<++++[>--<-]>.>>[<+>-]++[<-->-]<.
やっとできた(´・ω・`)
479デフォルトの名無しさん
2012/11/25(日) 00:27:44.86 ++++[>+++<-]>[<+++++++>->+++++<]+
+[<-->-]>[<++>>++<->-<]++++[>>+++
++<<-]>[<++>-]>[<<->+>-]+++[>++
+<-]>+<<[>>+<<-]>>[<+<+[>]<-]<[<]>.>>--
-.>++>>++++[>++<-]>[<++>-]<[<+>-]<.<.[<]>.>
>.>>.<.[<]>.>>.[<]>.>>.>>.[<]>.>>.>.[<]>.[>]+
+[<<<++>>>-]<<<.[>]+++[[<]>>--[>]<-]<[<]>>.[>]+
++[<<<++[>]<-]<<<+.[<]>++.>>---.[>]>++
++[<++++>-][[<]>+[>]<-]<[[<]>+[>]<-]<[<]>+.++.
+[<-->-]>[<++>>++<->-<]++++[>>+++
++<<-]>[<++>-]>[<<->+>-]+++[>++
+<-]>+<<[>>+<<-]>>[<+<+[>]<-]<[<]>.>>--
-.>++>>++++[>++<-]>[<++>-]<[<+>-]<.<.[<]>.>
>.>>.<.[<]>.>>.[<]>.>>.>>.[<]>.>>.>.[<]>.[>]+
+[<<<++>>>-]<<<.[>]+++[[<]>>--[>]<-]<[<]>>.[>]+
++[<<<++[>]<-]<<<+.[<]>++.>>---.[>]>++
++[<++++>-][[<]>+[>]<-]<[[<]>+[>]<-]<[<]>+.++.
480デフォルトの名無しさん
2012/11/26(月) 21:01:14.60481デフォルトの名無しさん
2012/11/26(月) 21:13:54.07 JavaScriptをBFで書いたのかと思って期待したじゃないか
482デフォルトの名無しさん
2012/12/27(木) 21:09:24.77 そろそろ実用的なライブラリを
つくれうぜ
つくれうぜ
483デフォルトの名無しさん
2012/12/27(木) 21:33:56.78 何番地と何番地を引数にして何番地に返すってか?
484デフォルトの名無しさん
2012/12/31(月) 01:42:33.47 実行環境で一番おすすめのってどれ?
ぐぐったらたくさん見つかるのだけどどれもイマイチ
ぐぐったらたくさん見つかるのだけどどれもイマイチ
485デフォルトの名無しさん
2012/12/31(月) 01:51:12.51486デフォルトの名無しさん
2012/12/31(月) 03:03:23.04 ttp://4mhz.de/bfdev.html
487デフォルトの名無しさん
2012/12/31(月) 13:03:46.90 brainfuckでbrainfuckインタープリタを作ってみた
488デフォルトの名無しさん
2012/12/31(月) 13:18:52.64489デフォルトの名無しさん
2013/01/09(水) 05:22:09.66 部室の入り口にbrainf*ckのコードが書いてあった
490デフォルトの名無しさん
2013/01/09(水) 21:44:15.84 >>489
うp
うp
491デフォルトの名無しさん
2013/01/22(火) 23:39:43.75 変形版Brainfuck
ジャンプ先のプログラムカウンタの値を記憶するためのスタックを用意しておく
> ポインタをインクリメント
< ポインタをデクリメント
+ ポインタが示すメモリ位置のデータをインクリメント
- ポインタが示すメモリ位置のデータをデクリメント
. ポインタが示すメモリ位置のデータを出力
, ポインタが示すメモリ位置のデータに入力
* 現在のプログラムカウンタの値をスタックに入れる
/ ポインタが示すメモリ位置のデータがヌルでなければ、スタックから取り出した値までジャンプ
ヌルならばスタックから値を抜き去り、次の命令にジャンプ
本家BFの場合は対応する括弧を調べる作業が必要だが変形版だとその必要はない
そのかわり後方へのジャンプはできないが、原理的には本家と同じくチューリング完全(…だと思う)
ジャンプ先のプログラムカウンタの値を記憶するためのスタックを用意しておく
> ポインタをインクリメント
< ポインタをデクリメント
+ ポインタが示すメモリ位置のデータをインクリメント
- ポインタが示すメモリ位置のデータをデクリメント
. ポインタが示すメモリ位置のデータを出力
, ポインタが示すメモリ位置のデータに入力
* 現在のプログラムカウンタの値をスタックに入れる
/ ポインタが示すメモリ位置のデータがヌルでなければ、スタックから取り出した値までジャンプ
ヌルならばスタックから値を抜き去り、次の命令にジャンプ
本家BFの場合は対応する括弧を調べる作業が必要だが変形版だとその必要はない
そのかわり後方へのジャンプはできないが、原理的には本家と同じくチューリング完全(…だと思う)
492デフォルトの名無しさん
2013/04/05(金) 03:22:33.38 ぼくもはじめます
493デフォルトの名無しさん
2013/04/13(土) 20:04:41.89 >>491
後方ジャンプがないとチューリング完全にならないと思う
後方ジャンプがないとチューリング完全にならないと思う
494デフォルトの名無しさん
2013/05/04(土) 01:56:17.45 代入式を導入してみたい
495デフォルトの名無しさん
2013/05/05(日) 18:18:52.80 どこになにを代入すんだよ
496デフォルトの名無しさん
2013/05/05(日) 20:44:08.00 =(>>)
二つ後の値を現在の場所に代入
とか
二つ後の値を現在の場所に代入
とか
497デフォルトの名無しさん
2013/05/05(日) 21:43:34.84 いっそのこと膨大な糖衣構文を作ったほうがいいかと
498デフォルトの名無しさん
2013/05/05(日) 21:51:36.40 "Syntactic sugar causes cancer of the semicolon."
499デフォルトの名無しさん
2013/05/05(日) 21:55:07.84 (>)|(>>)
1つ後の値と二つ後の値のビット論理和を現在の場所に代入
(>)||(>>)
ビット論理和じゃなくて普通の論理和
1つ後の値と二つ後の値のビット論理和を現在の場所に代入
(>)||(>>)
ビット論理和じゃなくて普通の論理和
500デフォルトの名無しさん
2013/05/05(日) 21:59:04.74 (>)|(>>))
501デフォルトの名無しさん
2013/05/05(日) 22:00:24.43 ((>)|(>>))|((<<)|(<))
1つ後の値と二つ後の値のビット論理和と
2つ前の値と一つ前の値のビット論理和の
ビット論理和を現在の場所に代入
1つ後の値と二つ後の値のビット論理和と
2つ前の値と一つ前の値のビット論理和の
ビット論理和を現在の場所に代入
502デフォルトの名無しさん
2013/05/05(日) 22:02:34.14 ([[[[[)<
503デフォルトの名無しさん
2013/05/05(日) 22:14:45.86 Error: No right blanket
504デフォルトの名無しさん
2013/05/05(日) 22:40:48.91 Use newspaper, instead.
505デフォルトの名無しさん
2013/05/05(日) 22:52:05.37 ([[[[[)< >(]]]]])
506デフォルトの名無しさん
2013/05/06(月) 00:41:08.24 メモリフィールドが階層的になってて
特定の番地を全ての階層で同期とかできると楽しそう
特定の番地を全ての階層で同期とかできると楽しそう
507デフォルトの名無しさん
2013/05/06(月) 08:26:09.23 オブジェクト指向のBrainFuckとか作れないかな?
508デフォルトの名無しさん
2013/05/06(月) 08:31:01.82 コンパイラ大きくしたら意味無いじゃん(至言)
509デフォルトの名無しさん
2013/05/06(月) 09:40:04.34 プリプロセッサを巨大化させよう(提案)
510デフォルトの名無しさん
2013/05/06(月) 13:55:57.84 fork機能つけようぜ
511デフォルトの名無しさん
2013/05/06(月) 19:27:05.67 brainfuck拡張するなら既存の言語でいいじゃん?
512デフォルトの名無しさん
2013/05/06(月) 19:33:06.10 ぐぬぬ
513デフォルトの名無しさん
2013/05/07(火) 03:27:27.06 ぐ ポインタをインクリメント
ぬ ポインタをデクリメント
ぬ ポインタをデクリメント
514デフォルトの名無しさん
2013/05/10(金) 21:00:06.63 入力された文字列の文字数の取得なんてできるんですかね
515デフォルトの名無しさん
2013/05/10(金) 21:04:10.53 [;>+<].
わかんね
そもそもint[]の要素数とか無いだろ
わかんね
そもそもint[]の要素数とか無いだろ
516デフォルトの名無しさん
2013/05/11(土) 01:48:40.71 文字入力は入力された一文字をポインタが指すメモリに代入するだけだろ
文字列を入力しているのは処理系がバッファを使ってるだけなんでは
文字列を入力しているのは処理系がバッファを使ってるだけなんでは
517デフォルトの名無しさん
2013/05/11(土) 20:01:40.22518デフォルトの名無しさん
2013/05/28(火) 14:26:09.78519デフォルトの名無しさん
2013/05/28(火) 21:10:00.01 +[+]
こんなんでいいの?
こんなんでいいの?
520デフォルトの名無しさん
2013/05/28(火) 23:01:12.42 文字入力は呼び出し側の責任としても
ループ回数はコード内に書かれるべき…じゃないのか
ループ回数はコード内に書かれるべき…じゃないのか
521デフォルトの名無しさん
2013/11/07(木) 04:13:05.65 BFのコンパイラ書いているのですが、最適化の議論ってどこかにありますか。
思いついて実装したのは、
@連続する+-や<>をまとめる(これは自明。>>>>> をadd r0, #5 にするとか)
Aメモリからレジスタに値をロード済みかを覚えておいてロード命令を減らす
です。
考えているだけのは、ループの頭でポインタの位置が不変かを判断し、ポインタの移動範囲を検出して、レジスタに割り当てるというものです。
例えば[>+<-]のようなループの場合、ポインタは当初の値(0)と次の値(+1)にしか移動しないので、これらの指すデータをレジスタに割り当て、
ループ脱出時にメモリに書き戻してやればいいかなと考えています。
動的コード生成をしているので軽い処理がいいのですがそうでないのも知りたいです。
対象CPUはARMで、使用マシンはなぜかHP50gっていうグラフ電卓です。
思いついて実装したのは、
@連続する+-や<>をまとめる(これは自明。>>>>> をadd r0, #5 にするとか)
Aメモリからレジスタに値をロード済みかを覚えておいてロード命令を減らす
です。
考えているだけのは、ループの頭でポインタの位置が不変かを判断し、ポインタの移動範囲を検出して、レジスタに割り当てるというものです。
例えば[>+<-]のようなループの場合、ポインタは当初の値(0)と次の値(+1)にしか移動しないので、これらの指すデータをレジスタに割り当て、
ループ脱出時にメモリに書き戻してやればいいかなと考えています。
動的コード生成をしているので軽い処理がいいのですがそうでないのも知りたいです。
対象CPUはARMで、使用マシンはなぜかHP50gっていうグラフ電卓です。
522デフォルトの名無しさん
2013/11/07(木) 12:32:42.32 面白そうなお題だな。
空き時間に考えてみよう。
空き時間に考えてみよう。
523デフォルトの名無しさん
2013/11/07(木) 12:45:19.07 いっそC++へのトランスレータにして、後はC++コンパイラの最適化に任せるのはどうだろう。
524デフォルトの名無しさん
2013/11/07(木) 13:18:00.81 >522 アイデアが出たらぜひ教えて下さい。
>523 それって既にあるのでは。BFでプログラムするのと同様でパズルみたいなものと思ってください。
[>+<-]をコンパイルした実行命令数(N=ループ回数)
@素朴版 12N+3
Aロード最適化 11N+3
B>+< を最適化 9N+3
Cレジスタ最適化 5N+6
D手動コンパイル 4N+6
詳細は、
http://pastebin.com/pk8fST8h
レジスタ割当:
r0: 汎用
r1: ポインタ
r2: [r1, #1]
Aはr0と[r1]がエイリアスになっているかを覚えてロード命令を削減
Bは>+<のようなパターンでポインタのinc/decを省く。
CはAに加えてr2と[r1,#1]をエイリアスにする。
Dは自動化は考えずに手でガリガリ記述
>523 それって既にあるのでは。BFでプログラムするのと同様でパズルみたいなものと思ってください。
[>+<-]をコンパイルした実行命令数(N=ループ回数)
@素朴版 12N+3
Aロード最適化 11N+3
B>+< を最適化 9N+3
Cレジスタ最適化 5N+6
D手動コンパイル 4N+6
詳細は、
http://pastebin.com/pk8fST8h
レジスタ割当:
r0: 汎用
r1: ポインタ
r2: [r1, #1]
Aはr0と[r1]がエイリアスになっているかを覚えてロード命令を削減
Bは>+<のようなパターンでポインタのinc/decを省く。
CはAに加えてr2と[r1,#1]をエイリアスにする。
Dは自動化は考えずに手でガリガリ記述
525524
2013/11/07(木) 15:18:20.89 脳内コンパイラがこんなコードを生成しました。
ローカルな最適化では定数部を除いてこれ以上は無理そうですね。
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r0, #1
b l1
l0:
add r2, #1
subs r0, #1
l1:
bne l0
strb r0, [r1]
strb r2, [r1, #1]
実行命令数 7 + 3N
本来なら、
ldrb r0, [r1]
ldrb r2, [r1, #1]
add r2, r0
strb r2, [r1, #1]
mov r0, #0
strb r0, [r1]
実行命令数 6
とか定数命令でできるのですが、、、
ローカルな最適化では定数部を除いてこれ以上は無理そうですね。
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r0, #1
b l1
l0:
add r2, #1
subs r0, #1
l1:
bne l0
strb r0, [r1]
strb r2, [r1, #1]
実行命令数 7 + 3N
本来なら、
ldrb r0, [r1]
ldrb r2, [r1, #1]
add r2, r0
strb r2, [r1, #1]
mov r0, #0
strb r0, [r1]
実行命令数 6
とか定数命令でできるのですが、、、
526名無し募集中。。。
2014/06/08(日) 09:57:05.09ID:TcDR/+bL 万能言語ならぬ全能言語
world* CreateWorld (darkness* Darkness) {
world* World = new World(Darkness);
World->Day = 1;
light* Light = CreateLight();
if (isGood(Light)) add(World, Light);
else throw BadCreation(Light);
Light->Name = "Day";
Darkness->Name = "Night";
++(World->Day); // World->Day = 2
/* 中略 */
bone* AdamsRib = (Adam->Rib[12])->Remove();
woman* Eve = CreateWoman(AdamsRib);
Eve->Name = "Eve";
add(World, Eve);
++(World->Day); // World->Day = 7
World->Sabbath->Interval = 7;
rest();
return World;
}
world* CreateWorld (darkness* Darkness) {
world* World = new World(Darkness);
World->Day = 1;
light* Light = CreateLight();
if (isGood(Light)) add(World, Light);
else throw BadCreation(Light);
Light->Name = "Day";
Darkness->Name = "Night";
++(World->Day); // World->Day = 2
/* 中略 */
bone* AdamsRib = (Adam->Rib[12])->Remove();
woman* Eve = CreateWoman(AdamsRib);
Eve->Name = "Eve";
add(World, Eve);
++(World->Day); // World->Day = 7
World->Sabbath->Interval = 7;
rest();
return World;
}
527デフォルトの名無しさん
2014/06/08(日) 09:59:54.00ID:083ejc+8 誤爆申し訳ない
世界はBrainFuckで記述されたのかもしれない
世界はBrainFuckで記述されたのかもしれない
528デフォルトの名無しさん
2014/06/08(日) 10:32:43.54ID:397riybv だれか BrainFuck の LLVM フロントエンド作らないかな
529デフォルトの名無しさん
2014/06/08(日) 11:29:37.30ID:qU5LgJI1 神はこれを見てよしとされた。はassert文
530デフォルトの名無しさん
2014/06/20(金) 07:05:56.84ID:ha/mjnLs BFオワタ・・・
http://pc.watch.impress.co.jp/docs/news/yajiuma/20140620_654252.html
IT'S SHOWTIME
HEY CHRISTMAS TREE isLessThan10
YOU SET US UP @NO PROBLEMO
HEY CHRISTMAS TREE n
YOU SET US UP 0
STICK AROUND isLessThan10
GET TO THE CHOPPER n
HERE IS MY INVITATION n
GET UP 1
ENOUGH TALK
TALK TO THE HAND n
GET TO THE CHOPPER isLessThan10
HERE IS MY INVITATION 10
LET OFF SOME STEAM BENNET n
ENOUGH TALK
CHILL
YOU HAVE BEEN TERMINATED
http://pc.watch.impress.co.jp/docs/news/yajiuma/20140620_654252.html
IT'S SHOWTIME
HEY CHRISTMAS TREE isLessThan10
YOU SET US UP @NO PROBLEMO
HEY CHRISTMAS TREE n
YOU SET US UP 0
STICK AROUND isLessThan10
GET TO THE CHOPPER n
HERE IS MY INVITATION n
GET UP 1
ENOUGH TALK
TALK TO THE HAND n
GET TO THE CHOPPER isLessThan10
HERE IS MY INVITATION 10
LET OFF SOME STEAM BENNET n
ENOUGH TALK
CHILL
YOU HAVE BEEN TERMINATED
531デフォルトの名無しさん
2014/08/29(金) 21:49:14.52ID:ttFFbJAa うつくしくない
532デフォルトの名無しさん
2015/12/15(火) 12:43:11.90ID:Qvgua2wU えst
533デフォルトの名無しさん
2016/03/09(水) 22:33:27.65ID:m6u1yQ86534デフォルトの名無しさん
2016/03/29(火) 09:32:40.37ID:/c8bAcK4 サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
535デフォルトの名無しさん
2016/08/07(日) 17:02:49.48ID:sg2m+nAp536デフォルトの名無しさん
2017/03/09(木) 20:43:21.75ID:2U142ZF0 BFでアッカーマン関数実装できる猛者はいないか?
537デフォルトの名無しさん
2018/05/23(水) 23:01:23.24ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
67IJR
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
67IJR
538デフォルトの名無しさん
2018/07/04(水) 23:06:42.04ID:gFgZc5FG 2Q3
539デフォルトの名無しさん
2018/07/06(金) 12:40:55.73ID:uTPDH9XV 67IJR
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- この時間のケンモメン、軽く11人以上はおるな [989870298]
- 性欲強すぎてほぼ毎日会社のオフィスでシコってるんやけど、これって病気なん?
