Lisp interpreter

id:propellaさんなど小言語を作ってみることが近所でブームになっているようである。OMetaを実際に使ったことがなかったわけなので、物は試しにLispインタープリタを書いてみた。applyとevalが陰と陽のように、あるいは磁場と電場のように絡まっている、ということをイメージしつつ、学部生時代に読まされたSICPのかすかな記憶を頼りに書く。

結果はダイナミックスコープのLispになってしまったが(環境のオブジェクトもほとんどただの辞書オブジェクトなのでstatic closureにすること自体はたいした手間ではないが)、pretty printも含めて300行くらいだからまあよしとしよう。あーでも本当にもっと昔から一生懸命勉強していればよかった。

なぜLispなのかということには微妙に理由があって、OMetaのstructural matchingを生かすのはLispである、ということで、例えば本物の属性文法評価器生成系を書くときにLispがあればもっと木構造の操作などが簡単になるだろう、という心積もりはあるわけではある。

Classmate PC

そういえばtinyBenchmarksの結果を書いていなかったが、Classmate PC上ではだいたい143,000,000 bytecode/secくらい。プロパティもPentium-M 900MHzと言っているし、俺が前使っていた(今も特殊用途で使っているが)Panasonic CF-T2と同じなのだよな。そりゃまあ速いわけだ。

OLPC

Dimitriが「お父さんに聞いたところ、Etoysの人がOLPCにおけるリモート作業の面白いデモを持っていると言っていたんだけど、見せてくれないか?」と言ってきた。「お父さん」ちゃんと覚えていてくれたのだな。

Relais Baudot

Branが、"Ralais Baudot"と書かれた古い機械を見せびらかしていた。「ボードリレー」で、一ビット(というか適当な長さのon/off)を送るためのリレーだったのであろう。人と接する機械という感触を強く残したような工芸品であった。

Classmate PC

届きました。IntelOLPCに参加したというニュースとタイミングが重なったのは偶然です。見解の相違はいろいろとありますが、速いプロセッサとMary Louのディスプレイで、OSはなんであれEtoysが快適に動く環境になればよいとこどりになります。