{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,9]],"date-time":"2026-01-09T03:32:20Z","timestamp":1767929540977,"version":"3.49.0"},"reference-count":83,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T00:00:00Z","timestamp":1686009600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,6,6]]},"abstract":"<jats:p>Although functional programming languages simplify writing safe parallel programs by helping programmers to avoid data races, they have traditionally delivered poor performance. Recent work improved performance by using a hierarchical memory architecture that allows processors to allocate and reclaim memory independently without any synchronization, solving thus the key performance challenge afflicting functional programs. The approach, however, restricts mutation, or memory effects, so as to ensure \"disentanglement\", a low-level memory property that guarantees independence between different heaps in the hierarchy.<\/jats:p><jats:p>This paper proposes techniques for supporting entanglement and for allowing functional programs to use mutation at will. Our techniques manage entanglement by distinguishing between disentangled and entangled objects and shielding disentangled objects from the cost of entanglement management. We present a semantics that formalizes entanglement as a property at the granularity of memory objects, and define several cost metrics to reason about and bound the time and space cost of entanglement. We present an implementation of the techniques by extending the MPL compiler for Parallel ML. The extended compiler supports all features of the Parallel ML language, including unrestricted effects. Our experiments using a variety of benchmarks show that MPL incurs a small time and space overhead compared to sequential runs, scales well, and is competitive with languages such as C++, Go, Java, OCaml. These results show that our techniques can marry the safety benefits of functional programming with performance.<\/jats:p>","DOI":"10.1145\/3591284","type":"journal-article","created":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T20:06:24Z","timestamp":1686081984000},"page":"1558-1583","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Efficient Parallel Functional Programming with Effects"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8302-6844","authenticated-orcid":false,"given":"Jatin","family":"Arora","sequence":"first","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2848-9808","authenticated-orcid":false,"given":"Sam","family":"Westrick","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2623-4986","authenticated-orcid":false,"given":"Umut A.","family":"Acar","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,6,6]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2011. Finagle: A Protocol-Agnostic RPC System. https:\/\/twitter.github.io\/finagle\/ 2011. Finagle: A Protocol-Agnostic RPC System. https:\/\/twitter.github.io\/finagle\/"},{"key":"e_1_2_1_2_1","unstructured":"2015. Folly: Facebook Open-source Library. https:\/\/github.com\/facebook\/folly 2015. Folly: Facebook Open-source Library. https:\/\/github.com\/facebook\/folly"},{"key":"e_1_2_1_3_1","first-page":"4493","volume-title":"Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917)","author":"Acar Umut A.","year":"2017","unstructured":"Umut A. Acar , Naama Ben-David , and Mike Rainey . 2017 . Contention in Structured Concurrency: Provably Efficient Dynamic Non-Zero Indicators for Nested Parallelism . In Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917) . 75\u201388. isbn:978-1-4503- 4493 - 4497 Umut A. Acar, Naama Ben-David, and Mike Rainey. 2017. Contention in Structured Concurrency: Provably Efficient Dynamic Non-Zero Indicators for Nested Parallelism. In Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917). 75\u201388. isbn:978-1-4503-4493-7"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00224-002-1057-3"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192391"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000101"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951946"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1839676.1839697"},{"key":"e_1_2_1_9_1","doi-asserted-by":"crossref","unstructured":"Bowen Alpern Larry Carter and Jeanne Ferrante. 1995. Space-limited procedures: A methodology for portable high-performance. In Programming Models for Massively Parallel Computers. 10\u201317. Bowen Alpern Larry Carter and Jeanne Ferrante. 1995. Space-limited procedures: A methodology for portable high-performance. In Programming Models for Massively Parallel Computers. 10\u201317.","DOI":"10.1109\/PMMPC.1995.504336"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3503221.3508422"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the 48th Annual ACM Symposium on Principles of Programming Languages (POPL)\".","author":"Arora Jatin","unstructured":"Jatin Arora , Sam Westrick , and Umut A. Acar . 2021. Provably Space Efficient Parallel Functional Programming . In Proceedings of the 48th Annual ACM Symposium on Principles of Programming Languages (POPL)\". Jatin Arora, Sam Westrick, and Umut A. Acar. 2021. Provably Space Efficient Parallel Functional Programming. In Proceedings of the 48th Annual ACM Symposium on Principles of Programming Languages (POPL)\"."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7824069"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/69558.69562"},{"key":"e_1_2_1_14_1","volume-title":"A Customisable Memory Management Framework","author":"Attardi Giuseppe","year":"1994","unstructured":"Giuseppe Attardi and Tito Flagella . 1994. A Customisable Memory Management Framework . International Computer Science Institute , Berkeley . ftp:\/\/ftp.icsi.berkeley.edu:\/pub\/techreports\/ 1994 \/tr-94-010.ps.Z Also Proceedings of the USENIX C++ Conference, Cambridge, MA, 1994 Giuseppe Attardi and Tito Flagella. 1994. A Customisable Memory Management Framework. International Computer Science Institute, Berkeley. ftp:\/\/ftp.icsi.berkeley.edu:\/pub\/techreports\/1994\/tr-94-010.ps.Z Also Proceedings of the USENIX C++ Conference, Cambridge, MA, 1994"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/300092.300094"},{"key":"e_1_2_1_16_1","volume-title":"Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357","author":"Auhagen Sven","unstructured":"Sven Auhagen , Lars Bergstrom , Matthew Fluet , and John H. Reppy . 2011. Garbage collection for multicore NUMA machines . In Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357 . Sven Auhagen, Lars Bergstrom, Matthew Fluet, and John H. Reppy. 2011. Garbage collection for multicore NUMA machines. In Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357."},{"key":"e_1_2_1_17_1","volume-title":"Compacting Garbage Collection with Ambiguous Roots. DEC Western Research Laboratory","author":"Bartlett Joel F.","year":"1988","unstructured":"Joel F. Bartlett . 1988. Compacting Garbage Collection with Ambiguous Roots. DEC Western Research Laboratory , Palo Alto, CA . http:\/\/www.research.digital.com\/wrl\/techreports\/88.2.ps Also in Lisp Pointers 1, 6 (April\u2013June 1988 ), 2\u201312 Joel F. Bartlett. 1988. Compacting Garbage Collection with Ambiguous Roots. DEC Western Research Laboratory, Palo Alto, CA. http:\/\/www.research.digital.com\/wrl\/techreports\/88.2.ps Also in Lisp Pointers 1, 6 (April\u2013June 1988), 2\u201312"},{"key":"e_1_2_1_18_1","volume-title":"Mostly-Copying Garbage Collection picks up Generations and C++. DEC Western Research Laboratory","author":"Bartlett Joel F.","unstructured":"Joel F. Bartlett . 1989. Mostly-Copying Garbage Collection picks up Generations and C++. DEC Western Research Laboratory , Palo Alto, CA . ftp:\/\/ftp.digital.com\/pub\/DEC\/WRL\/research-reports\/WRL-TN-12.ps Sources available in ftp:\/\/ftp.digital.com\/pub\/DEC\/CCgc Joel F. Bartlett. 1989. Mostly-Copying Garbage Collection picks up Generations and C++. DEC Western Research Laboratory, Palo Alto, CA. ftp:\/\/ftp.digital.com\/pub\/DEC\/WRL\/research-reports\/WRL-TN-12.ps Sources available in ftp:\/\/ftp.digital.com\/pub\/DEC\/CCgc"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2012.71"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640096"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/227234.227246"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3350755.3400254"},{"key":"e_1_2_1_23_1","volume-title":"Blelloch and Perry Cheng","author":"Guy","year":"1999","unstructured":"Guy E. Blelloch and Perry Cheng . 1999 . On Bounding Time and Space for Multiprocessor Garbage Collection. In Proceedings of SIGPLAN\u201999 Conference on Programming Languages Design and Implementation (ACM SIGPLAN Notices). ACM Press , Atlanta. 104\u2013117. Guy E. Blelloch and Perry Cheng. 1999. On Bounding Time and Space for Multiprocessor Garbage Collection. In Proceedings of SIGPLAN\u201999 Conference on Programming Languages Design and Implementation (ACM SIGPLAN Notices). ACM Press, Atlanta. 104\u2013117."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/301970.301974"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1994.1038"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/209936.209958"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855591.1855595"},{"key":"e_1_2_1_28_1","volume-title":"3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911","author":"Boehm Hans-Juergen","year":"2011","unstructured":"Hans-Juergen Boehm . 2011 . How to Miscompile Programs with \"Benign\" Data Races . In 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911 , Berkeley, CA, USA , May 26-27, 2011. Hans-Juergen Boehm. 2011. How to Miscompile Programs with \"Benign\" Data Races. In 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911, Berkeley, CA, USA, May 26-27, 2011."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2767386.2767436"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1248648.1248652"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094852"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627375"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.26421\/QIC6.1-6"},{"key":"e_1_2_1_34_1","unstructured":"Jason Evans. 2006. A Scalable Concurrent malloc(3) Implementation for FreeBSD. 01. Jason Evans. 2006. A Scalable Concurrent malloc(3) Implementation for FreeBSD. 01."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428196"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411239"},{"key":"e_1_2_1_37_1","first-page":"5","article-title":"Implicitly threaded parallelism in Manticore","volume":"20","author":"Fluet Matthew","year":"2011","unstructured":"Matthew Fluet , Mike Rainey , John Reppy , and Adam Shaw . 2011 . Implicitly threaded parallelism in Manticore . Journal of Functional Programming , 20 , 5 - 6 (2011), 1\u201340. Matthew Fluet, Mike Rainey, John Reppy, and Adam Shaw. 2011. Implicitly threaded parallelism in Manticore. Journal of Functional Programming, 20, 5-6 (2011), 1\u201340.","journal-title":"Journal of Functional Programming"},{"key":"e_1_2_1_38_1","unstructured":"Keir Fraser. 2003. Practical lock-freedom. Keir Fraser. 2003. Practical lock-freedom."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584017"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2688500.2688501"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178494"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/800055.802017"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-21338-0_17"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45414-4_21"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133956.1133963"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2647508.2647514"},{"key":"e_1_2_1_47_1","unstructured":"2009. Intel Cilk++ SDK Programmer\u2019s Guide. Document Number: 322581-001US 2009. Intel Cilk++ SDK Programmer\u2019s Guide. Document Number: 322581-001US"},{"key":"e_1_2_1_48_1","unstructured":"2009. Intel(R) Threading Building Blocks. Available from http:\/\/www.threadingbuildingblocks.org\/documentation.php 2009. Intel(R) Threading Building Blocks. Available from http:\/\/www.threadingbuildingblocks.org\/documentation.php"},{"key":"e_1_2_1_49_1","volume-title":"The Garbage Collection Handbook : The Art of Automatic Memory Management","author":"Jones Richard","unstructured":"Richard Jones , Antony Hosking , and Eliot Moss . 2012. The Garbage Collection Handbook : The Art of Automatic Memory Management . CRC Press . Richard Jones, Antony Hosking, and Eliot Moss. 2012. The Garbage Collection Handbook : The Art of Automatic Memory Management. CRC Press."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863582"},{"key":"e_1_2_1_51_1","doi-asserted-by":"crossref","unstructured":"Alexei Yu Kitaev Alexander Shen Mikhail N Vyalyi and Mikhail N Vyalyi. 2002. Classical and quantum computation. American Mathematical Soc.. Alexei Yu Kitaev Alexander Shen Mikhail N Vyalyi and Mikhail N Vyalyi. 2002. Classical and quantum computation. American Mathematical Soc..","DOI":"10.1090\/gsm\/047"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3473596"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/169627.169724"},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017","author":"Kumar Ananya","year":"2017","unstructured":"Ananya Kumar , Guy E. Blelloch , and Robert Harper . 2017 . Parallel functional arrays . In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017 , Paris, France , January 18-20, 2017, Giuseppe Castagna and Andrew D. Gordon (Eds.). ACM, 706\u2013718. Ananya Kumar, Guy E. Blelloch, and Robert Harper. 2017. Parallel functional arrays. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, January 18-20, 2017, Giuseppe Castagna and Andrew D. Gordon (Eds.). ACM, 706\u2013718."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784736"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/337449.337465"},{"key":"e_1_2_1_57_1","volume-title":"Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007","author":"Li Peng","year":"2007","unstructured":"Peng Li , Simon Marlow , Simon L. Peyton Jones , and Andrew P. Tolmach . 2007. Lightweight concurrency primitives for GHC . In Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007 , Freiburg, Germany , September 30, 2007 . 107\u2013118. Peng Li, Simon Marlow, Simon L. Peyton Jones, and Andrew P. Tolmach. 2007. Lightweight concurrency primitives for GHC. In Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007, Freiburg, Germany, September 30, 2007. 107\u2013118."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-03850-6_15"},{"key":"e_1_2_1_59_1","volume-title":"Proceedings of the 10th International Symposium on Memory Management, ISMM 2011","author":"Marlow Simon","year":"2011","unstructured":"Simon Marlow and Simon L . Peyton Jones. 2011. Multicore garbage collection with local heaps . In Proceedings of the 10th International Symposium on Memory Management, ISMM 2011 , San Jose, CA, USA, June 04 - 05 , 2011 , Hans-Juergen Boehm and David F. Bacon (Eds.). ACM, 21\u201332. Simon Marlow and Simon L. Peyton Jones. 2011. Multicore garbage collection with local heaps. In Proceedings of the 10th International Symposium on Memory Management, ISMM 2011, San Jose, CA, USA, June 04 - 05, 2011, Hans-Juergen Boehm and David F. Bacon (Eds.). ACM, 21\u201332."},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/248052.248106"},{"key":"e_1_2_1_61_1","unstructured":"MLton web site. http:\/\/www.mlton.org MLton web site. http:\/\/www.mlton.org"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386013"},{"key":"e_1_2_1_63_1","volume-title":"Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach\/Pacific Grove, CA, USA","author":"Stefan","year":"2016","unstructured":"Stefan K. Muller and Umut A. Acar. 2016. Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing . In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach\/Pacific Grove, CA, USA , July 11-13, 2016 . 71\u201382. Stefan K. Muller and Umut A. Acar. 2016. Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing. In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach\/Pacific Grove, CA, USA, July 11-13, 2016. 71\u201382."},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062370"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236790"},{"key":"e_1_2_1_66_1","volume-title":"Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918)","author":"Muller Stefan K.","year":"2018","unstructured":"Stefan K. Muller , Umut A. Acar , and Robert Harper . 2018 . Types and Cost Models for Responsive Parallelism . In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918) . Stefan K. Muller, Umut A. Acar, and Robert Harper. 2018. Types and Cost Models for Responsive Parallelism. In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918)."},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/289918.289920"},{"key":"e_1_2_1_68_1","unstructured":"Atsushi Ohori Kenjiro Taura and Katsuhiro Ueno. 2018. Making SML# a General-purpose High-performance Language. Unpublished Manuscript Atsushi Ohori Kenjiro Taura and Katsuhiro Ueno. 2018. Making SML# a General-purpose High-performance Language. Unpublished Manuscript"},{"key":"e_1_2_1_69_1","volume-title":"Chakravarty","author":"Peyton Jones Simon L.","year":"2008","unstructured":"Simon L. Peyton Jones , Roman Leshchinskiy , Gabriele Keller , and Manuel M. T . Chakravarty . 2008 . Harnessing the Multicores : Nested Data Parallelism in Haskell. In FSTTCS. 383\u2013414. Simon L. Peyton Jones, Roman Leshchinskiy, Gabriele Keller, and Manuel M. T. Chakravarty. 2008. Harnessing the Multicores: Nested Data Parallelism in Haskell. In FSTTCS. 383\u2013414."},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1145\/3243176.3243193"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951935"},{"key":"e_1_2_1_72_1","unstructured":"Rust Team. 2019. Rust Language. https:\/\/www.rust-lang.org\/ Rust Team. 2019. Rust Language. https:\/\/www.rust-lang.org\/"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/2612669.2612687"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/2312005.2312018"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611976021.11"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293883.3295735"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408995"},{"key":"e_1_2_1_78_1","volume-title":"FirstView","author":"Sivaramakrishnan K. C.","year":"2014","unstructured":"K. C. Sivaramakrishnan , Lukasz Ziarek , and Suresh Jagannathan . 2014. MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming , FirstView ( 2014 ), 6, 1\u201362. K. C. Sivaramakrishnan, Lukasz Ziarek, and Suresh Jagannathan. 2014. MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming, FirstView (2014), 6, 1\u201362."},{"key":"e_1_2_1_79_1","volume-title":"Scheduling Deterministic Parallel Programs. Ph. D. Dissertation","author":"Spoonhower Daniel","unstructured":"Daniel Spoonhower . 2009. Scheduling Deterministic Parallel Programs. Ph. D. Dissertation . Carnegie Mellon University . https:\/\/www.cs.cmu.edu\/~rwh\/theses\/spoonhower.pdf Daniel Spoonhower. 2009. Scheduling Deterministic Parallel Programs. Ph. D. Dissertation. Carnegie Mellon University. https:\/\/www.cs.cmu.edu\/~rwh\/theses\/spoonhower.pdf"},{"key":"e_1_2_1_80_1","volume-title":"Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP","author":"Westrick Sam","year":"2022","unstructured":"Sam Westrick , Jatin Arora , and Umut A. Acar . 2022. Entanglement Detection With Near-Zero Cost . In Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2022 ). Sam Westrick, Jatin Arora, and Umut A. Acar. 2022. Entanglement Detection With Near-Zero Cost. In Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2022)."},{"key":"e_1_2_1_81_1","volume-title":"Proceedings of the 47th Annual ACM Symposium on Principles of Programming Languages (POPL)\".","author":"Westrick Sam","unstructured":"Sam Westrick , Rohan Yadav , Matthew Fluet , and Umut A. Acar . 2020. Disentanglement in Nested-Parallel Programs . In Proceedings of the 47th Annual ACM Symposium on Principles of Programming Languages (POPL)\". Sam Westrick, Rohan Yadav, Matthew Fluet, and Umut A. Acar. 2020. Disentanglement in Nested-Parallel Programs. In Proceedings of the 47th Annual ACM Symposium on Principles of Programming Languages (POPL)\"."},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9128(199809\/11)10:11\/13<825::AID-CPE383>3.0.CO;2-H"},{"key":"e_1_2_1_83_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\/3591284","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3591284","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:47:20Z","timestamp":1750178840000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591284"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,6]]},"references-count":83,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2023,6,6]]}},"alternative-id":["10.1145\/3591284"],"URL":"https:\/\/doi.org\/10.1145\/3591284","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,6]]},"assertion":[{"value":"2023-06-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}