{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,25]],"date-time":"2025-11-25T14:02:59Z","timestamp":1764079379077,"version":"3.41.0"},"reference-count":74,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2018,7,30]],"date-time":"2018-07-30T00:00:00Z","timestamp":1532908800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100010663","name":"European Research Council","doi-asserted-by":"publisher","award":["Advanced Grant No. 321217, Consolidator Grant No. 617805"],"award-info":[{"award-number":["Advanced Grant No. 321217, Consolidator Grant No. 617805"]}],"id":[{"id":"10.13039\/100010663","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["SFB 1053,SA 2918\/2-1"],"award-info":[{"award-number":["SFB 1053,SA 2918\/2-1"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,7,30]]},"abstract":"<jats:p>\n            We present the first language design to uniformly express variants of\n            <jats:italic>n<\/jats:italic>\n            -way joins over asynchronous event streams from different domains, e.g., stream-relational algebra, event processing, reactive and concurrent programming. We model asynchronous reactive programs and joins in direct style, on top of algebraic effects and handlers. Effect handlers act as modular interpreters of event notifications, enabling fine-grained control abstractions and customizable event matching. Join variants can be considered as cartesian product computations with \u201ddegenerate\u201d control flow, such that unnecessary tuples are not materialized a priori. Based on this computational interpretation, we decompose joins into a generic, naive enumeration procedure of the cartesian product, plus variant-specific extensions, represented in terms of user-supplied effect handlers. Our microbenchmarks validate that this extensible design avoids needless materialization. Alongside a formal semantics for joining and prototypes in Koka and multicore OCaml, we contribute a systematic comparison of the covered domains and features.\n          <\/jats:p>","DOI":"10.1145\/3236762","type":"journal-article","created":{"date-parts":[[2018,7,31]],"date-time":"2018-07-31T19:41:18Z","timestamp":1533066078000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["Versatile event correlation with algebraic effects"],"prefix":"10.1145","volume":"2","author":[{"given":"Oliver","family":"Bra\u010devac","sequence":"first","affiliation":[{"name":"TU Darmstadt, Germany"}]},{"given":"Nada","family":"Amin","sequence":"additional","affiliation":[{"name":"University of Cambridge, UK"}]},{"given":"Guido","family":"Salvaneschi","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}]},{"given":"Sebastian","family":"Erdweg","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Netherlands"}]},{"given":"Patrick","family":"Eugster","sequence":"additional","affiliation":[{"name":"University of Lugano, Switzerland \/ TU Darmstadt, Germany \/ Purdue University, USA"}]},{"given":"Mira","family":"Mezini","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}]}],"member":"320","published-online":{"date-parts":[[2018,7,30]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376634"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.14778\/2824032.2824076"},{"key":"e_1_2_1_3_1","volume-title":"CQL: A Language for Continuous Queries over Streams and Relations. In Database Programming Languages","author":"Arasu Arvind","year":"2004","unstructured":"Arvind Arasu , Shivnath Babu , and Jennifer Widom . 2004 . CQL: A Language for Continuous Queries over Streams and Relations. In Database Programming Languages . Springer Berlin Heidelberg . Arvind Arasu, Shivnath Babu, and Jennifer Widom. 2004. CQL: A Language for Continuous Queries over Streams and Relations. In Database Programming Languages. Springer Berlin Heidelberg."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-004-0147-z"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1031570.1031572"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2501654.2501666"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2014.02.001"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1018203.1018205"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of European Conference on Object-Oriented Programming (ECOOP).","author":"Biboudis Aggelos","year":"2015","unstructured":"Aggelos Biboudis , Nick Palladinos , George Fourtounis , and Yannis Smaragdakis . 2015 . Streams \u00e0 la carte: Extensible Pipelines with Object Algebras . In Proceedings of European Conference on Object-Oriented Programming (ECOOP). Aggelos Biboudis, Nick Palladinos, George Fourtounis, and Yannis Smaragdakis. 2015. Streams \u00e0 la carte: Extensible Pipelines with Object Algebras. In Proceedings of European Conference on Object-Oriented Programming (ECOOP)."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_12"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158096"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.14778\/1920841.1920874"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535881"},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of International Conference on Very Large Data Bases (VLDB).","author":"Chakravarthy Sharma","year":"1994","unstructured":"Sharma Chakravarthy , V. Krishnaprasad , Eman Anwar , and S.-K. Kim . 1994 . Composite Events for Active Databases: Semantics, Contexts and Detection . In Proceedings of International Conference on Very Large Data Bases (VLDB). Sharma Chakravarthy, V. Krishnaprasad, Eman Anwar, and S.-K. Kim. 1994. Composite Events for Active Databases: Semantics, Contexts and Detection. In Proceedings of International Conference on Very Large Data Bases (VLDB)."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/0169-023X(94)90006-X"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500586"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/520788.786423"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_20"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1827418.1827427"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2187671.2187677"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462161"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1462166.1462167"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/11687238_38"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-012-0297-3"},{"key":"e_1_2_1_26_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_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639950.1640058"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596638.1596643"},{"key":"e_1_2_1_29_1","unstructured":"Esper. {n. d.}. Esper. http:\/\/www.espertech.com\/esper\/ .  Esper. {n. d.}. Esper. http:\/\/www.espertech.com\/esper\/ ."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_26"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(92)90014-7"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411224"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110257"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237805"},{"key":"e_1_2_1_35_1","volume-title":"RAY: Integrating Rx and Async for Direct-Style Reactive Streams.","author":"Haller Philipp","year":"2013","unstructured":"Philipp Haller and Heather Miller . 2013 . RAY: Integrating Rx and Async for Direct-Style Reactive Streams. (2013). Philipp Haller and Heather Miller. 2013. RAY: Integrating Rx and Async for Direct-Style Reactive Streams. (2013)."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2528412"},{"key":"e_1_2_1_37_1","unstructured":"John E Hopcroft Rajeev Motwani and Jeffrey D Ullman. 2006. Automata theory languages and computation. Pearson.   John E Hopcroft Rajeev Motwani and Jeffrey D Ullman. 2006. Automata theory languages and computation. Pearson."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500590"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009880"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2804302.2804319"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508857.1508861"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500588"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122975.3122977"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009872"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/325694.325708"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199528"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2633628.2633636"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009897"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2007.10.006"},{"volume-title":"The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems","author":"Luckham David C.","key":"e_1_2_1_50_1","unstructured":"David C. Luckham . 2001. The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems . Addison-Wesley Longman Publishing Co., Inc. David C. Luckham. 2001. The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems. Addison-Wesley Longman Publishing Co., Inc."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.385971"},{"key":"e_1_2_1_52_1","unstructured":"Louis Mandel and Luc Maranget. 2014. The JoCaml language Documentation and user\u2019s manual Chapter on Concurrent programming. http:\/\/jocaml.inria.fr\/doc\/concurrent.html .  Louis Mandel and Luc Maranget. 2014. The JoCaml language Documentation and user\u2019s manual Chapter on Concurrent programming. http:\/\/jocaml.inria.fr\/doc\/concurrent.html ."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1142473.1142552"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640091"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2538031.2538488"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(91)90052-4"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_2"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_2"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2034675.2034677"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628160"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.5555\/1946313.1946336"},{"key":"e_1_2_1_62_1","volume-title":"Plotkin and John Power","author":"Gordon","year":"2003","unstructured":"Gordon D. Plotkin and John Power . 2003 . Algebraic Operations and Generic Effects. Applied Categorical Structures ( 2003). Gordon D. Plotkin and John Power. 2003. Algebraic Operations and Generic Effects. Applied Categorical Structures (2003)."},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_7"},{"key":"e_1_2_1_64_1","unstructured":"ReactiveX. {n. d.}. ReactiveX. http:\/\/reactivex.io .  ReactiveX. {n. d.}. ReactiveX. http:\/\/reactivex.io ."},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/113445.113470"},{"volume-title":"https:\/\/github.com\/dotnet\/reactive\/blob\/master\/Rx.NET\/Samples\/ EventCorrelationSample\/EventCorrelationSample\/Program.cs#L55","author":"Example Rx.NET","key":"e_1_2_1_66_1","unstructured":"Rx.NET Example . 2013. Event Correlation . https:\/\/github.com\/dotnet\/reactive\/blob\/master\/Rx.NET\/Samples\/ EventCorrelationSample\/EventCorrelationSample\/Program.cs#L55 Rx.NET Example. 2013. Event Correlation. https:\/\/github.com\/dotnet\/reactive\/blob\/master\/Rx.NET\/Samples\/ EventCorrelationSample\/EventCorrelationSample\/Program.cs#L55"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/2577080.2577083"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11957-6_27"},{"key":"e_1_2_1_69_1","volume-title":"Data types \u00e0 la carte. Functional Programming","author":"Swierstra Wouter","year":"2008","unstructured":"Wouter Swierstra . 2008. Data types \u00e0 la carte. Functional Programming ( 2008 ). Wouter Swierstra. 2008. Data types \u00e0 la carte. Functional Programming (2008)."},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.5555\/1946313.1946334"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/91556.91592"},{"key":"e_1_2_1_72_1","volume-title":"Proceedings of the IFIP Working Group 2.2\/2.3 Working Conference on Programming Concepts and Methods.","author":"Wadler Philip","year":"1990","unstructured":"Philip Wadler . 1990 b. Linear types can change the world . In Proceedings of the IFIP Working Group 2.2\/2.3 Working Conference on Programming Concepts and Methods. Philip Wadler. 1990b. Linear types can change the world. In Proceedings of the IFIP Working Group 2.2\/2.3 Working Conference on Programming Concepts and Methods."},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/143165.143169"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/1265530.1265567"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993572"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236762","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3236762","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:41:28Z","timestamp":1750282888000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236762"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,7,30]]},"references-count":74,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2018,7,30]]}},"alternative-id":["10.1145\/3236762"],"URL":"https:\/\/doi.org\/10.1145\/3236762","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2018,7,30]]},"assertion":[{"value":"2018-07-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}