• 追加された行はこの色です。
  • 削除された行はこの色です。
''例外なんてもう古い!? 近未来の制御演算子を学ぼう!''
(追記歓迎)

#contents

*限定継続とは? [#u1b8f2d6]
継続は「その後の計算」を表現したものです。対して、限定継続は「特定の範囲のその後の計算」を表現したものです。つまり、継続がグローバルな「その後」とイメージするならば、ローカルな継続が限定継続という感じです。
#br
~限定継続を扱う演算子には主にshift/resetのペアとprompt/controlのペアがあります。それぞれ静的な演算子、動的な動的な演算子と呼ばれます。(その理由はschmeとかのdynamic bindingとかと関係あるらしいけど、よくわかりません)
#br
~shift/resetの方はCPS変換による意味論が定義しやすく、扱いやすいという特徴があります。一方でprompt/controlの方が(型付きの場合)表現能力が高いらしいです。

*限定継続の制御演算子 reset/shiftとは? [#rb0e2fcd]
*Dybvig流の演算子 [#p4b09d5d]
newPrompt, pushPrompt, withSubCont, pushSubCont
*参考文献 [#bba437c4]
*reset/shiftとは? [#rb0e2fcd]
- http://d.hatena.ne.jp/reinyannyan/20080219/p1
- http://community.schemewiki.org/?composable-continuations-tutorial
- [[浅井先生によるわかりやすいshift/reset解説:http://pllab.is.ocha.ac.jp/~asai/papers/contfest08slide.pdf]]

*prompt/controlとは? [#p4b09d5d]
-[[A Monadic Framework for Delimited Continuations:http://www.cs.indiana.edu/~sabry/papers/monadicDC.pdf]]
-- R. Kent Dybvig, Simon Peyton Jones, Amr Sabry
-- モナドで限定継続を扱う制御演算子の話。上の Dybvig流というやつ。
-- newPrompt, pushPrompt, withSubCont, pushSubCont

*参考文献 [#bba437c4]
-[[Delimited Dynamic Binding:http://www.cs.indiana.edu/~sabry/papers/delim-dyn-bind.pdf]]
-- Oleg Kiselyov, Chung-chieh Shan, Amr Sabry
-- Dynamic Binding と Delimited Continuation を同時に使おうとしたときの
セマンティクスと実装について。Oleg氏と話をするならこれは読んでおこう。
-[[An Operational Foundation for Delimited Continuations in the CPS Hierarchy(lambda-the-ultimate):http://lambda-the-ultimate.org/node/1197]]
-[[星の贈り物(2006年4月の日記):http://page.freett.com/shelarcy/log/2006/diary_04.html#uduki292006]]
-[[星の贈り物(2006年10月の日記):http://page.freett.com/shelarcy/log/2006/diary_10.html#delimted_dynamic_binding_again]]
-[[[kahua-dev:01027] 部分継続の使いどころはどこですか:http://mlarchive.kahua.org/mlarchive/kahua-dev/msg01026.html]]
-[[Oleg氏による Delimted Continuation への貢献:http://okmij.org/ftp/Computation/Continuations.html]]
-- 特にDybvig流演算子のOCamlへの実装は必見。
-- 特にdynamic control operator のOCamlへの実装(caml-shift)は必見。多相で永続化可能。ただしバイトコードのみ

- PLT Scheme のなかの人による解説
--[[Their Interaction with dynamic-wind:http://schemekeys.blogspot.com/2006/11/prompts-their-interaction-with-dynamic.html]]
--[[An Introduction to the Prompt Primitives:http://schemekeys.blogspot.com/2006/12/delimited-continuations-in-mzscheme.html]]
--[[Going Further with the Primitives:http://schemekeys.blogspot.com/2007/01/going-further-with-primitives.html]]
--[[Odd and Ends:http://schemekeys.blogspot.com/2007/01/odd-and-ends.html]]
- [[継続祭り:http://logic.cs.tsukuba.ac.jp/Continuation/]]
-- [[論文一覧:http://logic.cs.tsukuba.ac.jp/Continuation/program.html]]
-[[Polymorphic Delimited Continuations:http://logic.cs.tsukuba.ac.jp/~kam/paper/aplas07.pdf]]
-- 多相なshift/resetを作ったという浅井先生の論文
- [[Typed Dynamic Control Operators for Delimited Continuations:http://logic.cs.tsukuba.ac.jp/~kam/paper/flops2008.pdf]]
-- 型付きprompt/controlの表現能力を検証したよという亀山先生の論文

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS