タグ

Brainfuckに関するtanakaBoxのブックマーク (10)

  • 実用Brainf*ckプログラミング入門編

    2. はじめに:Brainf*ckとは ● 命令記号は+-><[].,の8種類だけ! ● 1993年にできた、できるだけコンパイラが小さくなるよう なプログラミング言語 ● 難解になるべくして生まれたわけではない ● 実際、命令記号は読みやすいように選ばれている ● 処理系が作りやすいので、しばしばプログラミングの練習 問題としてBrainf*ckインタプリタの作成をさせたり、派 生言語が作られたりする 3. 言語仕様 ● はじめに0で初期化された十分な長さの配列が与えられる ● C言語で言うポインタを操作して動作。最初は0番地 ● +/- ポインタの指す値を1増やす/減らす ● >/< ポインタをインクリメント/デクリメントする ● [ ポインタの指す値が非0なら対応する]の直後にジャンプ ● ] ポインタの指す値が0なら対応する[の直後にジャンプ ● . ポインタの指す値を文字として出

    実用Brainf*ckプログラミング入門編
    tanakaBox
    tanakaBox 2013/07/25
    実用的?
  • Brainfuck Visualizer

    +++++ +++++ initialize counter (cell #0) to 10 [ use loop to set 70/100/30/10 > +++++ ++ add 7 to cell #1 > +++++ +++++ add 10 to cell #2 > +++ add 3 to cell #3 > + add 1 to cell #4 <<<< - decrement counter (cell #0) ] > ++ . print 'H' > + . print 'e' +++++ ++ . print 'l' . print 'l' +++ . print 'o' > ++ . print ' ' << +++++ +++++ +++++ . print 'W' > . print 'o' +++ . print 'r' ----- - . print 'l'

    tanakaBox
    tanakaBox 2013/04/20
    これは使える!?
  • brainfuck-dialect quine generator - まめめも

    それでも @mametter ならっ・・・! RT @bonotake: quineの作りがいがありそうな…作んないけど RT @masahiro_sakai: ジョジョ言語わろた http://bit.ly/d0RUUR http://twitter.com/masahiro_sakai/status/9091442089 brainfuck の命令文字を置換しただけの俺言語は結構ある *1 ので、いちいち quine を作るのは面白くありません。そこで、命令文字の割り当てから、その言語での quine を自動生成するソリューションを開発しました。 brainfuck の quine の生成。 $ ruby19 bfd-quine-gen.rb bf > quine.bf $ beef quine.bf > quine2.bf $ diff quine.bf quine2.bfたぶん一番

    brainfuck-dialect quine generator - まめめも
  • brainf*ckでジョジョ言語 - 旧toyoshiの日記

    CSNagoya3周年記念の発表で使ったネタ言語。 ジョジョ言語 バージョン3です。 タイトルでピンと来なかった人はwikipediaのbrainfuckの項目などをご覧下さい。 賢い人がバージョン6を作って素数をカウントするなどしてくれたらいいと思います。 特徴 バトル風言語 バージョン3 ジョジョ言語の構文 オラ … 現在のポインタの値を1増やす 無駄 …現在のポインタの値を1減らす スターフィンガー!、やれやれだぜ…ポインタを1つ右に動かす ロードローラーだ!、貧弱ゥ…ポインタを1つ左に動かす ハーミットパープル…現在のポインタの値をアスキーコードとして出力する 新手のスタンド使いか!…標準入力から1文字読み込み、現在のポインタに書き込む あ…ありのまま 今 起こった事を話すぜ!…ポインタの値が0なら、対応するザ・ワールド!までジャンプ ザ・ワールド!…ポインタの値が0以外なら、対応

    brainf*ckでジョジョ言語 - 旧toyoshiの日記
    tanakaBox
    tanakaBox 2010/02/10
    吹いた
  • プログラミング言語 Misa

    #! /usr/bin/misa ごっ、ごぉおっ、ご〜きげんよおぉおおぉおほっ。ほおぉおぉおっ。 「ごきげん☆みゃぁああ”あ”ぁ”ぁああ〜っ」 さわやかな朝の☆ご挨拶! お挨拶がっ。 澄みきった青空にこだましちゃうぉ〜ああぉおおおぉん。 「は、はひっ、はろおぉっ☆わぁるどおおぉっぉ〜っ」 こ、この文章は☆おサンプル! おおぉおぉおおサンプルプログラム!! どんなおプログラム言語でも基のご挨拶させていただくのぉぉおッ! 「ぽうっ」 長々と書くのがこ、ここでの〜、ここでのぉおおぉおぉぉおたしなみぃぃいぃ。 「長いぃ。長すぎましゅう。ご挨拶にこんなプログラム長すぎまひゅぅうぅ☆ んおおぉぉ、ばかになる、おばかになっちゃいましゅ〜ッ」 長いのがっ、バッファの奥まで入ってきましゅたぁあぁあっ! ばっふぁ☆溢れちゃいまひゅぅ〜。あみゃぁあ”あ”ぁ”ぁああ”あ”ぁぁ。 「で

    tanakaBox
    tanakaBox 2010/01/17
    素晴らしい。
  • BFC: Brainf\*\*k Compilers

    Blogged by Ujihisa. Standard methods of programming and thoughts including Clojure, Vim, LLVM, Haskell, Ruby and Mathematics written by a Japanese programmer. github/ujihisa Today I released BFC 1.0! BFC: Brainf**k Compilers http://github.com/ujihisa/bfc bfc.rb is a compiler written in Ruby, which can compile BF code to Ruby, C, Haskell, Scheme and LLVM. USAGE OF BFC $ ./bfc.rb --help $ ./bfc.rb [

    BFC: Brainf\*\*k Compilers
    tanakaBox
    tanakaBox 2010/01/10
    Brainfuckを他の言語に変換。
  • 最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所

    まず、世界中のプログラマが誰でも一番最初に作るであろう「Hello, world!」を標準出力に表示するプログラムを書いてみましょう。 C言語 2006-12-19 char main[]= "QVWUZ%@@@@% P^JJJJJJJJJJJJJJJJJJJJJJJJ3B PVXH, PTXHHHH!0Z_18R_)8)8)8)8" ")8)8)8)8WV_38WX_)8)8)8@)8@@@@)8)8)8T_VXOOOOOOOOOOOOOOOOOOOOOOOOWYVX!75Hel" "lVP^17^GGGGVX!75o, wVP^17^GGGGVX!75orldVP^17^GGGGVX!75aJ@@5@@@@VP^17^VXP[" "PZBBBBBBBBBBBBBBC@@@@AHI@AHI@AHI@AHI@AHI@AHI@j__^Y`"; このプログラムを hello.c という名前で保

    最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所
    tanakaBox
    tanakaBox 2008/02/12
    ナンダコレハ
  • Scheme:Brainfuck

    Brainfuck を Scheme で実装してみる企画 bf のサンプルコード(上記ウェブページから拾ってきたもの) hello.b ハローワルド quine.b 自己コピー(ちょっと重い) quine2.b その2(結構重い) インタプリタ遊び方副作用無しバージョンコンパイラベンチマークScheme:Brainfuck:別解 インタプリタ skimu: とりあえず、モトネタです. (ソース bfi.scm) アドバイス、突っ込み大募集! obscure/esoteric バージョン募集中。 遊び方 % gosh bfi.scm hello.b Hello Wold! % gosh bfi.scm quine.b > q.b % gosh bfi.scm q.b > p.b % cmp p.b q.b Shiro: 元の仕様だとバイトの値が256でwrap aroundしないとまずいよう

    Scheme:Brainfuck
    tanakaBox
    tanakaBox 2007/07/19
    SchemeでBrainfuck
  • Brainf*ck

    アラン・チューリングという計算機科学者の考えた、 「チューリング・マシン」という仮想の計算機があります。 これは [0を書く]、[1を書く]、[右に進む]、[左に進む] と言った 非常に簡単な命令のみを実行できる想像上の計算機ですが、 我々の使っているパソコンでできるような計算は全て、 チューリングマシン用のプログラムとして書ける、ということが知られています。 …という前置きを付けてなんだか重々しい言語に見えてきたところで(^^;、 たぶんご存じの方も多いと思われる、わずか8文字の組み合わせで ありとあらゆるプログラムを表現する Brainfuck を弄ってみるとしましょう。 * Hello, World 導入 サンプル:表示1 サンプル:表示2 サンプル:echo * サンプル:足し算 サンプル:掛け算 C++によるインタプリタ実装 * サンプル:条件分岐1 サンプル:条件分岐2 まとめ

    tanakaBox
    tanakaBox 2007/07/14
    詳しめ。boost::lambdaのサンプルがかなり参考になる。
  • Brainfuck - Wikipedia

    開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。 実際、Müllerが開発したコンパイラのサイズはわずか123バイト、インタプリタは98バイトであった。 Brainfuckプログラムは非常に可読性・記述性が低いため実用性は期待できないが、チューリング完全である。その簡潔さから多くの派生言語を生み出すこととなった。 処理系は次の要素から成る: Brainfuckプログラム、インストラクションポインタ(プログラム中のある文字を指す)、少なくとも30000個の要素を持つバイトの配列(各要素はゼロで初期化される)、データポインタ(前述の配列のどれかの要素を指す。最も左の要素を指すよう初期化される)、入力と出力の2つのバイトストリーム。 Brainfuckプログラムは、以下の8個の実行可能な命令から成る(他の文字は無視され、読み飛ばされる)。 > ポインタをインクリ

  • 1