2008-10-01から1ヶ月間の記事一覧

Clojure + Proce55ing(3)

Clojure は思っていたよりはずっと大きな Lisp 方言で、http://www.proce55ing.org/learning/topics/follow1.html を Clojure で書こうとしたが、なかなかうまくいかない。まだぜんぜん Clojure が分かっていない、ということが手を動かしたので分かった。以…

Clojure + Proce55ing(2)

前に書いたように、 Clojure は普通に既存の Java のクラスのインスタンスを作成したり、リスナーを作成したりできる。ここらへんの機能は jython 同様 reflection を使っていると思われる(当然速度面ではペナルティとなっているはず)。いま試している Proce…

バイオインフォマティクス技術者への道(2)

過去問をたらたらとだいたい解いたところ。「ここはよく分かっていないから勉強」「ここは解けないと恥ずかしい」「ここは当然分かる」など様々。 基本的に基礎的問題で、かつ選択式なので消去法で解けるものが多い。が、余力を持って回答できるように勉強す…

Scheme Compiler の勉強(27) - cons?

※以下根本的な嘘、勘違いが含まれる可能性大。 cons, car, cdr を LLVM IR 直書きでテストした。(自作のS式表現が、グローバル変数の宣言に対応していなかったので仕方なく直に書いた‥) メモリを malloc で確保して、その位置をグローバル変数に確保してお…

www.memorymanagement.org

http://www.memorymanagement.org/ メモリー管理大全?膨大な有用そうな情報。 http://www.memorymanagement.org/glossary/h.html#heap.allocation Heap Allocation http://www.memorymanagement.org/glossary/t.html#tag Tag http://www.memorymanagement.o…

バイオインフォマティクス技術者への道(1)

まず、直近の目標として11月30日の「日本バイオインフォマティクス学会主催バイオインフォマティクス技術者認定試験」に受かること(昨年の第1回は実は受け損なった)。「バイオインフォマティクスの基本的知識が備わっているかを評価する」ための試験…

バイオインフォマティクス技術者への道(0)

唐突ですが平成20年11月30日(日)の「バイオインフォマティクス技術者認定試験」へ向けての日記を書くことにします。 http://www.jsbi.org/modules/jsbi/index.php/nintei/index.html によれば受付は今月中です。

バイオ

中村さんのhttp://www.asahi-net.or.jp/~ki4s-NKMR/ より。そういえば Shibuya.lisp で中村正三郎さんとお会いできたのに、筒井康隆の話をしそこねました。残念。最初に自分が「メタ」(メタデータとかメタ言語とか)に興味を持ったのは筒井SFだったかもなぁ…

memo

"Compiler Construction Using Scheme" http://www.cs.indiana.edu/~dyb/pubs/fple95.pdf こんなの見つけた。"Compiler Construction Using Scheme" より。 (let ((f (lambda (x) (let ((y (+ x 1))) (lambda (z) (cons y (cons z (quote (1 2))))))))) ((f …

Clojure + Proce55ing

話題の Clojure(http://clojure.org/)。 id:g000001 さん(http://cadr.g.hatena.ne.jp/g000001/)がとても詳しい。Clojure って JVM で動くんだよなぁ、ってことは Java のライブラリも呼べるよなぁ、そうすると Proce55ing も呼べるなぁ、そうするとhttp://d…

TODO

malloc と tagged pointer でコンスセルを実装したい。まだ2ステップか3ステップくらい理解が足りていない、と想定。情報が少ない。 runtime.c を LLVM で書き直して、 LLVM だけで完結したい。(printf などを呼び出すことは良い) リファクタリング。まだ…

memo

Shibuya.lisp で知って楽しそうなので dyncomp 少しだけ眺めてみる。 tiny C + gauche.cgen.cise (S 式でC!). 実に残念なことに PPC では tiny C が動かない様子。 いったいどうやって動的に作成した C の関数を gauche の世界から呼べるようにしているのか…

memo

http://llvm.org/docs/Passes.html コンパイラを最適化する人はたいへんですね、と人ごとのように放置してもいいけれど。ちゃんと勉強するには、これ一つずつ on/off して、かつ組み合わせも考慮して、どういうことが起きるか見なくちゃ駄目なのか?いや、各…

Scheme Compiler の勉強(26) - リファクタリング一応完了

やっと S 式 -> S 式での LLVM IR -> LLVM という流れができ、テストが通った。いままでは S 式 -> LLVM というシンプルな作りだった。 ただし、まだ足し算程度しかできず、何より cons が無い。これからだ。 gosh> (map pprint-ir (program->insts '(letrec…

Shibuya.lisp テクニカルトーク第1回感想

2008/10/18 のテクニカルトークに参加させていただきました。司会ならびに運営の皆様、発表者の皆様、ありがとうございました、そしておつかれさまでした。とても刺激になりました。次回は見るだけでなく何かネタを出してみたいと思わせる、そんな集まりでし…

[彷徨える舌] あなたのようにわらえる日よいつか

あなたのその笑顔をみたときに、わたしはそれをうまく表現することばを持たなかったので、強いということばをあてておいた。あなたのその笑顔はただあまりにつよく、あなたは全てに満ち足りてはいなかったはずだけれど、それでもあなたは笑っていた。 いつか…

memo

リスト操作ばっかりしていて、気を抜くと以下のエラーに当たる。 *** ERROR: pair required, but got #f#f が null? じゃないのは学習したはずなのに。しかしこれは追いかけ難い。自作のどこかの手続きで引数のチェック不足かつ返す値を保証できていないよう…

memo

[PowerBook G4] llvm ir -> i386 用アセンブラ -> [sakura (i386, bsd)] -> gcc -> 実行ファイル

sakura internet で gauche (更新)

http://d.hatena.ne.jp/cranebird/20071023 gauche-config --reconfigure | sh http://cranebird.sakura.ne.jp/ ssh-keygen

中毒性

入れ子の SQL, DUAL 表 パイプ処理, awk/perl 一行野郎 loop マクロ, format util.match 上記が身に付くと、暫くの間は何もかもをそれで処理したくなるので注意。ハンマーを持つと何でも叩きたくなるのと同じようなもの。 自分がなったことがないけど中毒性…

memo

中間層を入れたら、バッククォートと,@ が大量に発生。今までは命令を実行していたのが、リストを返すようにしたようなものだから、当然と言えば当然なのだが。で、ちまちまちまちまと手でプログラムを修正してたがこれは辛い。 こんなややこしいはずではな…

memo

LLVM IR を S 式で表現するモジュールを試作中。これの機能はただ単純に、S 式で表現した LLVM IR を LLVM IR の文字列に変換すること。これはどこかで誰かがやってるに違いないと思うが、見つけられなかった。読み飛ばしている可能性も高いけど。 LLVM IR …

match と cut

長いこと「match なんて酸っぱい葡萄だ(=match なんかなくてもプログラムは書ける)」と思っていたが、やっと分かったかもしれない。 ;; S式を変換する例。(ret) は "ret void", (ret '(i32 8)) は "ret i32 8", ;; (ret '(i32 8) '(i1 1)) は "ret i32 8, i …

[彷徨える舌] 時代

「そうなんだ、おれも何かを発信しなきゃあならない、いまさらおっさんが何を言うんだと言うかもしれないけど、おれはそう考えるようになったんだ、その点ブログというのは不思議なシステムで、うん、誰かが語っていた気がするけどきっとこの仕組みは日本的…

[彷徨える舌] ハードル

「○○をしろだって?そんな子供にでもできるような低いハードルは馬鹿にされているようだ、もっと高いハードルをおれに課してくれ」美しい妻は、そんなことは○○を当たり前にやってから言え、と呆れているのだった。ちなみに○○はとても記載することができない。

util.match

唐突に scheme の match (パターンマッチ)に惚れた。これはまさにコンパイラとかインタプリタとか書くための機能だと思う。というより単に式変形のための便利機能ってことか。例)S式の変換を考える。例として、(ret) は "ret void" に、(ret '(i32 8)) は…

SSA, A-normal form

何か関係がある、ような気がする。 LLVM 用にコンパイラを書くってものすごく楽ができる/楽をしているのでは、という気がしてきた。

[彷徨える舌] 追うもの

ふと気付く。いま、3年前のA さん、1年半前の B さんがやっていたことを追いかけているのだと。 自分はとびきりに優秀ではないことが、何かをアウトプットをすることではじめて分かる。と、聡明で美しい妻に話すと、あなたはそんなことに今頃気付いたのか…

gauche 0.8.14

つい先日バージョンアップしたばかりだったけど、せっかくなので 0.8.14 に追随。 先日作ったばっかりの表を新しいバージョンでも試してみた(http://d.hatena.ne.jp/cranebird/20081005/1223169496)。 以下パス1,2,3の出力には compile-p1, compile-p2, comp…