Entries from 2007-11-10 to 1 day

新しい視点

コンパイラと VM の開発を始めて新しい視点が加わった。 静的に決まるものとそうでないものを区別して考える機会が多くなった。 コンパイラの本を読んでいれば、型の話のあたりでいやというほど、この手の話が出てくるのだけど本で読むのと感覚が違う。 コン…

define の実装 - Scheme VM を書く

方針は決まったので実装。 あらかじめやることを列挙しよう。 symbol から値を lookup する関数を書く。 VM に上記関数を組込む。 VM に define-global 命令を追加する (define-global id) accumulator に置かれているものを id に結び付かせる 以前 define …

ロベール本

c++

id:yaneuraoさんのところで知ったのだけど。ロベールのC++入門講座。 昔とてもお世話になったなあ。>ロベールさんのサイト。 欲しいかも。

解決せず

スタバで6時間ほどコーディングして80%くらいできたのだけど。 残り20%が難しい。 頭を切り替えるために風呂入るか。

熱い

スタバでの学生 A と学生 B の会話。 A.「僕の尊敬する人が、すごいセミナーに参加していて、そこに来たゲストがすごくて、それがどういう人かというと」 A.「xxx って知っている?」 B.「うん」 A.「xxx を日本で初めて construction したのがその人なわけ…

define の実装方法に関する考察 - Scheme VM を書く

以下の2例に関して define の実装を考える。 ;; パターン A (define a 3) ((lambda () a)) ;; パターン B (define b (lambda () c)) (define c 4) (b) define はトップレベルでのみ有効とし2つ実装方法を考えてみる。 global 変数は global に管理する ヒー…

display closure に トップレベル define

define の実装に display closure をそのまま流用できないか考えるのが今日の課題。 出来そうな気がするのだけど、define されたタイミングとその変数が使われたタイミングが前後するのがやっかいそう。

C++ でもテスト通った

C++ で書いた VM でもテスト通った。 コンパイラ側に多くの負担が行っているので VM の実装は楽。

きたきた

C++でコード書いているのに (if って書きはじめた。

今日は調子が良い

困難にぶつかって悩む。間違う。間違う。間違う。解決する。のようなペースで進んでいる。 無駄がない。 間違うのも必要な過程。

global変数を一度参照すると次から参照できなくなるバグ

global変数を一度参照すると次から参照できなくなるバグがあったので調べた。 Gauche の hash-table-get を使うべきところを hash-table-pop! を使ってた。同様に hash-table-push! =>hash-table-put! 。 ドキュメントを斜めよみして使うからこんなことに(…