{"id":"https://openalex.org/W2964963187","doi":"https://doi.org/10.1145/3341710","title":"Sequential programming for replicated data stores","display_name":"Sequential programming for replicated data stores","publication_year":2019,"publication_date":"2019-07-26","ids":{"openalex":"https://openalex.org/W2964963187","doi":"https://doi.org/10.1145/3341710","mag":"2964963187"},"language":"en","primary_location":{"id":"doi:10.1145/3341710","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341710","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341710","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/3341710","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5054750071","display_name":"Nicholas V. Lewchenko","orcid":null},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Nicholas V. Lewchenko","raw_affiliation_strings":["University of Colorado Boulder, USA"],"affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, USA","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5000188805","display_name":"Arjun Radhakrishna","orcid":"https://orcid.org/0000-0002-5559-5932"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Arjun Radhakrishna","raw_affiliation_strings":["Microsoft, USA"],"affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5053015803","display_name":"Akash Gaonkar","orcid":"https://orcid.org/0000-0001-5565-2581"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Akash Gaonkar","raw_affiliation_strings":["University of Colorado Boulder, USA"],"affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, USA","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5072396662","display_name":"Pavol \u010cern\u00fd","orcid":null},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Pavol \u010cern\u00fd","raw_affiliation_strings":["University of Colorado Boulder, USA"],"affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, USA","institution_ids":["https://openalex.org/I188538660"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5054750071"],"corresponding_institution_ids":["https://openalex.org/I188538660"],"apc_list":null,"apc_paid":null,"fwci":0.9285,"has_fulltext":true,"cited_by_count":12,"citation_normalized_percentile":{"value":0.77771228,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"3","issue":"ICFP","first_page":"1","last_page":"28"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":1.0,"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"}},"topics":[{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":1.0,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9983000159263611,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9954000115394592,"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.8904160261154175},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7392022013664246},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.7052526473999023},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.6704019904136658},{"id":"https://openalex.org/keywords/consistency","display_name":"Consistency (knowledge bases)","score":0.5625435709953308},{"id":"https://openalex.org/keywords/guard","display_name":"Guard (computer science)","score":0.4966598153114319},{"id":"https://openalex.org/keywords/exception-handling","display_name":"Exception handling","score":0.4569959044456482},{"id":"https://openalex.org/keywords/digital-subscriber-line","display_name":"Digital subscriber line","score":0.4356098175048828},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.40426743030548096},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.26932111382484436}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8904160261154175},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7392022013664246},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.7052526473999023},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.6704019904136658},{"id":"https://openalex.org/C2776436953","wikidata":"https://www.wikidata.org/wiki/Q5163215","display_name":"Consistency (knowledge bases)","level":2,"score":0.5625435709953308},{"id":"https://openalex.org/C141141315","wikidata":"https://www.wikidata.org/wiki/Q2379942","display_name":"Guard (computer science)","level":2,"score":0.4966598153114319},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.4569959044456482},{"id":"https://openalex.org/C201374245","wikidata":"https://www.wikidata.org/wiki/Q104534","display_name":"Digital subscriber line","level":2,"score":0.4356098175048828},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.40426743030548096},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.26932111382484436},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.0},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3341710","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341710","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341710","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/3341710","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341710","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341710","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":[],"awards":[{"id":"https://openalex.org/G345746105","display_name":null,"funder_award_id":"FA8750-15-2-0096","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G6868579675","display_name":null,"funder_award_id":"8750-15-2-0096","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"}],"funders":[{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2964963187.pdf","grobid_xml":"https://content.openalex.org/works/W2964963187.grobid-xml"},"referenced_works_count":23,"referenced_works":["https://openalex.org/W1916848204","https://openalex.org/W1981780124","https://openalex.org/W2024914463","https://openalex.org/W2045900383","https://openalex.org/W2046654145","https://openalex.org/W2054584570","https://openalex.org/W2078432474","https://openalex.org/W2087946700","https://openalex.org/W2095135670","https://openalex.org/W2098618284","https://openalex.org/W2105986479","https://openalex.org/W2117260615","https://openalex.org/W2127428602","https://openalex.org/W2131460078","https://openalex.org/W2143725230","https://openalex.org/W2144232511","https://openalex.org/W2146306932","https://openalex.org/W2282477915","https://openalex.org/W2295923951","https://openalex.org/W2506181100","https://openalex.org/W2898350964","https://openalex.org/W2962804085","https://openalex.org/W3137220996"],"related_works":["https://openalex.org/W2402757940","https://openalex.org/W1601811574","https://openalex.org/W2058003313","https://openalex.org/W1530680153","https://openalex.org/W1573380057","https://openalex.org/W2462687788","https://openalex.org/W2488899953","https://openalex.org/W1851310281","https://openalex.org/W3006199460","https://openalex.org/W2155187121"],"abstract_inverted_index":{"We":[0,142],"introduce":[1],"Carol,":[2],"a":[3,83,180],"refinement-typed":[4],"programming":[5,20],"language":[6,187],"for":[7],"replicated":[8,23],"data":[9,127],"stores.":[10],"The":[11,74],"salient":[12],"feature":[13],"of":[14,30,45,64,67],"Carol":[15,109,147,186],"is":[16,51,78,105],"that":[17,33,95],"it":[18],"allows":[19],"and":[21,36,90,122,144,169],"verifying":[22,72],"store":[24,89,94],"operations":[25,32,68],"modularly":[26],",":[27,38,82],"without":[28,39],"consideration":[29],"other":[31],"might":[34],"interleave,":[35],"sequentially":[37],"requiring":[40],"reference":[41],"to":[42,111,119,134,156,166,184],"or":[43,71],"knowledge":[44],"the":[46,61,79,87,91,108,120,135,146,153,161,171,185],"concurrent":[47,62],"execution":[48],"model.":[49],"This":[50],"in":[52,149,179],"stark":[53],"contrast":[54],"with":[55],"existing":[56],"systems,":[57],"which":[58,104,174],"require":[59],"understanding":[60],"interactions":[63],"all":[65],"pairs":[66],"when":[69],"developing":[70],"them.":[73],"key":[75],"enabling":[76,129],"idea":[77],"consistency":[80,115,139],"guard":[81],"two-state":[84],"predicate":[85],"relating":[86],"locally-viewed":[88],"hypothetical":[92],"remote":[93],"an":[96],"operation\u2019s":[97],"updates":[98],"may":[99],"eventually":[100],"be":[101],"applied":[102],"to,":[103],"used":[106,155],"by":[107],"programmer":[110,121],"declare":[112],"their":[113],"precise":[114],"requirements.":[116],"Guards":[117],"appear":[118],"refinement":[123],"typechecker":[124],"as":[125,138],"simple":[126],"pre-conditions,":[128],"sequential":[130],"reasoning,":[131],"while":[132],"appearing":[133],"distributed":[136],"runtime":[137,162,173],"control":[140],"instructions.":[141],"implement":[143],"evaluate":[145],"system":[148],"two":[150],"parts:":[151],"(1)":[152],"algorithm":[154],"statically":[157],"translate":[158],"guards":[159],"into":[160],"coordination":[163],"actions":[164],"required":[165],"enforce":[167],"them,":[168],"(2)":[170],"networked-replica":[172],"executes":[175],"arbitrary":[176],"operations,":[177],"written":[178],"Haskell":[181],"DSL,":[182],"according":[183],"semantics.":[188]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":1}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
