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

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

問題用紙持ち帰り可でしたので、答え合わせをやってみましょう。4択問題で、マークシート方式です。 なぜか昨年の公開されている問題もそうなのですが、「不適切なものを選べ」という問題が多かったです。 (以下のタイトルはわたしが勝手に付けたもので、…

東京医科歯科大学/バイオ医療オミックス情報学人材養成プログラム

http://bio-omix.tmd.ac.jp/index.php

バイオインフォマティクス技術者認定試験

メモ。東京医科歯科大学 湯島地区 医歯学 総合研究棟。某 Lisp 勉強会でもお話させていただいた中村さんにお会いしてびっくり。

How to Write a Spelling Corrector (Clojure 版)

※恥ずかしい綴り間違い修正。collect=> correctClojure ML より。(前も話題になっていたかも)http://norvig.com/spell-correct.html "How to Write a Spelling Corrector" に Clojure で Spelling Corrector を書いた例(のリンク)が追加されている。Pyth…

Clojure ML より。(前も話題になっていたかも) http://norvig.com/spell-correct.html に Clojure で Spelling Collector を書いた例(のリンク)が追加されている。最短らしい。

真理表

「決定不能の論理パズル ゲーデルの定理と様相論理」レイモンド・スマリヤン、が本棚から出てきた。めちゃめちゃに面白いんだけど最後まで読み切れていない本の一つ。思いつきで真理表を出力してみた。 (use util.combinations) (use util.match) (define (t…

SIMD memo

http://www.icnet.ne.jp/~nsystem/simd_tobira/index.html IA-32 SIMD の扉 http://www.icnet.ne.jp/~nsystem/simd_tobira/simd_introduction.html 素晴らしい。手元に IA-32 マシンが存在しないけれども。 構成と設計第9章 並列プロセッサ

memo

まだ足りない。

Principles of Biomedical Informatics

Show's hot corner さんより。 http://iiyu.asablo.jp/blog/2008/11/14/3916834 http://www.radonc.washington.edu/faculty/ira/pbi/ この本買ってみようかなぁ。バイオインフォの周辺も今後はプログラムから、もっとユーザーに優しいものになるのでは、と想…

memo

Scheme Compiler の勉強(32)

いままでは scheme プログラムをリストのリストに変換していたが、フラットな構造だと扱い辛いので gauche の CLOS 風オブジェクトシステムを使うことにした。 今のところ単なる入れ物としか使っていないけど、以下のようになった。ただの hashtable とか al…

memo

どうやら今作っているプログラムは構造的な欠陥がありそうだ。 "An Incremental Approach to Compiler Construction" に移行する。 lambda のかわりに code, letrec のかわりに labels なる構文を導入。おそらくは簡易版。 これはどうみてもコンパイラという…

無力

自分の周り(近く、遠くに)に心身を病んでいる人が多いのに何もできない。 こんなときは作業一覧を作って優先度をつけても、動けない。

memo

もっとデータを取り出し、繰返しを取り除かないといけないのだが、プログラムを書いているのかただのデータ変換器を書いているのか分からなくなってきた。完全にデータで動くようにして、その先に本当の難しさがあるのだろうなぁ。 またまだ素の言語要素で書…

memo

LLVM 2.4 リリース http://www.llvm.org/docs/ReleaseNotes.html

memo2

リファクタリング中 Qemu 64bit/x86 emu

memo

Maeve ファーストリリース。C/C++ で書かれている gauche/mosh/ypsilon に比べて(そのため自分には深く追えていない) scheme で書かれているので読みやすいかな?と一瞬思ったがもちろんそんなことは無いなぁ。そのうえ x86-64 環境前提なので動かすことも…

memo

LLVM は制限があるものの Tail call optimization をサポートしている。http://www.llvm.org/docs/CodeGenerator.html#tailcallopt したがって、 scheme レベルで tail position にあるかどうかチェックして、適切な LLVM を出力してやればいい? 最適化のオ…

Scheme Compiler の勉強(31) - 小まとめ

前口上 Abdulaziz Ghuloum さんの "Compilers: Backend to Frontend and Back to Front Again" という文書などを参考にして、LLVM 用 Scheme コンパイラを作りながら、コンパイラ、Scheme、LLVM の勉強をしています。わたしの目的は二つあって、一つは自分が…

Scheme Compiler の勉強(30) - tail call

http://d.hatena.ne.jp/cranebird/20081106 の続き。自作トイコンパイラで tail call 対応したので以下のテストが通るようになった。 gosh> (run-program '(letrec ([e (lambda (x) (if ($fxzero? x) #t (o ($fxsub1 x))))] [o (lambda (x) (if ($fxzero? x)…

memo

そろそろ intel マシンが手元に必要な気がする。

Scheme Compiler の勉強(29) - app の実装と EXC_BAD_ACCESS

apply もどきの app を実装していなかったので実装。もどきと思うのは、(app f e1 e2 ..) は単に e1 e2 ... を評価して f を実行するだけで、リストでなくてもよいから。今までは先走って app を使わずに手続きを呼び出すような実装をしてた。tests-1.8-req.…

Clojure + Processing(6) - memo

http://d.hatena.ne.jp/cranebird/20081102 の続き。見つけたバグは作者の Roland さんに fix してもらえた。ハッピーだ。 今の clojure は ClassLoader 周りの問題で、すくなくとも今のままではアプレットにできない(java.security.AccessControlException…

memo2

マクロで個別に定義していた S式=>文字列の変換を、まとめて一つの match(util.match) に変更。今までが無駄に長過ぎた、、まとめるとさらに冗長かつ不足していることが明らかになった。もっと繰返しを省いて「楽」をしないと。 それにしても util.match は…

memo

http://ja.wikipedia.org/wiki/ソフトウェアトランザクショナルメモリ うーんまるで分からない。clojure に出てくる。 Scheme、ML、Haskell などの関数型言語のコンパイラでは、Fortran や C などのコンパイラで SSA の利用が期待される箇所で continuation …

Scheme Compiler の勉強(28) - pair?, cons, car, cdr

ようやく pair?, cons, car, cdr のセットを実装。 gosh> (run-program '(pair? (cons 1 2))) "#t\n" gosh> (run-program '(car (cons 1 2))) "1\n" gosh> (run-program '(cons 1 2)) "<pair: 0x02800401>\n" gosh> (run-program '(letrec ((list (lambda (x y) (cons x (cons </pair:>…

Clojure + Processing(5) - Processing wrapper for clojure

自分で書く前に clojure の google group で見つけた。 http://groups.google.com/group/clojure/browse_thread/thread/5e2a056ed3935191 Roland Sadowski さんによる。素晴らしい。こっちで気付いたことが既にカバーされているようだ。うーん、2ヶ月ほど遅…

Clojure + Proce55ing(4)

Follow1 - 2 クロージャーに全体をいれてしまうと少しは見やすいか?Python で self を明示的に渡すときのようなコードになってるけど。 Processing の場合は、全体が PApplet のサブクラスとして書かれる。グローバル変数に見えるものは実際はインスタンス…