OODB
私は『Final Fantasy: The Spirits Within』の全体の進行を manage するデータベースの管理を任されてまして、それを Lisp で書いていたんです。Lisp ベースの OODB を使って。ベースとなっているのは ObjectStore で、Franz がその上に Lisp の皮を被せた AllegroStore を出していまして、それを使いました。基本は Lisp のオブジェクトを作ると、それが persistent になるんです。普通にオブジェクトとしてアクセスできるんです。で、何が強かったかというと、まず普通のオブジェクトなんで many to many の関係が全部リンクで持っている、と。それから、相互のポインタが全部、内部で manage されていたんで、integrity に気を遣わなくていいこと。もうひとつ、CLOS の機能なんですけど、インスタンスのクラスを実行中に変えられるんですね。クラスの再定義が出来まして、古いクラスから新しいクラスへの変換メソッドを書いといてやると、そのインスタンスがアクセスされた時に、その変換メソッドが走って、インスタンスが update されるんです。スロット*4が追加されるだけじゃなくて、このスロットとこのスロットの情報をマージして新しいスロットにしたい、とか、インスタンスを分割したい、とか、そういうことが実行中に出来てしまう。特に、persistent の storage にオブジェクトをとってありますと、それを新しいクラス定義で読み込んで update かければいいんですから。
OOエンジニアの輪! 〜 第 21 回 川合史朗 さんの巻 〜 | オブジェクトの広場 via http://d.hatena.ne.jp/scinfaxi/
すごいなこれ。CLOS勉強したい。
計算論とかラムダとか
最近ラムダっぽいことばっかり考えているので、ふつうの会話ができなくなりつつあります。そういうことを話す相手がいなくてイライラしたときは、SICP読書会でそういう話ができるので助かっています。
計算論 計算可能性とラムダ計算 (コンピュータサイエンス大学講座)
- 作者: 高橋正子
- 出版社/メーカー: 近代科学社
- 発売日: 1991/08/01
- メディア: 単行本
- 購入: 8人 クリック: 160回
- この商品を含むブログ (36件) を見る
読み始めた。寝る前にベッドの中で15分くらい読んで寝るので、とてもゆっくり読み進めています。今は、原始帰納関数のおはなし。1年のときに記号論理学でゲーテルの不完全性定理の証明を見るときに簡単に勉強したので、懐かしい部分が多い。
原始帰納関数は全域的帰納関数(計算可能な関数)のサブセットで、原始帰納法により定義される関数の集合。原始帰納法は、プログラムの最も単純な再帰に対応するものですね。function(0) のときの値を定めて、function(n+1)の値はfunction(n)の値を使って計算する、ってやつです。定数関数、射影関数、サクセッサー関数を材料にして、原始帰納法を使って料理すると、実に様々な関数が出来上がる、という面白い世界。
全域的帰納関数だけど、原始帰納関数じゃない代表例で有名なのはAckerman関数。
記号論理学の授業では、帰納関数をチューリング完全で単純な構造を持つプログラムで表現し、そのプログラムを表す1つの自然数=ゲーテル数を求める、ということをやった。理論的には、あらゆるプログラムは1つの自然数*1で表現することができるってのは言われてみれば当たり前だけど面白い。
この本ではどんな流れで帰納関数とラムダ計算がつながっていくのかまだ見てないのでわからない。楽しみ。
うちの学科は、プログラミングとかやるけどおそらく応用メインなのでこういうことは勉強しないんじゃないだろうか。計算機を生業とする人間ならば、実務には役立たないかもしれないけど勉強しといて損はないと思う。こういうことばっかりやって大学の授業をサボる俺はどうなんだろう。
で、今日はホテルで寝るんだけどこの本忘れて読めないよって言いたかっただけです。代わりに↓でも読みます。著者曰くプレゼンはSEXらしいです。
- 作者: 平林純
- 出版社/メーカー: 技術評論社
- 発売日: 2006/11/11
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 62回
- この商品を含むブログ (25件) を見る
*1:とても巨大な数になる
ビックサイト行ってくる
初めて中に入る。