yarv-dev:669
From: Shiro Kawai <shiro lava.net>
Date: Fri, 07 Oct 2005 02:51:31 -1000 (HST)
Subject: [yarv-dev:669] Re: environment in eval
From: SASADA Koichi <ko1 atdot.net> Subject: [yarv-dev:668] Re: environment in eval Date: Fri, 07 Oct 2005 20:45:27 +0900 > 「保持する」とあって、それが拡張されていくイメージがなかったので、私はど > んどん増えていくのが不自然に感じているんではないかと思います。 > > 他の言語で同じような機能がないかなぁと考えてみたのですが、私の少ない言 > 語の知識では思いつきませんでした。 デバッグ用なんかでレキシカルな束縛を含む環境を第一級オブジェクトとして 取れる処理系は色々あると思いますが、evalで束縛を追加してゆけるという のは私も他に知りません。レキシカル束縛を静的なものとして扱う最適化 手法がえらく使いにくくなるので敬遠されそうな概念だとは思います。 インクリメンタルに変更可能な第一級の環境、というものであれば、 Symmetric Lispという処理系がそういうものを持っていました。 David Gelernter, Suresh Jagannathan, and Tom London. "Environments as First-Class Objects". POPL87. http://www.cs.purdue.edu/homes/suresh/papers/popl87.ps.gz 環境をalphaという特殊形式で陽に扱うことで、静的スコープや 動的スコープ、構造体、永続するインタプリタセッション、 遅延ストリームなど色々なことが統一的に扱えるよ、と言ってます。 これを読み直してて気付いたんですが、ファーストオーサーの David GelernterってLindaの人ですな。なるほど上記論文の 遅延ストリームのあたりはLindaっぽい匂いがします。 --shiro -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
654 2005-10-05 15:42 [ko1 atdot.net ] environment in eval 655 2005-10-05 16:01 ┗[matz ruby-lang.org ] 656 2005-10-05 16:15 ┗[ko1 atdot.net ] 657 2005-10-05 16:36 ┗[matz ruby-lang.org ] 658 2005-10-05 16:48 ┗[ko1 atdot.net ] 660 2005-10-05 17:50 ┗[matz ruby-lang.org ] 661 2005-10-05 18:03 ┗[ko1 atdot.net ] 662 2005-10-05 18:26 ┗[matz ruby-lang.org ] 663 2005-10-06 11:52 ┗[ko1 atdot.net ] 664 2005-10-07 16:45 ┗[matz ruby-lang.org ] 665 2005-10-07 17:03 ┗[ko1 atdot.net ] 666 2005-10-07 17:15 ┗[usa garbagecollect.j] 667 2005-10-07 17:19 ┗[matz ruby-lang.org ] 668 2005-10-07 20:45 ┣[ko1 atdot.net ] -> 669 2005-10-07 21:51 ┃┗[shiro lava.net ] 670 2005-10-07 23:34 ┗[nobu.nokada softhome] 671 2005-10-08 00:40 ┗[matz ruby-lang.org ]