動的環境?との組み合わせについて。
我々は、shift/reset を Scheme に追加し、記述力を向上させる研究を行っている。本研究はその一環として、dynamic-wind と shift/reset の共存について取り組んだものである。まず、R5RS の表示的意味論を拡張して、shift/reset に対応した意味論を与える。次に、プログラムの実行が dynamic-wind の性質を保証することを示すために、その意味論に対応する抽象機械を導く。またあわせて、この意味論に基づいた Scheme インタプリタを作成し、shift/reset と dynamic-wind を含むプログラムが正しく動くことを確かめた。
Our long-standing aim is to add shift/reset (or equivalent) to various programming languages so that we can get more expressivity, and as a first step of this aim, we have developed a solution of this combination. We first extended the R5RS formal semantics to the one including shift/reset. Then, to prove that the execution guarantees the necessary properties for dynamic-wind, we derived an abstract machine which corresponds to our formal semantics. We also implemented a Scheme interpreter based on the semantics, and confirmed that programs which have both dynamic-wind and shift/reset ran as we expected.
- shiro
IPSJはもう会員やめちゃったからなあ。でもアブストの印象では、意味論でちゃんと書くのが大変だけどやりました、っていう話のようにも見える。
アドホックな実装としては動的環境を部分継続と一緒に切り出して、継続をつなぎ変える度に動的環境の木を辿ってthunkを実行してけばいいんじゃないかと思うんだけど、どうなんだろ。
Tags: 部分継続, 動的環境, dynamic-wind
Post a comment