◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:BrainFuck Part.3 <[+-.,]>YouTube動画>4本 ニコニコ動画>1本 ->画像>6枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1231384158/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
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(ブレインファック)はプログラミング言語の一つ。 名称が良いものではないため、Brainf*ckと呼称するのが一般的。 開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。 実際、Müllerが開発したコンパイラのサイズは123バイト(キロバイトではない!)、 インタプリタは98バイトとなっている。 処理系には十分なサイズのbyte型配列とその要素のひとつを指すポインタがある。 ポインタを「>」「<」命令で移動させながら、そのポインタが指す値を増減させて 処理を進めていく(Hello world参照)。 実用性はほとんど無いように思われるが、これだけでチューリングマシンで実行可能な あらゆるプログラムが記述できる(チューリング完全である)とされている。
こんな本が出てるらしい
http://book.mycom.co.jp/book/978-4-8399-2784-4/978-4-8399-2784-4.shtml > あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、
> 空白だけで構成されるプログラミング言語があるのをご存じだろうか。
> 本書では、そんな奇妙な言語(Esoteric Language)を題材に
> プログラミング言語の作り方を解説します。
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
Amazon.co.jp: Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~: 原 悠: 本
http://www.amazon.co.jp/dp/4839927847 >内容紹介
>あなたは「+-><.,[]」の8つの記号しかないプログラミング言語や、空白だけで構成されるプログラミング言語があるのをご存じだろうか。
>本書では、そんな奇妙な言語(Esoteric Language)を題材にプログラミング言語の作り方を解説します。
[esobook] Brainf*ckとWhitespaceの本を書きましたwwww - Greenbear Diary (2008-12-08)
http://mono.kmc.gr.jp/~yhara/d/?date=20081208#p01 > 第一部ではHQ9+から始まり、Brainf*ck、Whitespaceを題材にインタプリタ・VM方式の処理系を作る
> 第二部では本書オリジナル言語であるStarry、Bolicを題材に新しいプログラミング言語の作り方を解説
> 付録では本編で取り上げられなかった13個のEsoteric Languageをちょっとずつ紹介 (Grassもあるよ!)
punctfuck.rb
$___,@_,@__,$_=(@@__="")=~//,?#=~/$/,->(_){_<(__="####"=~/$/)**__&&(@@__<<
_;@__[_+@_])},[*$<]*@@__;@__[$___];$____,$_,@___,$__,@__=$_[@_+($_+?!=~/!/
)..-@_],$`,[],[],->(_){(__=$_[_];__=~/[><+\-\.,]/?$__<<$_[_]:__==?[?(@___,
$__=$__,[]):__==?]?$__=@___<<$__:__==$\?$\:_)&&@__[_+@_]};@__[$___];@___,
$_,@@_,@__=[],[],$___,->(_){$_[@@_]||=$___;({?>=>->{@@_+=@_},?<=>->{@@_-=
@_},?+=>->{$_[@@_]+=@_},?-=>->{$_[@@_]-=@_},?.=>->{$><<@@__[$_[@@_]]},?,=>
->{$____=~/^./&&($____=$';$_[@@_]=@@__=~/#{((__,=[*?/..?:]&[$&];__)||(__,=
[*?@...?[]&[$&];__)||(__,=[*?`...?{]&[$&];__))&&__!=?{?$&:'\\'+$&}/)},$\=>
->{$\}}[$__[_]]||->{$_[@@_]!=$___&&(@___<<[$__,_-@_];$__=$__[_];@__[$___]
*@___,($__,_)=@___);""})[]&&@__[_+@_]};@__[$___]
■[Ruby] 記号だけで brainfuck インタプリタ
http://d.hatena.ne.jp/ku-ma-me/20080626/p1 http://www.hevanet.com/cristofd/brainfuck/ VIDEO #…今指すメモリに西暦の上2桁入力
次のメモリに下2桁
次のメモリに月入力
次のメモリに日入力
#
> >[> > >+<<<-]> > >+[<+++++++++++++>-]+++++<[> >+>+<<<-]> > >[<<<+> > >-]<<[>>
+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[<<<<[> >+>+<<<-]> >
>[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]> >[<<<<+> > > >-]<<<
[-]<<<<<<++[> > > > >+<<<<<-]> >+++++[> > >+<<<-]> > > >+++++++<[> >+>+<<<-]> >
>[<<<+> > >-]<<[> >+>+<<<-]> > >[<<<+> > >-]<<[->-> >-<<[[>+<-]> >+<<]>[<+>-]>[
<<<<[> >+>+<<<-]> > >[<<<+> > >-]> >+<+]<<<]>[>+<-]<<[>+>+<<-]>[<+>-]> >[<->-]>
>[<<<<+> > > >-]<<++++++++[<++++++>-]<.
今日の曜日を計算
0…月曜日 1…火曜日 ・・・ 6…日曜日
閏年の厳密な計算が面倒だったので2008~2011までしか通用しないのと、
除算は前スレの誰かのを流用しただけなので、もっと短くできる。(メモリを破壊してもいいので)
http://lab.moyo.biz/garage/brainfuck/index.xsp http://brainfuck.sourceforge.net/results0.html VIDEO http://www.jmuk.org/diary/2007/03/01/0 >shebang 行の解釈は execve(2)、つまりカーネルが行なう。
>やったことがないなら man execve してみるといいと思う。ちゃんと解説してあります。
だと。シェルはカーネルに丸投げするだけみたいだ。
つまり、1行目を除いてからアプリに投げるカーネルを作ってやれば、おk(違
#勉強になった。
http://groups.google.co.jp/group/brainfunck?hl=ja >++++++++++[>+++++
+++>+++++++++++>++
++++++++++[<]>-]>--
.>>---.<--..<++.>+++.
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!"); }
>++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++.. ..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.> >.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<.. ..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++ +.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<< +++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>.. <.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...> .....<..>..<...>..
GZip+Base64 H4sICFJPkEYAAIGfdzVLMjdCRnIyAJWV63ECMQyE/9/MVSKUCjRuxOP+28jntc6CC0wSAcaWVmu9 Dlprj9YM6bFWX9J88I7wfplrRS6zQeDdIh5C2XksimIRg8doXR+z4ikqAJZsHBC0HpLzYJFvlw1O 1g4QlsCJ2xciMAhkOsILTJ9QCHk1jE/hGTYL//vSfVQGEMygz4PMuH7lwd4b6SDAbVTGlS9kYCc4 PcE7O4UeM0YREztwpaM4MyXkusDHVLUsCQifBNMGYJQQ44apQgmDstTdLz1hpzKUecJsS1dnOkFm WJGNHChzLobi037sC4d/bth5fGhZ9YsVk4dr2SvxbnS7vNY87j7da9VupZLVohAAoiCpPo89eYS8 mjA3su6aIcqAwCZN8gxobrdzhJF7ew5BGFs8bB5EOldpsICpTZZljRvkXeO35xHBVW/rpnN1Evv7 7lXPLLtvegrL9e4mYtdFsBrqbLdY8AMsV2nkAIrpGQswiVCqMkAmCBG9UkAgpb96iVlgdLkXC1ln nXZ98utDld7U6Pl6Zf1aiIoI+wX9T9wwVuRycLmjgQIVekuFiJbOpcn5cDSzplINPYU2/aoW9bOd gkkpOslnf3R7ISZ1wGL1zFwV8szWfv6OKY0vNa+odF7Su2HSPD5++ZsZ31FFeUKKBgAA
= で式の終了。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っていう呼び方を推奨する。 因みに日本語訳は、”魚の骨”だ。解説は要らないと思う。
>>1 +++++++++[>+++[>+++++<-]<-]>>++.<++++++[>+++++++<-]>.
すみませんoctaveのプログラムについて聞きたいのですが・・・ どこで聞いたらいいでしょうか??この板にくるのは初めてなもんでorz スレチですみません、誰か心やさしい人教えてください
前スレでBFの出力すぐ見たいっていう話があったので ブックマークレット作ってみることにした
テストコード +++++++++++++++++++++++++++++++++++++++++++++++++.
BFコードが無限ループする前にJavaScriptが無限ループしてます orz
無限ループする無限ループするかどうか判定するブックマークレット
無限ループするかどうか判定するブックマークレットが無限ループするか判定させてみよう
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());
ブックマークを作成してURLに上の改行取り除いたものをまるごと保存してください その後BFコードを選択してブックマークを選ぶと実行されます デフォルトでデバッグモードで起動しますがデバッグをキャンセルすると その場所から残りをリアルタイムで実行されます とりあえず FireFox3 では動いた IE6 だと JavaScript 単体では動くがブックマークレットにすると動かない たぶんどこかの文字をエスケープする必要があると思う
コントロールキャラクタ等は全部「.」表示されます 2バイトコードは試したけどまだうまくいっていないので 同様に「.」表示されます
alertのpopupじゃなくてwindowのpopupしようとしたら
popupブロックに引っ掛かったのでとりあえずalertにした感じ
改良予定としてはpopupじゃなく画面分割でデバッグ出来て
ここみたいに
http://cfs.maxn.jp/neta/onlineBrainFuck.html 実行位置が目視で判るようにしつつワークレジスタも表示出来るといいですね
FireFoxだと動いてIEで動かないときってFireBugでデバッグ出来ないから困りますね orz
FizzBuzzとか時間掛かるコードだと無限ループしてなくても FireFoxのwatchdogにつかまって警告でてワロス
>>33 乙
IE6のブックマークレットの文字数制限
http://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限定)
http://d.hatena.ne.jp/hasegawayosuke/20080116/p1 (この設定はセキュリティ的に心配あり)
頑張って文字数削るかIE6を捨てよう
>>32 バグというか仕様の解釈の違いだろうけど
b[m]++; → ++b[m]&=255;
b[m]--; → --b[m]&=255;
o.push(a.charAt(b[m] % 256)); → o.push(a.charAt(b[m]));
の方が安定するかもしれない
(無限ループもどきが減ると思う)
もうひとつあった 0の状態で[]に突入せずスルーするケースで(そういう書き方が存在するんだね)落ちてる if(c=='['){}中の if(!b[m])のelse節にs.push(i);があるけどそこは取ってif(!b[m])の前に移す if(c=='['){s.push(i);if(!b[m])
よく見たらその中のwhile中のcontinueが変 JavaScriptスレ池とか言われそうなので 一通り直したらまたうpするかも知れません
やはり内側のcontinueが外まで抜けることを期待してたバグだった pushの位置が原因じゃなかったんだな まさにBFコードが無限ループする前にJavaScriptが無限(ry いままで良く動いてたなwww
という訳でバグ修正版う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());
最初のconfirmはうざければ取っても問題ないと思う 未定義命令もエラー出さずにスキップして良いかもしれない FizzBuzzもちゃんと一瞬で終わるようになったよ ++++++[->++++> >+>+>-<<<<<]>[<++++> >+++>++++> >+++>+ ++++>+++++> > > > > >++> >++<<<<<<<<<<<<<<-]<++++>+++ >-->+++>-> >--->++> > >+++++[->++>++<<]<<<<<<<<<<[->- [> > > > > > >]>[<+++>.>.> > > >..> > >+<]<<<<<-[> > > >]>[<+ ++++>.>.>..> > >+<]> > > >+<-[<<<]<[[-<<+> >]> > >+>+<<<<< <[-> >+>+>-<<<<]<]>>[[-]<]>[> > >[>.<<.<<<]<[.<<<<]>]>.<<<< <<<<<<<]
エラー処理とか
>>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
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 に似てきた(入力は無いみたいだけど)
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文字くらい削れた。
>>48 この大きさだとIE6のbookmarkletに入りますかね
>>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がない。
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~ たちよみしてきた Brainfuck じゃなくて Brainfsck だっていうのは本当なんだろうか
本家Wikipediaでbrainfsckで検索するとbrainfuckへ誘導されるから 元々あったネタなんだなと思ったんだけどどうなんだろ。
>>51 j=s=[];をj=[];s=[];にしたら直った。
でもプロポーショナルフォントで表示されて残念なことになってたw
「brainfsck -brainfuck」でぐぐると7万件くらい引っかかるから あっちではそこそこ知られてるネタなんだと思うけど 出所はわからなかった
>>50 >>55 IE6でも動きました!!やっと制限がなくなって嬉しいです!!
すぐ結果が見れて素敵です
あと必要なのはUNICODE対応くらいでしょうか
++[>++[>++>++<<-]<-] を食わせてみたら本来 00 00 08 08 となるべきところ なにもでなかった
>>+++++[-<++++++>]<+[-<++>]<.>+++[-<------>]<-.........>++++++[-<++++++++>]<
.>>+++++++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------...........
.>+++[-<++++++>]<+.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------
--.+++.-........+.---...........>+++++++++++[-<--->]<.>+++++++++++[-<+++>]<.
...+++.++++++++++++++++.>+++[-<------>]<-...>++++++[-<++++++++>]<.>>++++++++
+++[-<++>]<+[-<-->]<.+++++++++++++++.---------------......+++++++++++++++++.
>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.---------------.+.++++++++++++++++
.>+++[-<------>]<-.............>++++++[-<++++++++>]<.>>+++++++++++[-<++>]<+[
-<-->]<.+++++++++++++++.---------------.....+++++++++++++++++.>+++++[-<+++++
+>]<+.>+++++++++++[-<--->]<.--------------.++++++++++++++++.>+++++++++++++[-
<---->]<.>+++++++++++[-<+++>]<.................>++++++[-<++++++++>]<.>>+++++
++++++[-<++>]<+[-<-->]<.+++++++++++++++.-----------------..>+++[-<++++++>]<+
.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--------------.---....+++.+++++++
+++++++++.>+++[-<------>]<-..........>++++++[-<++++++++>]<.>>+++++++++++[-<+
+>]<+[-<-->]<.+++++++++++++++.---------------.....>+++++++[-<----->]<.>+++++
++[-<+++++>]<.+++++++++++++++++.>+++++[-<++++++>]<+.>+++++++++++[-<--->]<.--
------------.>++++++[-<------>]<.
http://lowreal.net/logs/2006/09/04/3 >++++[<++++++++>-] // 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 >>59 >+++++++++[-<++++++++++++>]<+.--------.+++++++++++
++++.>+++[-<------>]<-.>+++++++++++++[-<----->]<.>
+++++++++++++++++[-<++>]<.++++.>++++++++++[-<-----
->]<.
>++++[<++++++++>-]>++++++++[<++++++>-]<++.<.> +.<.> ++.<.> ++.<.> >++ [<--->-]
<..<.> .++.<.> --.>++ [<+++>-]<.<.> >++ [<--->-]<.>++[<++++>-]<.<.> >++[<--->-]
<-.+.<.> -.>+++[<++>-]<+.<.> >++ [<--->-]<.--.<.> ++.++++.<.> ---.---.<.> +++.
-.<.> +.+++.<.> --.--.<.> ++.++++.<.> ---.-----.<.> +++++.+.<.> .>++ [<--->-]
<.<.> >++ [<+++>-]<.----.<.> ++++.++.<.> -.-----.<.> +++++.+.<.> .--.
http://labs.cybozu.co.jp/blog/takesako/2006/06/bpencode.html >++++[<++++++++>-]>+++++++[<++++++++>-]<+>+++++++++>>++++++++++[<++++++++++>-] <--[>[-]<[->+>+<<]>>[-<<+>>]<-[>[-]<<[->>+>+<<<]>>>[-<<<+>>>]<+[>>[-]>[-] <<[>+>+<<-]>>[<<+>>-]<>[-]+<[>-<[-]]>[-<<<<[->>+>>+<<<<]>>>>[-<<<<+>>>>]<<+>>] <<-<-]> >[-]+<[[-]>-< ]>[-<>>[-]+<<<<[-]+>>>]<<<-]>>>> >[-]+<[[-]>-< ] >[-<<<<<<<<.>>>[-]++++++[<<++++++++>>-]<<.>>++++++[<<-------->>-] <<<<.>>>>>>>>>]<<<<<<->>[-]<<<[->>+>+<<<]>>>[-<<<+>>>]<>+<[[-]>-<<<->>] >[-<<<+++++++++<->>>>]<<]
お、なんか賑わってるねぇ。 前DAT、前々DAT誰か持ってたら 保管庫でもつくっとくかな
+[<++>-] と +[-<++>] は意味的には同じですか?
++++[>++++[>+++++>++++>+++++>+++++<<<<-]<-]>>-----.>+.>+++.>-.
BFで書かれてるのかとワクワクしちゃったじゃないか…
置換ネタで、いいなぁって思うのは ソース見ても一見、大した意味のない文章に見える所だと思う。 だからやたら出回ってる置換ネタの九割は意味なし。 その点長門は秀逸
>>79 ++++++[>++++++<-]>[>+>+<<-]>--->>++++
+++++[<+++++++++>-]<--------------.++
+++++++++.---.+++++.---------------.++
++++++++++++.--.++++.----------------.
++++++++++++++++<.>
いい加減飽きただろうがどうしても置換ネタ > → r(right) < → l(left) + → p(plus) - → m(minus) [ → s(start) ] → e(end) . → o(output) , → i(input) BFの命令を上の表で対応する英字から始まる任意の英単語に置換して英文を作る。解釈の際に、記号や表で対応関係に無い英字から始まる英単語は無視される。 例) pineapple → + 例) She must go east. → [-] Hello, world!↓
普通に「読めない文字はスルーする」という従来通りの挙動でいいのでは
なんとか意味の通じる英文を・・・と考えての仕様だろうが 残念ながら君には50音版を作ってもらう
+ → E - → A > → T < → I [ → S ] → N . → R , → U
+ → いろはにほへと - → ちりぬるを > → わかよたれそ < → つねならむ [ → うゐのおくやま ] → けふこえて . → あさきゆめみし , → ゑひもせす 濁音・半濁音・小文字は清音と一緒 「ん」はスルー
ルール考えるのはいいけど、 それで自分でプログラム書いてみろってばさ。
+++[>+++<-]>[>+>+<<-]>->>++++++++++[<++++++++++>-]<------------.++++++<.>.<.>--.++<.>
_.。ャぁて丕刀フ7ゎ。._ ,.ィ炙ヲ㌍≠┴⇒弍j込ス>。 . ,ィ升ヲナ'´ `゙'<弖心、 . ;夕フア´ \ホi心. んfiУ ▽ij∧ 从j'Y ∨iハ . 斤W ㌣い |友カ }ソ川 . い叭 仄ガ . Wi从 从ノリ . ∀t△ ∧fリ/ ゙マじへ、 /リiУ \夊i㌧、_ ,.イ!刋/ `マ才i「≧ェ。。.。。っ夭テ少'゚ `゚'' ミ芝玉竺壬云=‐'´  ̄ ̄
個数が合っててもネスト構造がおかしかったら処理系によっては動かないだろ
あー言い間違えた。そうそうそういうことが言いたかった
というかム板じゃない他スレにも貼ってあったから無視したが これはコードだったのか
処理系によっては動くおかしなネスト構造ってどういうやつ?
[ ] ] [ [ ] とかじゃね 処理系によっては過剰の ] をプログラムの終了と解釈するとかもあるので そのような処理系の場合は正常に終了する
ん、ちょっと言い間違えた 終了するかはともかく、正常に実行される
BrainFuckでライブラリを書けば、どんな言語、どんな環境にも極めて簡単にポーティング可能! BrainFuckライブラリを充実させることこそ我々の急務ではないだろうか!
>>120 BrainFuckはチューリング完全だから、気合でなんとかすればよろし。
>>123 そうするとメタプログラミング
みたいになるんじゃないか?
中間言語→BFにコンパイルするコンパイラを作ればいいんじゃね 逆ポーランド記法な言語からのコンパイラならなんとかできるかな
>>125 だったらBFのソースを
全部その言語で書かなきゃいけなくなるんじゃ?
ついでにBrainFuckを逆アセンブル?してCソースにするコンパイラもよろしく。
もちろん可能な限り元のコードの意味を推測して、それらしいコードを復元してほしい。
前スレより
http://www.clifford.at/bfcpu/bfcomp.html A compiler for a c-like high-level language which generates brainf*ck code
>>139 それはチューリングマシンの説明で、ビジービーバーゲームとは違う。ビジービーバーの要点は
>停止するまでにテープに 1 を最も多く出力するような n-状態チューリングマシンを見つけ出そう、というゲーム
だよ。
>>140 だったらチューリングマシンで
1が多く出力される遷移関数を考えるってこと?
ビジービーバーゲームの説明はそれでおk。 普通はチューリングマシンでやるところをBrainFuckでやってみようと。
まず遷移関数をどうやって BFプログラムに変換するかが問題だな
状態数は、BFでいえばコードのバイト数と似たようなもんだよ。 だから、 同じバイト数のBFコードで、 より大きな10進数を標準出力に生成する こんな競技になる。
>>145 それだと無限ループになって
つまらないだろ
ビジービーバーゲームでのプログラムは停止しなきゃいけないんだ。 じゃなきゃ比較なんて出来ないからな。
じゃこれ [>+.] ポインタがオーバーフローすれば止まる
>>149 ビジービーバーを考えるときは、
テープの長さに限界は考えないよ。
後出しルールって言うか
>>138 のリンク先に全部書いてあるのに読んでないのが悪いんだと思うんだが
てか、一般的なBFの話をするなら無限長のテープじゃないとダメだろ 実装ではしょうがないかもしれないけどさ
そうそう、実際の処理系じゃなくて理想の処理系で動かさないと。
なあ、詳しい人教えてくれ。 ある100状態のチューリングマシンがあって、 そのチューリングマシンがΣ(100)ステップ後に停止したとする。 このチューリングマシンがΣ(100)ステップ後に停止することを証明しようとしたら、 その証明は少なくともΣ(100)文字程度のオーダーの長さになる。 これは正しい?
>>157 一番ゆるい条件を与えるならそうなるんじゃね。
オーダーは定数倍を無視するから。
遷移を全部書き出して示せばいいだけだからね。
++++++[>++++++<-]>[>+>+<<-]>--->>++++ +++++[<+++++++++>-]<--------------.++ +++++++++.---.+++++.---------------.++ ++++++++++++.--.++++.----------------. ++++++++++++++++<.>
俺的にBrainFuckの文法に最小限の拡張を加えて最大限パワーアップさせるには どうしたらいいか考えてみた結果次のようになった。 まず、メモリはテープではなく無限の高さを持つ2分木のようなものを想定。 L ポインタを2分木メモリの左の子へ移動 R ポインタを2分木メモリの右の子へ移動 U ポインタを2分木メモリの親へ移動 + BFと同様 - BFと同様 . BFと同様 , BFと同様 [ BFと同様 ] BFと同様 まあ、大体BFでlispのconsセルが使えるようなイメージ。
んで、最終的にアセンブリやCになる・・・と 拡張=BFの死なんだよな 過去ログの通り、拡張行為すればするほどBFの簡潔さが失われていき 別にBFを使う理由がなくなる
うだうだ言ってないでインタプリタとコンパイラかけ 500バイト以内で書けたら合格にしてやる
んが。既出なのか。ま、既出でも全然不思議ではないけど。
一応このスレの中はチェックしたつもりだったけど
前スレはチェックしてないんだよね。
>>168 のプログラム言語をBTBF(BinaryTree BrainFuck)と呼ぶとして、
BTBFのコードをBFのコードに変換するトランスレータを実装しろってのは
学生向け演習問題として良問じゃね?
コード短くする役に立つとすればこんなのかなぁ まあいらないけど x 直前のコマンドを*p回繰り返す * p=*p & *p=p c 最も近い前方の[にジャンプ b 最も近い後方の]にジャンプ
>>172 俺は拡張=BFの死とは思ってないんだよね。
シンプルさがBFの価値なのは同意だけど、
もっともシンプルなチューリング完全言語BFと
Cやlispといった高級言語の生産性の溝がどれだけあるかってのを
把握できるのもBFの存在価値だと思う。
だから「BF+α=lisp」のαの部分がどれだけあるのか、俺は興味があるです。
#どっちもチューリング完全だから等価って乱暴な議論はなしね。
純lispはBFと同じくらいシンプルだけど考え方が全然違うから そんな+α的な物はない
ないわけはない。 チューリング完全的に考えて。 極端な話、理屈の上ではBFでlispインタプリタは書けることになっている。 それがどれくらい大変か?と言う問題はある。 lispでBFインタプリタを書くのは簡単だけど、 BFでlispインタプリタを書くのはきつそう。
lispからbfに変換するプログラムは作れるんじゃないか?
LISPでBFのインタプリタが簡単ねえ 真面目にシンボルをASCIIのチャーチ数表現で取り扱えば同じかそれ以上に大変だと思うけどな
pure LISPだとBFよりもプログラム書くの難易度高いだろJK
よくみたら純lispって書いてあるな。 てっきりclispのつもりで話してた。
>>168 便利かどうか試しに実装してみようと思ったら疑問がいくつか。
・2分木メモリは値を持つの?持たないとしたらポインタがconsを指しているとき
入出力命令は何をすべき?
・+-で指すリニアなメモリとLRUで指す2分木メモリの空間はまったく別のもの?
ていうか+-廃止すべき?
自分的にはノーアイデアなんだけど、BFくらい最小のLispができそうですごく面白そうだとは思う。
まずはhello worldから始めろ プログラミング言語として使えないなら机上の空論
この板ではチューリング完全という言葉がたまに登場するが、 もちろん、このスレで使ってる人たちも、意味とか前提とか 分かって使ってるよね?
あ、<>と+-を勘違いしてた。<>の代わりにLRUということか。
入出力が便利になれば使い道はあると思うとかは考える でも、それじゃ駄目なんだよな BFとは別物として考えなきゃいけなくなる
BFってpure LISPほど純粋じゃないよな。 入出力命令なんてあるし。 ある意味入出力命令がシステムコールってことになるんじゃね。
>>193 それはbfが関数型言語じゃないから
純粋とか言う問題じゃないんじゃないか
BFのシンプルな体系を壊さずに拡張する方法としては 負の方向のメモリマッピングにコンソール(.,)以外の I/Oを割り当てることかな [-1]に数値をストアしておいて [-2]の位置で+-すると[-1]の回数beepとか [-3][-4]に数値をストアしておいて [-5]の位置で+-すると[-3][-4]の座標の白黒が反転するとか
入出力命令をin,outにすればいい >+++++++++[-<++++++++++>]<++++++, //in 60h
>>168 の提案した奴を作ってみたけど、面白い使い方がなかなか見つからないなあ。
実際のリスト構造はともかくとして、いろいろ遊んでみると、メモリ空間がL-UとR-Uの
2次元になった、という印象。可能性はすごく感じるので、なんとかしたいのだが。
消費メモリが定数なアルゴリズムだとBTBFの有り難味はないかもね。 実行中にバンバンnewするようなプログラムや複数の可変長配列を使うアルゴリズムが いくらか書きやすくなるんじゃないかとは思ってる。 あと、関数コールの機構もBFで実装するのはきつくても BTBFならもしかしたらBFよりずっと楽にいけんじゃね?
実装は既存のBF処理系に L: p*=2; R: p=p*2+1; U: p/=2 を付け加えて、ptrの初期値を1に修正するだけだな
ところで、2分木を綺麗にグラフィカルに表示するライブラリって何かいいのある?
そもそもBFで書かれたライブラリなんて存在するのか?
まずは整数の四則演算ライブラリからだな ライブラリというかコードスニペットレベル?
前スレであったみたいに どこのメモリに数値を入れて どこのメモリに答えが返ってくる って感じにすると良いんじゃない?
任意のシステムコールさえ呼べれば何とでもなる 敢えて関数呼び出し機構を命令に加える必要はない
文字列やポインタを渡さなくちゃならないシステムコールはどうするんだ
VRAMの上で走るBFを、 標準入出力から他のBFプロセスで制御すればいいんじゃね…?
それをBFの機能と言えるかが問題だな バイナリデータですらシステムコールが可能と言えてしまうぞ
BFのデータセグメントをVRAMに置けっ場解決するのか? ダブるバッファリングは無理か
OSにBF向けのインターフェースがあればいいわけだな 0番地に+すると1番地の番号のシステムコールを2,3,4,...番地の値を引数にして呼び出すみたいな
そうすればハードディスクとかメモリとかにアクセスできるな 解析とかも簡単になるんじゃない?
コード空間とメモリ空間が分離されてるからリンカやロダは不要
___ / \ / ⌒ ⌒\ / ,(⌒) (⌒)、\ ひとりSMセット買ったお | /// (__人__)/// | 今夜は楽しむおww \ ` ヽ_ノ / ヽ , __ , イ / |_"____ | l.. /l SMグッズ l ヽ 丶-.,/ |_________| /`ー、_ノ / / :: .|ミ| :: .|ミ| :::::::: ::::: ____ |ミ| :::: :: ,. -'"´ `¨ー 、 :: :: / ,,.-'" ヽ ヽ、 :: :: ,,.-'"_ r‐'" ,,.-'"` ヽ、 :: :: / ヾ ( _,,.-='==-、ヽ ヽ、 :: i へ___ ヽゝ=-'"/ _,,> ヽ :: ./ / > ='''"  ̄ ̄ ̄ ヽ :: / .<_ ノ''" ヽ i :: / i 人_ ノ .l :: ,' ' ,_,,ノエエエェェ了 / i じエ='='='" ', / :: ', (___,,..----U / :: ヽ、 __,,.. --------------i-'" :: ヽ、_ __ -_'"--''"ニニニニニニニニヽ :: `¨i三彡--''"´ ヽ :: / ヽ :: ┼ヽ -|r‐、. レ | / ヽ:: d⌒) ./| _ノ __ノ
perlでBrainfuckの処理系書いてみたんだが、 Brainfuckのプログラム書くより簡単でなんだか複雑な気分だ…
Brainfuckで日本語が扱えるようにはならないものか
そーすに記述したいってんでもあるまいし、扱えないことはないだろう?
ShiftJISなりUTF-8なりのバイト列を吐けばいいだけだよな
例えば、 : で、ポインタの指している値とその次のポインタの値を2バイト文字として出力する。 ; で、2バイト文字を入力して、ポインタの指している値とその次のポインタの値に代入する。 ってのはどうよ?
とりあえず実行してみた。 >++++++++++[<+++++++++++++>-] +++[>+++++<-]>[<++++++++++++>-]<---> >++++++++++[<+++++++++++++>-] >++++[>++++<-]>[<+++[<+++++>-]>-]<<+> >++++++++++[<+++++++++++++>-] >++++++++++++++[<++++++++++++++>-]<+++++> >++++++++++[<+++++++++++++>-] >++++++++++++++[<++++++++++++++>-]<-----> >++++++++++[<+++++++++++++>-] >++++++++++++++[<++++++++++++++>-]<+++++++++> >++++++++++++[<++++++++++++>-] >+++++++++++++[<+++++++++++++>-]<-------> >++++++++++++[<+++++++++++>-]<++++++> >++++++++[<++++++++>-]<+++++> >++++++++++[<+++++++++++++>-]<-> >++++++++[<+++++++++>-]<+ <<<<<<<<<<<<<<< :>>:>>:>>:>>:>>:>>:>>:>>: メモリに"こんにちは世界!"を表わす 82,B1,82,F1,81,C9,81,BF,82,CD,90,A2,8A,45,81,49 がメモリに積まれて、最後の方の":"命令で、Shift-JIS形式の文字が表示される。 作ってから思ったけど、これって既出?
>>229 Shift-JISを使うために新命令は必要ないってことわかってる?
入出力は1byteずつでも、解釈はまとめてやればいい。
実際そうしてShift-JISを扱えるBF処理系も存在する。
馬鹿だなぁ :> が顔に見えるってギャグだろどうせ
BFで : を .>.< に置き換えるBFプロプロセッサ書けばいいよ
まだBFなんてやってんのかよだっせー 時代は純粋関数型言語Unlambdaだぜ
>>237 そんなこと言うならBrainfuckユーザが容易にUnlambdaへ移行できるように
Brainfuck-to-UnlambdaトランスレータをUnlambdaで書いてくれw
bfユーザが理解できるようにトランスレータはbfで書こうぜ
esotope-bfcって凄いな 自分で作る気が失せる出来
そのへんは削除するようにする(した)って書いてるよ
#include <stdio.h> int main(int argc, char *argv[]) { int c; while ((c=getchar()) != EOF) { while (c) { putchar('+'); c--; } puts(".>"); } }
修正 #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; } }
最適化されたBFのソースを吐くなら、まだ修正する意味もあるかもしれないな。
最小ブレインファック問題の計算複雑性ってどの程度?
>>252 実質不可能って意味ではそうかもしれんが。
現実的でない時間をかけてもいいのなら、短いものから順にブルートフォースするといつかはたどり着くわけだから計算は可能。
いや、計算不可能かもしれない。ごめん。 無限ループかと思えるくらいに長い時間をかけて、最小BFとなるパターンと、単なる無限ループを区別するには 停止可能性の判定が必要になってくる。
プログラムの等価性判定って計算不可能だよね? だとすれば、最小BFが計算できればその最小BF同士の比較によって等価性判定ができちゃうので計算不可能だと思う。
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; }
スーパーpre記法のシンタックス・ハイライトが Brainfuck, Clojureに対応しました - はてなダイアリー日記
http://d.hatena.ne.jp/hatenadiary/20100219/1266571864 bfがインタプリタ作るのが簡単な言語とはよく言われていたが、 シンタックスハイライト作るのも簡単ってのは斜め上だなぁ。気づかなかった。
プログラマーが仕事をサボっている兆候一覧 「Dvorakでもかなり早く打てるようになってきたぞ」 「念のためうちのサーバーでもGopherをサポートできるようにしときました」 「XHTML、HTML、さらにHAIKUにも準拠しています」 「brainfuckのシンタックスハイライトに対応しました」 ← new!
read.cgi ver 07.7.23 2024/12/25 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250227164226このスレへの固定リンク: http://5chb.net/r/tech/1231384158/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「BrainFuck Part.3 <[+-.,]>YouTube動画>4本 ニコニコ動画>1本 ->画像>6枚 」 を見た人も見ています:・BUCK-TICKの噂 Part.339 ・iPod touch 第7世代 Part3 ・Vue vs React vs Angular vs Svelte Part.8 ・Vue vs React vs Angular vs Svelte Part.9 ・Vue vs React vs Angular vs Svelte Part.9 ・【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online 無課金・微課金スレ Part45 ・【PS4/XB1】Rainbow Six Siege/レインボーシックス シージ Part158 ・【名古屋】Aqours 2nd LoveLive! ~HAPPY PARTY TRAIN TOUR~ チケット発券・着弾報告スレ 2枚目【神戸】 ・☆・:.,;*。ベガルタ仙台。.:*:・゜☆(Part2635) ・Vue vs React vs Angular vs Svelte Part.11 (438) ・桃園怜奈 part7 ©bbspink.com ・アブノーマルお兄さんスレ Part4 ©bbspink.com ・【WWⅡ】Heroes & Generals Part8【F2P】 ・【DMM.R18】戦乱プリンセスG Part72 ©bbspink.com ・【DMM.R18】戦国プロヴィデンス Part141 ©bbspink.com ・覗き部屋☆窓女(マドンナ)☆新宿歌舞伎町 part16 ©bbspink.com ・【DMM.R18】FLOWER KNIGHT GIRL ~X指定~ part1723 ©bbspink.com ・DarkGDK Part.2 ・独り言&雑談 part50 ・MacBook Pro (Part 151) ・【第三世代】MacBook Pro Part134【2012-2015】 ・【佐藤優樹】元モーニング娘。まーちゃんのソロデビューを見届けるスレ Part.332『君たちはどう(地面に足をついて🦵)生きるか』 ・【シノマス】シノビマスター 閃乱カグラ NEW LINK part145 ・バナナマン日村について語るスレ Part23 [無断転載禁止]©bbspink.com ・Julia Juno Jupyter part1 [無断転載禁止]&#169;2ch.net (745) ・古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net (822) ・★★ Java の宿題ここで答えます Part 74 ★★ [無断転載禁止]&#169;2ch.net (310) ・【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]&#169;2ch.net (407) ・道路陥没事故、トラック運転席を下水道管内で発見か ドローンで確認 運転手の姿は確認できず 自衛隊に連携要請 ★5 [Ailuropoda melanoleuca★] ・海豚専 Part.3 ・想いを短歌にするスレ Part.3 ・C vs C++ vs Rust Part.3 ・50歳以上の一人暮らしスレ Part.36 ・高校野球地方大会総合 Part.3 ・生活保護のCWだけど質問ある? part.344 ・Java入門・初心者質問スレ Part.3 ・★おんな酒場放浪記を語れ!二酌目☆ Part.3 ・【悲報】韓国さん、しれっと株価暴落中 Part.3 ・第104回選手権大会 最弱代表校はどこだ? part.36 修正 ・小説家になろうのディスコードを作らないか? Part.3 ・シノアリスのんびりスレッド【SINoALICE】 Part.303 ・【急募】このイメージビデオの女の名前教えてクレメンス Part.3 ・Objective-C [ObjC part:8.1]; ・【A.LANGE】A.ランゲ&ゾーネ part11 ・【佐藤優樹】まーちゃんのモーニング娘。卒業後を見届けるスレ Part.280【🗽🗽🗽🗽】 ・Smalltalk総合 Squeak Pharo ・Rust part9 ・伊織もえ part8 ・Swift part6 ・Rust part10 ・Rust part17 ・Rust part21 ・Rust part18 ・Rust part22 ・Rust part13 ・Rust part29 ・Swift part7 ・Rust Part7 ・2 part forth ・時空の歪み Part 12 ・【D専】 Part.4 ・C♯相談室 Part20 ・CandyDoll Part13 ・五十嵐裕美 part66
11:49:57 up 63 days, 12:48, 0 users, load average: 7.95, 8.70, 9.02
in 0.073460102081299 sec
@0.073460102081299@0b7 on 062000