[Gauche-devel-jp] Re: 最後にメッセージを受け取るアクターと手続きの終りの意味

Back to archive index

IRIYA, Kazunori iriya****@mcn*****
2004年 5月 16日 (日) 15:44:19 JST


Shiro さん、

| ご指摘の通り、「呼び出して戻って来ない」というモデルは、計算過程の
| 説明にはなりますが、その計算を利用するためには、どうにかして計算の
| 結果を得る必要があります。そして、(lambda (x) x) が実際に計算の
| 結果を得るための終端点になります。

[中略]

| 従って、「最後に何が起こるか」という話の具体的な答えは、どのような
| 計算機モデルを想定しているのかによって違って来ます。が、どのモデルを
| 採るにせよ、「『CPSなプログラムの値を得る』ということは、ある特別な
| 終端点を継続として渡してプログラムを評価することである」と抽象化
| できるということです。

[中略]

| 「値を得るとはどういうことか」という具体的な動作は実装者次第、というわけです。

CPS 計算の解釈という名のパズルに、CPS なプログラムの計算の結果 (値) を得
るというピースが抜けていたのですね。そのことに気づきました。

また「戻る」という解釈も計算モデルにひもつく話として読めば、「戻らないけ
ど戻る」と思っていたこともすっきりしたように思います。

プログラムの締めくくり方がわかったので、さっそく CPS でないプログラムと 
CPS なプログラムを結合させる所に取り組んでみます。

解説ありがとうございました。

また、

| プログラムとしてrepl自体を含むようなモデルは、
| Mattias Felleisen, The theory and practice of first-class prompts, POPL 1988
| でフォーマルに議論されています。上の(*)で示したモデルの話も説明されています。

こちらについては、ちょっとさがしてみます。( http://library.readscheme.org/page6.html )
には見当たらなかった... (^^; 

入谷





Gauche-devel-jp メーリングリストの案内
Back to archive index