2008年9月4日木曜日

はてなに引っ越します

短い間でしたが、このブログははてなに移行します。
やっぱり、トラックバックとか、スーパーpre記法とか、あっちの方がよさそう。

purupuru-soda

2008年8月29日金曜日

Re:【すごいExcel】こんなことまでできるんだ!?っていうExcelの奥深さがわかる実例を教えて下さい。

【すごいExcel】こんなことまでできるんだ!?っていうExcelの奥深さがわかる実例を教えて下さい。
http://q.hatena.ne.jp/1219766168


Excelで作ったスゴイものを探しているようです。
俺のBrainfu*kインタプリタも紹介したいけど、このブログ、トラックバック打てないみたいなんだな…。
歯がゆい。
とりあえず、最新のExcelBrainfu*kインタプリタを作ったので、ここに置いておきます。
http://unkun.ikaduchi.com/excel_bf/index.html#20080828

特徴とか
  • Brainfu*kを実行できる
  • VBA(マクロ)を使用していない
  • メモリセルが16個しかなかない(改造可能)
  • BFの命令は1024個しか認識できない(改造可能)
  • プログラムが1024ステップまでしか実行できない(改造可能)
  • Excelで表示できない文字は出力されない(改造可能)
  • セルオートマトン風
  • 全ステップをエクセルデータとして参照可能
  • 実行途中でセルの値を変更することができると思う(利用価値は不明)
  • たぶん、チューリング等価なのかよくわからない。無限に広がるワークシートがあればたぶんそう
  • Excelのセルは参照するセルによってのみ値が決まるため、参照透過性が高い
  • [新機能]ポインタの位置をカラー表示
  • [変更]できるだけ日本語化
  • [削除]グラフ表示を削除。重かった。

  • 2008年6月21日土曜日

    BrainfuckをExcelで実行してグラフにしてみた。

    読みにくかったらすみません。
    Brainfu*kで"Hello world!"と表示するプログラムを実行した結果です。
    小刻みに動いているのがポインタで、
    階段状に増えているのがメモリとなっています。



    「Excelだったらグラフだろう!」と勢いだけで作ってみました。

    ,.の実行はグラフに反映されていないのでどうにかしたいです。

    ダウンロード先

    2008年6月9日月曜日

    Brainfu*kインタプリタをExcelで作りました。

    アドレスはここ↓
    http://unkun.ikaduchi.com/excel_bf/index.html


    Excelの関数だけで、VBAを使用せずに作りました。
    簡単な説明は以下。
    • mainワークシート
    Brainfu*kのプログラムを書き込んで、実行結果を確認する。
    入力用の文字列はここで設定できる。
    • jump_tableワークシート
    Brainfu*kのソースコードを解析して、対応する"["と"]"の位置をそれぞれ、ジャンプ先に設定する。
    アルゴリズム的には
    <1>"["が現れたら、その位置をスタックにpush。
    <2>"]"が現れたら、スタックをpopして得られた位置をジャンプ先に設定する。
    <3>最後に"["の位置をジャンプ先に設定している"]"の位置をジャンプ先に設定する。
    • step_execワークシート
    brainfu*kのソースコードをステップ実行する。
    シートを見ればわかるが、ステップは1024回まで、メモリ領域は16個までしかない(改造すれば広がる)。
    jump_tableシートから、プログラムを順番に実行していき、"["や"]"が現れたら、ジャンプ先を参照してループしたり、しなかったりする。
    • 全体的に
    無限に広がるワークシートがあれば、チューリングマシンと同等の計算力があると思う。
    参照するデータ = 引数、 セルの数式 = 関数、と考えれば、関数型言語であると言ってもいいんじゃないかな?
    エレガントなExcelの関数の書き方がわからない・・・。

    2008年6月1日日曜日

    書き込みテスト