''例外なんてもう古い!? 近未来の制御演算子を学ぼう!'' (追記歓迎) #contents *限定継続とは? [#u1b8f2d6] 継続は「その後の計算」を表現したものです。対して、限定継続は「特定の範囲のその後の計算」を表現したものです。つまり、継続がグローバルな「その後」とイメージするならば、ローカルな継続が限定継続という感じです。 #br ~限定継続を扱う演算子には主にshift/resetのペアとprompt/controlのペアがあります。それぞれ静的な演算子、動的な動的な演算子と呼ばれます。(その理由はschmeとかのdynamic bindingとかと関係あるらしいけど、よくわかりません) #br ~shift/resetの方はCPS変換による意味論が定義しやすく、扱いやすいという特徴があります。一方でprompt/controlの方が(型付きの場合)表現能力が高いらしいです。 *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]] - [[浅井先生によるわかりやすい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 -- 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]] -- 特に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の表現能力を検証したよという亀山先生の論文