{"id":"https://openalex.org/W4379537137","doi":"https://doi.org/10.1145/3591284","title":"Efficient Parallel Functional Programming with Effects","display_name":"Efficient Parallel Functional Programming with Effects","publication_year":2023,"publication_date":"2023-06-06","ids":{"openalex":"https://openalex.org/W4379537137","doi":"https://doi.org/10.1145/3591284"},"language":"en","primary_location":{"id":"doi:10.1145/3591284","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591284","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591284","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3591284","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5035801565","display_name":"Jatin Arora","orcid":"https://orcid.org/0000-0001-8302-6844"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jatin Arora","raw_affiliation_strings":["Carnegie Mellon University, USA"],"raw_orcid":"https://orcid.org/0000-0001-8302-6844","affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5052738437","display_name":"Sam Westrick","orcid":"https://orcid.org/0000-0003-2848-9808"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sam Westrick","raw_affiliation_strings":["Carnegie Mellon University, USA"],"raw_orcid":"https://orcid.org/0000-0003-2848-9808","affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5015051107","display_name":"Umut A. Acar","orcid":"https://orcid.org/0000-0002-2623-4986"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Umut A. Acar","raw_affiliation_strings":["Carnegie Mellon University, USA"],"raw_orcid":"https://orcid.org/0000-0002-2623-4986","affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, USA","institution_ids":["https://openalex.org/I74973139"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I74973139"],"apc_list":null,"apc_paid":null,"fwci":1.3816,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.79358581,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":95,"max":98},"biblio":{"volume":"7","issue":"PLDI","first_page":"1558","last_page":"1583"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.9961000084877014,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9919999837875366,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8439401984214783},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.639164388179779},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.5069637298583984},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.47310853004455566},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.4551513195037842},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.44451579451560974},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.44353970885276794},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.43278712034225464},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3848385512828827},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3809863328933716}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8439401984214783},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.639164388179779},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.5069637298583984},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.47310853004455566},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.4551513195037842},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.44451579451560974},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.44353970885276794},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.43278712034225464},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3848385512828827},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3809863328933716}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3591284","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591284","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591284","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3591284","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591284","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591284","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"score":0.6000000238418579,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[{"id":"https://openalex.org/G1562374711","display_name":"SHF: Small: Solving the Parallel Functional Programming Challenge","funder_award_id":"2115104","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5360328037","display_name":"Collaborative Research: PPoSS: LARGE: Unifying Software and Hardware to Achieve Performant and Scalable Frictionless Parallelism in the Heterogeneous Future","funder_award_id":"2119352","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G753685075","display_name":"Collaborative Research: SHF: Medium: Responsive Parallelism for Interactive Applications: Theory and Practice","funder_award_id":"2107241","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G7587430710","display_name":"SHF: Medium: Algorithmic lambda-Calculus for the Design, Analysis, and Implementation of Parallel Algorithms","funder_award_id":"1901381","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4379537137.pdf","grobid_xml":"https://content.openalex.org/works/W4379537137.grobid-xml"},"referenced_works_count":58,"referenced_works":["https://openalex.org/W92412884","https://openalex.org/W159894973","https://openalex.org/W1520380662","https://openalex.org/W1543830735","https://openalex.org/W1965122136","https://openalex.org/W1975579741","https://openalex.org/W1981393723","https://openalex.org/W1986804682","https://openalex.org/W1993621349","https://openalex.org/W1994257154","https://openalex.org/W1995873479","https://openalex.org/W2047662881","https://openalex.org/W2059259057","https://openalex.org/W2060847221","https://openalex.org/W2063591933","https://openalex.org/W2065413511","https://openalex.org/W2069398819","https://openalex.org/W2084019889","https://openalex.org/W2098297530","https://openalex.org/W2098815550","https://openalex.org/W2104861744","https://openalex.org/W2109065830","https://openalex.org/W2125650214","https://openalex.org/W2128870271","https://openalex.org/W2135106356","https://openalex.org/W2139142311","https://openalex.org/W2140300123","https://openalex.org/W2148599839","https://openalex.org/W2149103675","https://openalex.org/W2150848984","https://openalex.org/W2165353025","https://openalex.org/W2172013743","https://openalex.org/W2436525433","https://openalex.org/W2507118912","https://openalex.org/W2508222108","https://openalex.org/W2554354717","https://openalex.org/W2624869780","https://openalex.org/W2783280912","https://openalex.org/W2799001871","https://openalex.org/W2895804357","https://openalex.org/W2911748475","https://openalex.org/W2913263777","https://openalex.org/W2950843936","https://openalex.org/W2995593132","https://openalex.org/W3019259517","https://openalex.org/W3033203490","https://openalex.org/W3041215255","https://openalex.org/W3098874119","https://openalex.org/W3110101717","https://openalex.org/W3122002490","https://openalex.org/W3193826150","https://openalex.org/W4220678359","https://openalex.org/W4244329725","https://openalex.org/W4248722156","https://openalex.org/W4248901744","https://openalex.org/W4249224771","https://openalex.org/W6649120592","https://openalex.org/W6912948108"],"related_works":["https://openalex.org/W2002505081","https://openalex.org/W2083681681","https://openalex.org/W2577630842","https://openalex.org/W1172579163","https://openalex.org/W1488300410","https://openalex.org/W2138790427","https://openalex.org/W4246454774","https://openalex.org/W2162051035","https://openalex.org/W1597127505","https://openalex.org/W3146558274"],"abstract_inverted_index":{"Although":[0],"functional":[1,51,89,225],"programming":[2,226],"languages":[3,206],"simplify":[4],"writing":[5],"safe":[6],"parallel":[7],"programs":[8,90],"by":[9,26,100,157],"helping":[10],"programmers":[11],"to":[12,35,63,91,138,197],"avoid":[13],"data":[14],"races,":[15],"they":[16],"have":[17],"traditionally":[18],"delivered":[19],"poor":[20],"performance.":[21,228],"Recent":[22],"work":[23],"improved":[24],"performance":[25,48],"using":[27,181],"a":[28,66,119,125,182,190],"hierarchical":[29],"memory":[30,39,59,68,131],"architecture":[31],"that":[32,70,121,187,216],"allows":[33],"processors":[34],"allocate":[36],"and":[37,86,104,107,133,141,145,193,202],"reclaim":[38],"independently":[40],"without":[41],"any":[42],"synchronization,":[43],"solving":[44],"thus":[45],"the":[46,77,112,128,143,155,159,172,221],"key":[47],"challenge":[49],"afflicting":[50],"programs.":[52],"The":[53,165],"approach,":[54],"however,":[55],"restricts":[56],"mutation,":[57],"or":[58],"effects,":[60],"so":[61],"as":[62,124,208],"ensure":[64],"\"disentanglement\",":[65],"low-level":[67],"property":[69,126],"guarantees":[71],"independence":[72],"between":[73,102],"different":[74],"heaps":[75],"in":[76],"hierarchy.":[78],"This":[79],"paper":[80],"proposes":[81],"techniques":[82,97,156,218],"for":[83,87,162],"supporting":[84],"entanglement":[85,99,115,123],"allowing":[88],"use":[92],"mutation":[93],"at":[94,127],"will.":[95],"Our":[96,179],"manage":[98],"distinguishing":[101],"disentangled":[103,109],"entangled":[105],"objects":[106,110],"shielding":[108],"from":[111],"cost":[113,136,147],"of":[114,130,148,154,171,184,224],"management.":[116],"We":[117,150],"present":[118,151],"semantics":[120],"formalizes":[122],"granularity":[129],"objects,":[132],"define":[134],"several":[135],"metrics":[137],"reason":[139],"about":[140],"bound":[142],"time":[144,192],"space":[146,194],"entanglement.":[149],"an":[152],"implementation":[153],"extending":[158],"MPL":[160,188],"compiler":[161,167],"Parallel":[163,173],"ML.":[164],"extended":[166],"supports":[168],"all":[169],"features":[170],"ML":[174],"language,":[175],"including":[176],"unrestricted":[177],"effects.":[178],"experiments":[180],"variety":[183],"benchmarks":[185],"show":[186,215],"incurs":[189],"small":[191],"overhead":[195],"compared":[196],"sequential":[198],"runs,":[199],"scales":[200],"well,":[201],"is":[203],"competitive":[204],"with":[205,227],"such":[207],"C++,":[209],"Go,":[210],"Java,":[211],"OCaml.":[212],"These":[213],"results":[214],"our":[217],"can":[219],"marry":[220],"safety":[222],"benefits":[223]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":4}],"updated_date":"2026-08-06T08:24:18.245995","created_date":"2025-10-10T00:00:00"}
