[Gauche-devel-jp] Re: CPS を知るのによい参考文献

アーカイブの一覧に戻る

Shiro Kawai shiro****@lava*****
2004年 5月 7日 (金) 02:45:48 JST


From: Katsutoshi Itoh <cut-s****@maste*****>
Subject: [Gauche-devel-jp] Re: CPS を知るのによい参考文献
Date: Fri, 07 May 2004 00:56:02 +0900

> In message <20040****@lava*****>, Shiro Kawai writes:
> >ここもわかりやすいです。
> >「SchemeとActor理論」
> >http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/actor/actor.html
> 
> http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/cont_intro.html
> 
> 同じサイトのこれ↑目からウロコでした。
> Cでもこんな簡単に脱出ができるとは知らなかったです。

この説明はあくまで、「returnを他の関数へ渡すことができたら」という
架空の話ですね。
実際に動くものとしては、(脱出をするなら)setjmp/longjmpを使わざるを
得ないと思います。

Gaucheの正規表現エンジンはCで書かれていますが一種のCPSで、
マッチが成功する限り、次のマッチを行う関数を呼び出し続けて、最後に
longjmpします。
(完全なCPSだと失敗の継続と成功の継続の二つを渡すのが綺麗なんですが、
「通常のreturn」=失敗継続、「再帰呼び出し→longjmp」=成功継続
としています)

--shiro



Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る