2006/07/25
継続は力なり
「境界を越える: 継続とWeb開発、そしてJavaプログラミング」 - http://www-06.ibm.com/jp/developerworks/java/060412/j_j-cb03216.shtml
kahua(http://www.kahua.org/)の紹介文で「継続」という単語を目にしたことがありましたが、今まで何を意味しているのかわかっていませんでした。
上の記事を読んで、かつRubyのcallccのマニュアルの「setjmp(3)/longjmp(3)みたいなもの」、という説明でようやく理解できました(たぶん)。
setjmp(3)は、極論すると、PC(プログラムカウンタ)とSP(スタックポインタ)のふたつを覚えておくことで、コールスタックの深いところから広域脱出できるテクニックです。
「継続」はsetjmp(3)に似た効果をもちますが、(ぼくの理解が正しければ)SPだけを退避しておくsetjmp(3)と違い、スタックメモリ全体を退避させる必要があります。スレッド単位のコアダンプのようです。
実に富豪的です。ソフトウェアを軽く速くして安いPCでも快適に動作させたいと願うぼくのような貧民プログラマは淘汰されそうです。
- Category(s)
- カテゴリなし
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/inoue/continuations/tbping