{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:45:42Z","timestamp":1780994742171,"version":"3.54.1"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"DFG","award":["OS 293\/3-1"],"award-info":[{"award-number":["OS 293\/3-1"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>Effect handlers are a program structuring paradigm with rising popularity in the functional programming language community and can express many advanced control flow abstractions. We present the first implementation of effect handlers for Java - an imperative, object oriented programming language. Our framework consists of three core components: A type selective CPS transformation via JVM bytecode transformation, an implementation of delimited continuations on top of the bytecode transformation and finally a library for effect handlers in terms of delimited continuations.<\/jats:p>","DOI":"10.1145\/3276481","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":21,"title":["Effect handlers for the masses"],"prefix":"10.1145","volume":"2","author":[{"given":"Jonathan Immanuel","family":"Brachth\u00e4user","sequence":"first","affiliation":[{"name":"University of T\u00fcbingen, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Philipp","family":"Schuster","sequence":"additional","affiliation":[{"name":"University of T\u00fcbingen, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Klaus","family":"Ostermann","sequence":"additional","affiliation":[{"name":"University of T\u00fcbingen, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-40206-7_1"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2014.02.001"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_12"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158096"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3136000.3136007"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500581"},{"key":"e_1_2_2_7_1","volume-title":"Partially Evaluated. In Proceedings of the Asian Symposium on Programming Languages and Systems. Springer LNCS 4807","author":"Carette Jacques","year":"2007","unstructured":"Jacques Carette , Oleg Kiselyov , and Chung-Chieh Shan . 2007 . Finally Tagless , Partially Evaluated. In Proceedings of the Asian Symposium on Programming Languages and Systems. Springer LNCS 4807 , 222\u2013238. Jacques Carette, Oleg Kiselyov, and Chung-Chieh Shan. 2007. Finally Tagless, Partially Evaluated. In Proceedings of the Asian Symposium on Programming Languages and Systems. Springer LNCS 4807, 222\u2013238."},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/366663.366704"},{"key":"e_1_2_2_9_1","volume-title":"Proceedings of the Symposium on Trends in Functional Programming.","author":"Dolan Stephen","year":"2017","unstructured":"Stephen Dolan , Spiros Eliopoulos , Daniel Hillerstr\u00f6m , Anil Madhavapeddy , KC Sivaramakrishnan , and Leo White . 2017 . Concurrent system programming with effect handlers . In Proceedings of the Symposium on Trends in Functional Programming. Stephen Dolan, Spiros Eliopoulos, Daniel Hillerstr\u00f6m, Anil Madhavapeddy, KC Sivaramakrishnan, and Leo White. 2017. Concurrent system programming with effect handlers. In Proceedings of the Symposium on Trends in Functional Programming."},{"key":"e_1_2_2_10_1","volume-title":"OCaml Workshop.","author":"Dolan Stephen","year":"2015","unstructured":"Stephen Dolan , Leo White , KC Sivaramakrishnan , Jeremy Yallop , and Anil Madhavapeddy . 2015 . Effective concurrency through algebraic effects . In OCaml Workshop. Stephen Dolan, Leo White, KC Sivaramakrishnan, Jeremy Yallop, and Anil Madhavapeddy. 2015. Effective concurrency through algebraic effects. In OCaml Workshop."},{"key":"e_1_2_2_11_1","volume-title":"Second ECOOP Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS","author":"Dragos Iulian","year":"2007","unstructured":"Iulian Dragos , Antonio Cunei , and Jan Vitek . 2007 . Continuations in the Java virtual machine . In Second ECOOP Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS 2007). Technische Universit\u00e4t Berlin. Iulian Dragos, Antonio Cunei, and Jan Vitek. 2007. Continuations in the Java virtual machine. In Second ECOOP Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS 2007). Technische Universit\u00e4t Berlin."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796807006259"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2614628.2614630"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/317636.317779"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/99163.99178"},{"key":"e_1_2_2_16_1","volume-title":"Formal Structures for Computation and Deduction (LIPIcs)","volume":"84","author":"Hillerstr\u00f6m Daniel","year":"2017","unstructured":"Daniel Hillerstr\u00f6m , Sam Lindley , Bob Atkey , and KC Sivaramakrishnan . 2017 . Continuation Passing Style for Effect Handlers . In Formal Structures for Computation and Deduction (LIPIcs) , Vol. 84 . Schloss Dagstuhl\u2013Leibniz-Zentrum f\u00fcr Informatik. Daniel Hillerstr\u00f6m, Sam Lindley, Bob Atkey, and KC Sivaramakrishnan. 2017. Continuation Passing Style for Effect Handlers. In Formal Structures for Computation and Deduction (LIPIcs), Vol. 84. Schloss Dagstuhl\u2013Leibniz-Zentrum f\u00fcr Informatik."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/551789.853532"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500590"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2804302.2804319"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503778.2503791"},{"key":"e_1_2_2_21_1","volume-title":"ML Workshop.","author":"Kiselyov Oleg","year":"2016","unstructured":"Oleg Kiselyov and KC Sivaramakrishnan . 2016 . Eff directly in OCaml . In ML Workshop. Oleg Kiselyov and KC Sivaramakrishnan. 2016. Eff directly in OCaml. In ML Workshop."},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.153.8"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-71237-6_17"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122975.3122977"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009872"},{"key":"e_1_2_2_27_1","first-page":"4","article-title":"Encapsulating effects, In Algebraic Effect Handlers go Mainstream (Dagstuhl Seminar 18172)","volume":"8","author":"Lindley Sam","year":"2018","unstructured":"Sam Lindley . 2018 . Encapsulating effects, In Algebraic Effect Handlers go Mainstream (Dagstuhl Seminar 18172) . Dagstuhl Reports 8 , 4 . Sam Lindley. 2018. Encapsulating effects, In Algebraic Effect Handlers go Mainstream (Dagstuhl Seminar 18172). Dagstuhl Reports 8, 4.","journal-title":"Dagstuhl Reports"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009897"},{"key":"e_1_2_2_29_1","volume-title":"Workshop on Scheme and Functional Programming.","author":"Loitsch Florian","year":"2007","unstructured":"Florian Loitsch . 2007 . Exceptional continuations in JavaScript . In Workshop on Scheme and Functional Programming. Florian Loitsch. 2007. Exceptional continuations in JavaScript. In Workshop on Scheme and Functional Programming."},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_2"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086393"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1023064908962"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_7"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509536"},{"key":"e_1_2_2_35_1","volume-title":"Loom Project: Fibers and Continuations for the Java Virtual Machine. OpenJDK Project","author":"Pressler Ron","year":"2017","unstructured":"Ron Pressler . 2017 . Loom Project: Fibers and Continuations for the Java Virtual Machine. OpenJDK Project . HotSpot Group . http:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2017-September\/004390.html Ron Pressler. 2017. Loom Project: Fibers and Continuations for the Java Virtual Machine. OpenJDK Project. HotSpot Group. http:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2017-September\/004390.html"},{"key":"e_1_2_2_36_1","volume-title":"Proceedings of the European Conference on Object-Oriented Programming. Schloss Dagstuhl\u2013Leibniz-Zentrum f\u00fcr Informatik.","author":"Prokopec Aleksandar","year":"2018","unstructured":"Aleksandar Prokopec and Fengyun Liu . 2018 . Theory and practice of coroutines with snapshots . In Proceedings of the European Conference on Object-Oriented Programming. Schloss Dagstuhl\u2013Leibniz-Zentrum f\u00fcr Informatik. Aleksandar Prokopec and Fengyun Liu. 2018. Theory and practice of coroutines with snapshots. In Proceedings of the European Conference on Object-Oriented Programming. Schloss Dagstuhl\u2013Leibniz-Zentrum f\u00fcr Informatik."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/800194.805852"},{"key":"e_1_2_2_38_1","volume-title":"Advances in Exception Handling Techniques","author":"Sekiguchi Tatsurou","unstructured":"Tatsurou Sekiguchi , Takahiro Sakamoto , and Akinori Yonezawa . 2001. Advances in Exception Handling Techniques . Springer-Verlag , Heidelberg, Berlin , Germany, Chapter Portable Implementation of Continuation Operators in Imperative Languages by Exception Handling, 217\u2013233. Tatsurou Sekiguchi, Takahiro Sakamoto, and Akinori Yonezawa. 2001. Advances in Exception Handling Techniques. Springer-Verlag, Heidelberg, Berlin, Germany, Chapter Portable Implementation of Continuation Operators in Imperative Languages by Exception Handling, 217\u2013233."},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596655.1596679"},{"key":"e_1_2_2_40_1","volume-title":"Proceedings of the Conference on Mathematics of Program Construction. Springer LNCS 9129","author":"Wu Nicolas","year":"2015","unstructured":"Nicolas Wu and Tom Schrijvers . 2015 . Fusion for Free - Efficient Algebraic Effect Handlers . In Proceedings of the Conference on Mathematics of Program Construction. Springer LNCS 9129 . Nicolas Wu and Tom Schrijvers. 2015. Fusion for Free - Efficient Algebraic Effect Handlers. In Proceedings of the Conference on Mathematics of Program Construction. Springer LNCS 9129."}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276481","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276481","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:01:58Z","timestamp":1750208518000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276481"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":39,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276481"],"URL":"https:\/\/doi.org\/10.1145\/3276481","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}