Entries from 2007-11-01 to 1 month

考えた

プールに行って考えてきた。 明日はGauche上でWikiパーサを書く。 apply のバグは今日中に直す。

美女

スタッフが街で美しい女性を見つけ、一番美しいと思う知り合いを紹介してもらう。美しい人に自分よりも美しい人を紹介してもらうことを繰り返すことで美女を決めるという番組を見ている。 この方法をスーパーハカーにあてはめると真のスーパーハカーに出会え…

データを Parse する - Scheme VM を書く

記法をどう Parse するかはあまり考えていないが、行ごとに Parse していくだけでも処理系の強化につながるだろうと予測して作業を始めてみる。 いろいろ足りないことが分かるので追加。 string-length string->symbol number->string string-append string-…

死ぬ間際には

スタバでの60-70才くらいの3姉妹の会話から。 人は死ぬは間際には母親の名前を呼ぶらしい。 子供の名前は呼ばないとのこと。

公園

Paul GrahamがSymbolicsやLispマシンが微妙だと思った理由

But not so fast that that alone made me switch. What made me switch was that Lisp machines (both Symbolics and LMI) were so gratuitously, baroquely complex. The manuals filled a whole shelf. Each component of the software was written as if…

Schemeの可変個引数の大事な部分 - Scheme VM を書く

可変個引数をサポートする場合はここを押さえましょう。 もはや誰向けの記事だか分かったものではない。 (proc 1 2) というコードがあったとしてコンパイラはこの proc が何個の引数をとるかは知ることが出来ない。 例えば (define (proc a b) ...) ; (1) (d…

set!/set-car!/set-cdr!

たまに set! 系を使うと心苦しいのはなんでだろう。 set! だとすぐに書けるから書いてしまうのだよなあ。

リチャード・ストールマンのMy Lisp Experiences and the Development of GNU Emacsを読んだ

リチャード・ストールマンのMy Lisp Experiences and the Development of GNU Emacs を読んだ。 but people wanted to implement something like that on other systems where they had not already written a Lisp compiler. Well, if you didn't have the …

「Symbolics はなぜ失敗したか」を読んだ

「Symbolics はなぜ失敗したか」を読んだ。(Why Did Symbolics Fail? « Dan Weinreb’s Weblog。) 作者の履歴はDan Weinreb。斜め読みなので誤読しているかもしれないけど目に留まったところをピックアップ。 At the MIT Artificial Intelligence Lab, fiftee…

落ち着け

正規表現サポートのコードを書きはじめたががんばりすぎなので落ち着こう。 文章を読むか本を読むか音楽を聞こう。

データファイルを読んで表示する - Scheme VM を書く

基本機能として open-input-file, read, close-input-por を実装する。 補助機能として call-with-input-file もライブラリとして実装しておけばすこしはきれいに。ついでに HTTP の レスポンスヘッダを出力する処理を分ける HTML を出力する(Gauche の html…

global変数判定のバグ - Scheme VM を書く

コンパイル時の global 変数判定のバグを発見。 わりと深刻なのでまじめに考えないとまずい。 症状 (compile-lambda '(lambda () (print "Status: 200 OK")) '() '() '() '(HALT)) => (REFER_GLOBAL print (ARGUMENT (CLOSE 1 (CONSTANT "Status: 200 OK" (A…

僕らの音楽

僕らの音楽がまた録画できていなかった。 きっと何かの都合で放送時間がずれたのだろう。 とても悲しい。

正規表現

鬼車を使って regexp? regexp->string rxmatch 正規表現を手続きとして呼出し rxmatch-start rxmatch-end rxmatch-substring をサポートした。 一度通った道なので特に障害は無し。 まとめは明日。Scheme Object がからむ定型のC関数は、Gauche のようにS式…

Hello, World CGI - Scheme VM を書く

原始的ですが。 スクリーンショット work.scm (define (print s) (display s) (display "\n")) (print "Status: 200 OK") (print "Content-type: text/html") (print "\n") (print "Hello, World\n") work.scmc #!/usr/local/bin/mosh (30 1 (2 (9 1 (16 (11…

開発効率を上げる作業 - Scheme VM を書く

display 手続きを実装する 実装した。 開発サイクルの効率化 VM用にコンパイル->VMコンパイルしなおしのサイクルが面倒なので (read) を活用しよう。 流れ 実際の Scheme のコード test.scm を編集 コンパイル済 test.scmc へ (auto-compileで) VM は compil…

あとで読む

Why Did Symbolics Fail? « Dan Weinreb’s Weblog

Gambit, JazzScheme

最近 reddit.com 見かける、GambitとかJazzSchemeとかどうなんだろう。 流行り具合とか速度とか。(速度は調べれば分かるか。)

ところの子

ひげ「やった!」 よめ「どうしたの?」 ひげ「Gaucheのread.cが動いたよ」 よめ「へぇーすごいね」 ひげ「Gaucheって知ってるの?」 よめ「知ってるよー。しろーさんところの子の」

開発者が語るMonaのこれから

先日のインタビューが公開されました。 開発者が語るMonaのこれから − @IT自分戦略研究所

散歩

今日は早起きしてカフェに行き午前中にノルマを片付けた。 その後、奥さんと世田谷公園方面に散歩に行きパスタランチ。 つぎに世田谷公園でレジャーシートを敷いて、昼寝&カメラでうだうだ。 涼しくなってきたころに、帰り道で未知のスーパーに入り夕食の買…

エアメールでぽすか

エアメールでぽすかを送るために郵便局。 料金が分からなかったので窓口へ。 70円也。安っ。 物理的にぽすかを送って70円とは安いね

クラウス・フォアマン

ジョン・レノン スーパー・ライヴにクラウス・フォアマンが出ると発表されています。 1曲だけど。これはすごいことだよ。 彼のベースライン好きなんだよなあ。

apply を実装 - Scheme VM を書く

スタックにつまれた pair を展開してスタックに押しもどす。(必要であれば拡張する)。 という感じで実装。

Gauche read.c を移植する - Scheme VM を書く

移植というとおおげさだけど Gauche の read.c を使わせてもらって (read) を実装する。 かなり適当に移植したのだけど一発で動いた。 移植時にはマクロや、これはひどいというマクロでいろいろ対処しました。 簡単に read できて大変ありがたい。

ぽすか

知り合いからエアメールが届いた。 返事用のポストカードを雑貨店で物色していたら気に入ったイラストのものを発見。 イラストレータのワカマツカオリさんの描いたもの。 今ちょうど横浜赤レンガ倉庫でイラストを展示しているみたい。

次の一手を考える - Scheme VM を書く

実装の優先順位を考える。 今はとにかく独り立ちが望まれるので Gauche で動いているコンパイラが VM で動くようにすることが当面の目標。 コンパイラで使用している構文を優先的に実装。 あとは、(read) 相当をどう実装するかだけど Gauche の read.c を何…

リファクタリング - Scheme VM を書く

目的を明確に、具体的に汚いと思うポイントと列挙してから取り組む。 shirt-args の引数の意味が分かりづらい スタック操作系の手続きは引数の順序を固定する find-free 時の特定命令時の処理を一つにまとめる parse-lambda-vars は多値を返すように compile…

Android

開発してる方々の名前でググらせて頂くとと2人ともBeOSを開発されていた方らしいへぇ。