kawa-tの日記: Kent Dybvigのあれ
日記 by
kawa-t
Schemeの実装者ので間では、Three Implementation Models for Scheme (R. Kent Dybvig, 1987)を参考にされている方が多いようですが、私は最近になって、ようやく、その存在を知ったところです。「スタックベースモデル」とか「ヒープベースモデル」とか、あまり意識してなかったのですが、「ヒープベースモデル」で作っていたようです。ただ、ribのようなものは使っておらず、スタックに引数のポインタを直接入れ、スタックフレームは使わず、レジスタ保存用オブジェクトを作り、そのポインタをスタックに入れていました。
今はレジスタ保存用オブジェクトを排除し、スタックフレームを使う形に書き換えて、「スタックベースモデル」に近づけているところです。call/ccで取り出した継続の呼び出し処理を書き換え終えた後に、ローカルの値はスタックに入れるようにして、少しずつ、ヒープの利用率を下げていく予定。
#そもそも書き換え始めたきっかけは、竹内関数に打ちのめされたこと。
Kent Dybvigのあれ More ログイン