hatsugai
Hatsugai と申します。Winston & Horn から LISP に入り、Structure and Interpretation of Computer Programs ですっかり Scheme に魅せられてしまったものです。Scheme が実務で使われているという例を1つ増やすために(加えて Scheme でごはんが食べられるようになるために)日々コードを書いています。
2度目の処理系実装を始めたときの最新レポートは R6RS だったのに、ライブラリをちょこちょこ整備している間に R7RS とかいわれて、ちょっとがっくりきている今日このごろです。
よろしくお願いします。
作っている処理系概要
- 3imp の stack ベース
- 3imp の中間コードから x86 native コード生成
- let (はマクロでlambda にしているだけなので、関数位置に直接書かれた lambda)だけちょこっと効率化
- マルチスレッドあり(同期オブジェクト系は貧しい&怪しい)
- GC は教科書通りのコピー型
- Platform は(小声で)MS-Windows ダケデス
- すべて Scheme でウィンドウシステムとウィジェットを書きました。
- ウィンドウシステム上のエディタの中で eval できます ( ̄ー ̄)。これが出来たときはうれしくて踊りました。
- Beautiful code の Kent Dybvig さんのアルゴリズムを読んで syntax-case を実装してはみたものの、速度が遅く、正しさも確信が持てなかったので諦めました^^;。
- 代わりに Common Lisp 風のマクロとパッケージシステムを入れました(これはどうなのかな、、、)。環境(継承あり)もあるので、どっちでモジュール化するか、混乱中です。コードがたまる前に R7RS に移れってことかな。
- 継続は、実装はしてみたものの、あまり自信がないです。スレッドをまたげないです(これはふつうできるものなのかな?)。
- FFI はなくて、必要が出るたびに組み込み関数が無秩序に増えてます^^;。
Shiro さん、ひげぽんさん、Y.Fujita さんの書かれたものを参考にさせていただきました。この場を借りてお礼申し上げます。ありがとうございます。
現在 64bit 化に向けて並行 GC の勉強中です。
メモ
College
Last modified : 2023/10/24 05:46:26 UTC