{"id":"https://openalex.org/W2052415459","doi":"https://doi.org/10.1145/1596550.1596589","title":"A concurrent ML library in concurrent Haskell","display_name":"A concurrent ML library in concurrent Haskell","publication_year":2009,"publication_date":"2009-08-31","ids":{"openalex":"https://openalex.org/W2052415459","doi":"https://doi.org/10.1145/1596550.1596589","mag":"2052415459"},"language":"en","primary_location":{"id":"doi:10.1145/1596550.1596589","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596550.1596589","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5065727495","display_name":"Avik Chaudhuri","orcid":null},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Avik Chaudhuri","raw_affiliation_strings":["University of Maryland, College Park, College Park, MD, USA","University of Maryland, College Park, College Park, MD, USA;"],"affiliations":[{"raw_affiliation_string":"University of Maryland, College Park, College Park, MD, USA","institution_ids":["https://openalex.org/I66946132"]},{"raw_affiliation_string":"University of Maryland, College Park, College Park, MD, USA;","institution_ids":["https://openalex.org/I66946132"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5065727495"],"corresponding_institution_ids":["https://openalex.org/I66946132"],"apc_list":null,"apc_paid":null,"fwci":2.4119,"has_fulltext":false,"cited_by_count":20,"citation_normalized_percentile":{"value":0.88982489,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"269","last_page":"280"},"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.9998000264167786,"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.9998000264167786,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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.9995999932289124,"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/haskell","display_name":"Haskell","score":0.90531325340271},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8886739015579224},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7203966975212097},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.6958245038986206},{"id":"https://openalex.org/keywords/synchronization","display_name":"Synchronization (alternating current)","score":0.6511157155036926},{"id":"https://openalex.org/keywords/concurrent-object-oriented-programming","display_name":"Concurrent object-oriented programming","score":0.5699692964553833},{"id":"https://openalex.org/keywords/concurrent-computing","display_name":"Concurrent computing","score":0.5137172937393188},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.474138468503952},{"id":"https://openalex.org/keywords/message-passing","display_name":"Message passing","score":0.45689910650253296},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.3997690677642822},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.38597750663757324},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.35018372535705566},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.32059359550476074},{"id":"https://openalex.org/keywords/reactive-programming","display_name":"Reactive programming","score":0.21880954504013062},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.12510353326797485},{"id":"https://openalex.org/keywords/computer-network","display_name":"Computer network","score":0.08928492665290833}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.90531325340271},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8886739015579224},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7203966975212097},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.6958245038986206},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.6511157155036926},{"id":"https://openalex.org/C3701939","wikidata":"https://www.wikidata.org/wiki/Q5159109","display_name":"Concurrent object-oriented programming","level":5,"score":0.5699692964553833},{"id":"https://openalex.org/C150495011","wikidata":"https://www.wikidata.org/wiki/Q128392","display_name":"Concurrent computing","level":2,"score":0.5137172937393188},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.474138468503952},{"id":"https://openalex.org/C854659","wikidata":"https://www.wikidata.org/wiki/Q1859284","display_name":"Message passing","level":2,"score":0.45689910650253296},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3997690677642822},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.38597750663757324},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.35018372535705566},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.32059359550476074},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.21880954504013062},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.12510353326797485},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.08928492665290833},{"id":"https://openalex.org/C127162648","wikidata":"https://www.wikidata.org/wiki/Q16858953","display_name":"Channel (broadcasting)","level":2,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1596550.1596589","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596550.1596589","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.141.1050","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.141.1050","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cse.ucsc.edu/~avik/papers/cmllch.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.147.6461","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.147.6461","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.umd.edu/~avik/papers/cmllch.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":25,"referenced_works":["https://openalex.org/W126760096","https://openalex.org/W1495087637","https://openalex.org/W1532742882","https://openalex.org/W1557853716","https://openalex.org/W1559758872","https://openalex.org/W1602112527","https://openalex.org/W1774705444","https://openalex.org/W1969411922","https://openalex.org/W1980895171","https://openalex.org/W2013672985","https://openalex.org/W2059563369","https://openalex.org/W2078944436","https://openalex.org/W2083089270","https://openalex.org/W2110425399","https://openalex.org/W2118883965","https://openalex.org/W2128932399","https://openalex.org/W2201760732","https://openalex.org/W2293560983","https://openalex.org/W2296715995","https://openalex.org/W2535888556","https://openalex.org/W3081806888","https://openalex.org/W4211008702","https://openalex.org/W4249252902","https://openalex.org/W6663305913","https://openalex.org/W6677590924"],"related_works":["https://openalex.org/W2112263414","https://openalex.org/W3004782279","https://openalex.org/W1602185604","https://openalex.org/W2028779182","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W1488646450","https://openalex.org/W4296274916","https://openalex.org/W1504459189"],"abstract_inverted_index":{"In":[0,70,145],"Concurrent":[1,47,62,98,103,127,134,159,196],"ML,":[2],"synchronization":[3,59,77,113,172,183],"abstractions":[4,60,78,114,184],"can":[5,79,209],"be":[6,80],"defined":[7],"and":[8],"passed":[9],"as":[10,46],"values,":[11],"much":[12],"like":[13],"functions":[14],"in":[15,43,61,82,102,115,133,185],"ML.":[16],"This":[17],"mechanism":[18],"admits":[19],"a":[20,83,94,108,169,214],"powerful,":[21],"modular":[22],"style":[23,38],"of":[24,39,58,112,126,158,165,182,206],"concurrent":[25,29,186],"programming,":[26],"called":[27],"higher-order":[28],"programming.":[30],"Unfortunately,":[31],"it":[32],"is":[33,41,138,168,225],"not":[34],"clear":[35],"whether":[36],"this":[37,71,121],"programming":[40,100],"possible":[42,101,143],"languages":[44],"such":[45,234],"Haskell,":[48],"that":[49,76,85,96,174,218],"support":[50],"only":[51,87],"first-order":[52,88,230],"message":[53,89,231],"passing.":[54,90],"Indeed,":[55],"the":[56,116,163,192,204],"implementation":[57,111,122,137,167],"ML":[63],"relies":[64],"on":[65,222,233],"fairly":[66],"low-level,":[67],"language-specific":[68],"details.":[69],"paper":[72],"we":[73,92,119,175,188,202,216],"show,":[74],"constructively,":[75],"supported":[81],"language":[84],"supports":[86],"Specifically,":[91],"implement":[93],"library":[95,151,157],"makes":[97],"ML-style":[99,160],"Haskell.":[104,135],"We":[105],"begin":[106],"with":[107],"core,":[109],"formal":[110],"\u03c0-calculus.":[117],"Then,":[118],"extend":[120],"to":[123,153,191],"encode":[124],"all":[125],"ML's":[128,197],"concurrency":[129,198],"primitives":[130],"(and":[131],"more!)":[132],"Our":[136],"surprisingly":[139],"efficient,":[140],"even":[141],"without":[142],"optimizations.":[144],"several":[146,179],"small,":[147],"informal":[148],"experiments,":[149],"our":[150,166],"seems":[152],"outperform":[154],"OCaml's":[155],"standard":[156,193],"primitives.":[161,199],"At":[162],"heart":[164],"new":[170],"distributed":[171,223],"protocol":[173],"prove":[176],"correct.":[177],"Unlike":[178],"previous":[180],"translations":[181],"languages,":[187],"remain":[189],"faithful":[190],"semantics":[194],"for":[195],"For":[200],"example,":[201],"retain":[203],"symmetry":[205],"choose,":[207],"which":[208],"express":[210],"selective":[211,220],"communication.":[212],"As":[213],"corollary,":[215],"establish":[217],"implementing":[219,229],"communication":[221],"machines":[224],"no":[226],"harder":[227],"than":[228],"passing":[232],"machines.":[235]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2014,"cited_by_count":1},{"year":2012,"cited_by_count":2}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
