[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:226

From: MAEDA Atusi <maeda-yarv atusi.org>
Date: Fri, 17 Sep 2004 12:02:13 +0900
Subject: [yarv-dev:226] Re: return from orphan Proc object

SASADA Koichi <ko1 atdot.net> writes:

>  これに、こいつ自身に継続情報も詰め込んじゃおうかなあ、とか
> 考えてるんですが、そうすると本当にどうなるかはちょっとわかり
> ません。なんか出来そうな気もするんですが、やっぱりよくわから
> ないな。

Procと継続は別だと思うけど...
まあ、継続はProcのサブクラスと考えることもできるかも知れないが。

>  で、なんでそんな無謀なことをしようとしてるかというと、

以下は、良く分かりませんでした。文章で説明されても頭が追い付かないかも。

この辺の古典は:

スパゲティスタック: (環境フレーム、制御フレームが、木構造をなすような
  スタックをどう実装するか。フレームに参照カウントつけたり、ときどきコ
  ンパクションしたり。)
  Bobrow, D.G., and Wegbreit, B. A model and stack implementation of
  multiple environments. Comm. ACM 16, 10 (Oct. 1973), 591-603.

マカロニスタック: (制御フレームは別のスタックにすると、ずっと効率が良
  くなるという話。)
  Guy Lewis Steele Jr., Macaroni is better than spaghetti. In Proceedings
  of the Symposium on Artificial Intelligence and Programming Languages,
  pages 60--66. Also published as SIGPLAN Notices 12(8) and SIGART
  Newsletter 64, August 1977.

ファントムスタック: (たいていはスタックなんだけど、「解放しちゃいけ
ない」ばあいはGCに切替えるようなデータ構造。)
  Richard M. Stallman, Phantom Stacks: if you look too hard, they aren't
  there, MIT AI Memo 556 (1980)
  http://citeseer.ist.psu.edu/stallman80phantom.html

Cheney on the M.T.A.: (データは全部スタック内に割り付けちゃう。スタック
  は伸びる一方で、いっぱいになったらGC。Cでポータブルに末尾再帰を実装可。)
  Baker, H. G.: 1994, `CONS Should Not CONS Its Arguments, Part II:
  Cheney on the M.T.A.'. http://citeseer.ist.psu.edu/baker94cons.html

フレームをスタックでなくヒープに割り付けた方が速いという主張
  Andrew W. Appel. Garbage collection can be faster than stack
   allocation. Information Processing Letters, 25(4):275--279, June
   1987. http://citeseer.ist.psu.edu/appel87garbage.html

上への反論
  James S. Miller and Guillermo J. Rozas, Garbage Collection is Fast,
  but a Stack is Faster, MIT AI MEMO-1462, 1994
  http://citeseer.ist.psu.edu/miller94garbage.html

あたりかなあ。

				前田敦司

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       185 2004-09-15 21:12 [ko1 atdot.net       ] return from orphan Proc object          
       187 2004-09-15 22:02 ┣[maeda-yarv atusi.org]                                       
       188 2004-09-16 01:01 ┃┗[matz ruby-lang.org  ]                                     
       190 2004-09-16 01:45 ┃ ┗[ko1 atdot.net       ]                                   
       192 2004-09-16 02:13 ┃  ┗[matz ruby-lang.org  ]                                 
       193 2004-09-16 07:53 ┃   ┗[ko1 atdot.net       ]                               
       194 2004-09-16 08:14 ┃    ┗[matz ruby-lang.org  ]                             
       195 2004-09-16 08:37 ┃     ┣[ko1 atdot.net       ]                           
       196 2004-09-16 08:50 ┃     ┃┣[matz ruby-lang.org  ]                         
       198 2004-09-16 12:11 ┃     ┃┗[maeda-yarv atusi.org]                         
       202 2004-09-16 16:32 ┃     ┃ ┗[ko1 atdot.net       ]                       
       211 2004-09-16 17:52 ┃     ┃  ┗[maeda-yarv atusi.org]                     
       214 2004-09-16 18:02 ┃     ┃   ┗[ko1 atdot.net       ]                   
       197 2004-09-16 11:47 ┃     ┗[maeda-yarv atusi.org]                           
       199 2004-09-16 14:04 ┃      ┣[matz ruby-lang.org  ]                         
       200 2004-09-16 16:23 ┃      ┃┣[ko1 atdot.net       ]                       
       204 2004-09-16 16:58 ┃      ┃┃┣[matz ruby-lang.org  ]                     
       208 2004-09-16 17:22 ┃      ┃┃┃┗[ko1 atdot.net       ]                   
       209 2004-09-16 17:30 ┃      ┃┃┃ ┗[matz ruby-lang.org  ]                 
       212 2004-09-16 17:53 ┃      ┃┃┃  ┗[ko1 atdot.net       ]               
       216 2004-09-16 18:18 ┃      ┃┃┃   ┗[matz ruby-lang.org  ]             
       207 2004-09-16 17:19 ┃      ┃┃┗[maeda-yarv atusi.org]                     
       210 2004-09-16 17:42 ┃      ┃┃ ┗[ko1 atdot.net       ]                   
       213 2004-09-16 18:01 ┃      ┃┃  ┣[maeda-yarv atusi.org]                 
       219 2004-09-16 18:24 ┃      ┃┃  ┃┗[ko1 atdot.net       ]               
       224 2004-09-17 00:21 ┃      ┃┃  ┃ ┗[maeda-yarv atusi.org]             
       225 2004-09-17 00:45 ┃      ┃┃  ┃  ┗[ko1 atdot.net       ]           
->     226 2004-09-17 12:02 ┃      ┃┃  ┃   ┗[maeda-yarv atusi.org]         
       227 2004-09-17 12:11 ┃      ┃┃  ┃    ┣[ko1 atdot.net       ]       
       228 2004-09-17 13:38 ┃      ┃┃  ┃    ┗[ko1 atdot.net       ]       
       218 2004-09-16 18:22 ┃      ┃┃  ┗[matz ruby-lang.org  ]                 
       220 2004-09-16 18:31 ┃      ┃┃   ┗[ko1 atdot.net       ]               
       221 2004-09-16 19:03 ┃      ┃┃    ┗[matz ruby-lang.org  ]             
       222 2004-09-16 19:08 ┃      ┃┃     ┗[ko1 atdot.net       ]           
       223 2004-09-16 19:12 ┃      ┃┃      ┗[ko1 atdot.net       ]         
       201 2004-09-16 16:33 ┃      ┃┗[maeda-yarv atusi.org]                       
       206 2004-09-16 17:01 ┃      ┃ ┗[matz ruby-lang.org  ]                     
       215 2004-09-16 18:06 ┃      ┃  ┗[maeda-yarv atusi.org]                   
       217 2004-09-16 18:20 ┃      ┃   ┗[matz ruby-lang.org  ]                 
       203 2004-09-16 16:38 ┃      ┗[ko1 atdot.net       ]                         
       189 2004-09-16 01:04 ┗[matz ruby-lang.org  ]                                       
       191 2004-09-16 01:51  ┗[ko1 atdot.net       ]                                     
       205 2004-09-16 16:58   ┗[ko1 atdot.net       ]