×

Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform. (English) Zbl 1302.68187

Proceedings of the 14th ACM SIGPLAN international conference on functional programming, ICFP ’09, Edinburgh, UK, August 31 – September 2, 2009. New York, NY: Association for Computing Machinery (ACM) (ISBN 978-1-60558-332-7). ACM SIGPLAN Notices 44, No. 9, 317-328 (2009).

MSC:

68Q60 Specification and verification (program logics, model checking, etc.)
68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)

Software:

Yampa

References:

[1] Agha, Gul, and Carl Hewitt. 1987. Concurrent programming using actors. In Object-oriented concurrent programming, 37-53. MIT Press, Cambridge, MA, USA.
[2] Appel, Andrew W. 1992. Compiling with continuations. Cambridge University Press, New York, NY, USA.
[3] Appel, Andrew W., and Trevor Jim. 1989. Continuation-passing, closurepassing style. In Proc. POPL’89, 293-302. 10.1145/75277.75303
[4] Asai, Kenichi. 2007. On typing delimited continuations: Three new solutions to the printf problem. Tech. Rep. OCHA-IS 07-1, Department of Information Science, Ochanomizu University, Tokyo, Japan. Available from: http://pllab.is.ocha.ac.jp/ asai/papers/.
[5] Asai, Kenichi, and Yukiyoshi Kameyama. 2007. Polymorphic delimited continuations. In Proc. APLAS’07, vol. 4807 of LNCS, 91-108.
[6] Atkey, Robert. 2006. Parameterised notions of computation. In Proc. MSFP’06, 31-45. Electronic Workshops in Computing, British Computer Society.
[7] Balat, Vincent, and Olivier Danvy. 1997. Strong normalization by run-time code generation. Tech. Rep. BRICS RS-97-43, Department of Computer Science, University of Aarhus, Denmark.
[8] Biernacki, Dariusz, Olivier Danvy, and Chung-chieh Shan. 2006. On the static and dynamic extents of delimited continuations. Science of Computer Programming 60(3):274-297. 10.1016/j.scico.2006.01.002 · Zbl 1101.68442
[9] Clinger, William D., Anne H. Hartheimer, and Eric M. Ost. 1999. Implementation Strategies for First-Class Continuations. Higher-Order and Symbolic Computation 12(1):7-45. 10.1023/A:1010016816429 · Zbl 0935.68004
[10] Cooper, Gregory H., and Shriram Krishnamurthi. 2006. Embedding dynamic dataflow in a call-by-value language. In Proc. ESOP’06, 294-308. 10.1007/11693024_20 · Zbl 1178.68123
[11] Courtney, Antony, Henrik Nilsson, and John Peterson. 2003. The Yampa arcade. In Proc. ACM SIGPLAN workshop on Haskell, 7-18. 10.1145/871895.871897
[12] Danvy, Olivier. 1998. Functional unparsing. J. Funct. Program. 8(06):621-625. 10.1017/S0956796898003104 · Zbl 0928.68018
[13] Danvy, Olivier, and Andrzej Filinski. 1989. A Functional Abstraction of Typed Contexts. Tech. Rep., DIKU University of Copenhagen, Denmark.
[14] —. 1990. Abstracting control. In Proc. LFP’90, 151-160. 10.1145/91556.91622
[15] —. 1992. Representing Control: A Study of the CPS Transformation. Mathematical Structures in Computer Science 2(4):361-391. · Zbl 0798.68102
[16] Danvy, Olivier, Kevin Millikin, and Lasse R. Nielsen. 2007. On one-pass CPS transformations. J. Funct. Program. 17(6):793-812. 10.1017/S0956796807006387 · Zbl 1130.68037
[17] Dragos, Iulian, Antonio Cunei, and Jan Vitek. 2007. Continuations in the Java Virtual Machine. In Proc. ICOOOLPS’07.
[18] Dyvbig, R. Kent, Simon Peyton-Jones, and Amr Sabry. 2007. A monadic framework for delimited continuations. J. Funct. Program. 17(6):687-730. 10.1017/S0956796807006259 · Zbl 1130.68038
[19] Elliott, Conal, and Paul Hudak. 1997. Functional reactive animation. In Proc. ICFP’97. 10.1145/258948.258973 · Zbl 1369.68094
[20] Felleisen, Matthias. 1991. On the expressive power of programming languages. Science of Computer Programming 17(1-3):35-75. 10.1016/0167-6423(91)90036-W · Zbl 0745.68033
[21] Felleisen, Matthias, Mitch Wand, Daniel Friedman, and Bruce Duba. 1988. Abstract continuations: a mathematical semantics for handling full jumps. In Proc. LFP’88, 52-62. 10.1145/62678.62684
[22] Felleisen, Mattias. 1988. The theory and practice of first-class prompts. In Proc. POPL-88, 180-190. 10.1145/73560.73576
[23] Filinski, Andrzej. 1994. Representing monads. In Proc. POPL’94, 446-457. 10.1145/174675.178047
[24] —. 1999. Representing layered monads. In Proc. POPL’99, 175-188. 10.1145/292540.292557
[25] Flanagan, Cormac, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. 1993. The essence of compiling with continuations. In Proc. PLDI’93, vol. 28(6), 237-247. 10.1145/155090.155113
[26] Fournet, Cedric, and Georges Gonthier. 1996. The reflexive CHAM and the join-calculus. In Proc. POPL’96, 372-385. 10.1145/237721.237805
[27] Gabriel, Richard P. 1991. The design of parallel programming languages. In Artificial intelligence and mathematical theory of computation: papers in honor of john mccarthy, 91-108. Academic Press Professional, San Diego, CA, USA. · Zbl 0800.68291
[28] Gasbichler, Martin, and Michael Sperber. 2002. Final shift for call/cc:: direct implementation of shift and reset. In Proc. ICFP’02, 271-282. 10.1145/581478.581504
[29] Haller, Philipp, and Martin Odersky. 2006. Event-based programming without inversion of control. In Proc. JMLC’06, vol. 4228 of LNCS, 4-22. 10.1007/11860990_2
[30] —. 2009. Scala actors: Unifying thread-based and event-based programming. Theor. Comput. Sci 410(2-3):202-220. 10.1016/j.tcs.2008.09.019 · Zbl 1162.68396
[31] Kameyama, Yukiyoshi, and Takuo Yonezawa. 2008. Typed dynamic control operators for delimited continuations. In Proc. FLOPS’08, vol. 4989 of LNCS, 239-254. · Zbl 1137.68346
[32] Kiselyov, Oleg. 2005. How to remove a dynamic prompt: static and dynamic delimited continuation operators are equally expressible. Tech. Rep. TR611, Department of Computer Science, Indiana University.
[33] —. 2007. Genuine shift/reset in haskell98. Announcement and explanations posted on the Haskell mailing list on 12/12/2007. Implementation available from: http://okmij.org/ftp/Haskell/ShiftResetGenuine.hs.
[34] Kiselyov, Oleg, Chung-chieh Shan, and Amr Sabry. 2006. Delimited dynamic binding. In Proc. ICFP’06, 26-37. 10.1145/1159803.1159808 · Zbl 1321.68128
[35] Lea, Doug. 2000. A Java fork/join framework. In Proc. ACM Java Grande, 36-43. 10.1145/337449.337465
[36] Moors, Adriaan, Frank Piessens, and Martin Odersky. 2008. Generics of a higher kind. In Proc. OOPSLA’08, 423-438. 10.1145/1449764.1449798
[37] Nielsen, Anders Bach. 2008. Scala compiler phase and plug-in initialization. Available from: http://lampsvn.epfl.ch/svn-repos/scala/lamp-sip/compiler-phase-init/sip-00002.xhtml.
[38] Nielsen, Lasse R. 2001. A selective CPS transformation. Tech. Rep. RS-01-30, BRICS, Department of Computer Science, Aarhus University.
[39] Odersky, Martin. 2000. Functional Nets. In Proc. European Symposium on Programming Languages and Systems, 1-25. · Zbl 0971.68604
[40] Pettyjohn, Greg, John Clements, Joe Marshall, Shriram Krishnamurthi, and Matthias Felleisen. 2005. Continuations from generalized stack inspection. SIGPLAN Not. 40(9):216-227. 10.1145/1090189.1086393 · Zbl 1302.68047
[41] Rompf, Tiark. 2007. Design and implementation of a programming language for concurrent interactive systems. Master’s thesis, Institute of Software Technology and Programming Languages, University of Lubeck, Germany. Available from: http://vodka.nachtlicht-media.de/docs.html.
[42] Rose, John. 2008. JSR 292: Supporting dynamically typed languages on the Java platform. http://jcp.org/en/jsr/detail?id=292.
[43] Shan, Chung-chieh. 2004. Shift to control. In Proc. ACM SIGPLAN workshop on Scheme and functional programming, 99-107.
[44] —. 2007. A static simulation of dynamic delimited control. Higher-Order and Symbolic Computation 20(4):371-401. 10.1007/s10990-007-9010-4 · Zbl 1128.68010
[45] Srinivasan, Sriram. 2006. A thread of one’s own. In New horizons in compilers workshop, hipc, bangalore.
[46] Srinivasan, Sriram, and Alan Mycroft. 2008. Kilim: Isolation-typed actors for Java. In Proc. ECOOP’08, 104-128. 10.1007/978-3-540-70592-5_6
[47] Strachey, Christopher, and Christopher P.Wadsworth. 2000. Continuations: A mathematical semantics for handling full jumps. Higher-Order and Symbolic Computation 13(1):135-152. 10.1023/A:1010026413531 · Zbl 0951.68078
[48] Thielecke, Hayo. 2003. From control effects to typed continuation passing. In Proc. POPL’03, 139-149. 10.1145/604131.604144 · Zbl 1321.68132
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.