{"id":"https://openalex.org/W3113533517","doi":"https://doi.org/10.1145/3434314","title":"A separation logic for effect handlers","display_name":"A separation logic for effect handlers","publication_year":2021,"publication_date":"2021-01-04","ids":{"openalex":"https://openalex.org/W3113533517","doi":"https://doi.org/10.1145/3434314","mag":"3113533517"},"language":"en","primary_location":{"id":"doi:10.1145/3434314","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434314","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434314","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":null,"license_id":null,"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/3434314","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5004707989","display_name":"Paulo Em\u00edlio de Vilhena","orcid":"https://orcid.org/0000-0001-7379-310X"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en sciences et technologies du num\u00e9rique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"government","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Paulo Em\u00edlio de Vilhena","raw_affiliation_strings":["Inria, France"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Inria, France","institution_ids":["https://openalex.org/I1326498283"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5060426941","display_name":"Fran\u00e7ois Pottier","orcid":"https://orcid.org/0000-0002-4069-1235"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en sciences et technologies du num\u00e9rique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"government","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Fran\u00e7ois Pottier","raw_affiliation_strings":["Inria, France"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Inria, France","institution_ids":["https://openalex.org/I1326498283"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.5393,"has_fulltext":true,"cited_by_count":24,"citation_normalized_percentile":{"value":0.85549331,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":100},"biblio":{"volume":"5","issue":"POPL","first_page":"1","last_page":"28"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"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"}},"topics":[{"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/T10142","display_name":"Formal Methods in Verification","score":0.998199999332428,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T11010","display_name":"Logic, Reasoning, and Knowledge","score":0.9937000274658203,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7971277832984924},{"id":"https://openalex.org/keywords/spawn","display_name":"Spawn (biology)","score":0.5961066484451294},{"id":"https://openalex.org/keywords/separation-logic","display_name":"Separation logic","score":0.5960003733634949},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.47948867082595825},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.4781319200992584},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.4735899567604065},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4129679799079895},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.410778671503067},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.40107622742652893}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7971277832984924},{"id":"https://openalex.org/C17458331","wikidata":"https://www.wikidata.org/wiki/Q935672","display_name":"Spawn (biology)","level":2,"score":0.5961066484451294},{"id":"https://openalex.org/C173856430","wikidata":"https://www.wikidata.org/wiki/Q3257964","display_name":"Separation logic","level":2,"score":0.5960003733634949},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.47948867082595825},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.4781319200992584},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.4735899567604065},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4129679799079895},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.410778671503067},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.40107622742652893},{"id":"https://openalex.org/C505870484","wikidata":"https://www.wikidata.org/wiki/Q180538","display_name":"Fishery","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3434314","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434314","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434314","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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:HAL:hal-03049514v1","is_oa":true,"landing_page_url":"https://inria.hal.science/hal-03049514","pdf_url":null,"source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"Centre National de la Recherche Scientifique","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of the ACM on Programming Languages, 2021, 5 (POPL), &#x27E8;10.1145/3434314&#x27E9;","raw_type":"Journal articles"}],"best_oa_location":{"id":"doi:10.1145/3434314","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434314","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434314","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":null,"license_id":null,"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":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3113533517.pdf","grobid_xml":"https://content.openalex.org/works/W3113533517.grobid-xml"},"referenced_works_count":19,"referenced_works":["https://openalex.org/W1967996089","https://openalex.org/W1970338420","https://openalex.org/W1971752790","https://openalex.org/W2007435074","https://openalex.org/W2101443478","https://openalex.org/W2129902163","https://openalex.org/W2160234152","https://openalex.org/W2184230987","https://openalex.org/W2566370321","https://openalex.org/W2736423681","https://openalex.org/W2901454403","https://openalex.org/W2940960788","https://openalex.org/W2966434214","https://openalex.org/W2994908035","https://openalex.org/W3012366501","https://openalex.org/W3101155261","https://openalex.org/W3103594074","https://openalex.org/W3123460033","https://openalex.org/W4300891092"],"related_works":["https://openalex.org/W2411369201","https://openalex.org/W2017893186","https://openalex.org/W2347925189","https://openalex.org/W2359334753","https://openalex.org/W1985268346","https://openalex.org/W2344195838","https://openalex.org/W2009289327","https://openalex.org/W2141624220","https://openalex.org/W2331813980","https://openalex.org/W2132761501"],"abstract_inverted_index":{"User-defined":[0],"effects":[1,117],"and":[2,7,13,25,29,45,67,78,103,143,152,167,206,223],"effect":[3,76,99],"handlers":[4,77],"are":[5],"advertised":[6],"advocated":[8],"as":[9,82,123,125],"a":[10,27,42,53,92,108,112,140,144,179,187,193,196,208],"relatively":[11],"easy-to-understand":[12],"modular":[14],"approach":[15],"to":[16,32,57,132],"delimited":[17],"control.":[18],"They":[19],"offer":[20],"the":[21,38,46,71,116,119,126],"ability":[22],"of":[23,73,107,155,182],"suspending":[24],"resuming":[26],"computation":[28],"allow":[30],"information":[31],"be":[33],"transmitted":[34],"both":[35,74,101],"ways":[36],"between":[37],"computation,":[39],"which":[40,48,185,199],"requests":[41],"certain":[43],"service,":[44],"handler,":[47],"provides":[49],"this":[50,58,88],"service.":[51],"Yet,":[52],"key":[54],"question":[55,89],"remains,":[56],"day,":[59],"largely":[60],"unanswered:":[61],"how":[62],"does":[63],"one":[64,200],"modularly":[65],"specify":[66],"verify":[68],"programs":[69],"in":[70],"presence":[72],"user-defined":[75,164],"primitive":[79],"effects,":[80],"such":[81],"heap-allocated":[83],"mutable":[84],"state?":[85],"We":[86,169],"answer":[87],"by":[90],"presenting":[91],"Separation":[93],"Logic":[94],"with":[95],"built-in":[96],"support":[97,160],"for":[98,161,211],"handlers,":[100],"shallow":[102],"deep.":[104],"The":[105,134],"specification":[106],"program":[109,120],"fragment":[110],"includes":[111],"protocol":[113],"that":[114,118,128,189],"describes":[115],"may":[121],"perform":[122],"well":[124],"replies":[127],"it":[129],"can":[130,201,219],"expect":[131],"receive.":[133],"logic":[135],"allows":[136],"local":[137],"reasoning":[138],"via":[139,173,225],"frame":[141],"rule":[142],"bind":[145],"rule.":[146],"It":[147],"is":[148],"based":[149],"on":[150,204],"Iris":[151],"inherits":[153],"all":[154],"its":[156,171],"advanced":[157],"features,":[158],"including":[159,177],"higher-order":[162],"functions,":[163],"ghost":[165],"state,":[166],"invariants.":[168],"illustrate":[170],"power":[172],"several":[174,215],"case":[175],"studies,":[176],"(1)":[178],"generic":[180],"formulation":[181],"control":[183],"inversion,":[184],"turns":[186],"producer":[188,197],"``pushes''":[190],"elements":[191,203],"towards":[192],"consumer":[194],"into":[195],"from":[198],"``pull''":[202],"demand,":[205],"(2)":[207],"simple":[209],"system":[210],"cooperative":[212],"concurrency,":[213],"where":[214],"threads":[216],"execute":[217],"concurrently,":[218],"spawn":[220],"new":[221],"threads,":[222],"communicate":[224],"promises.":[226]},"counts_by_year":[{"year":2026,"cited_by_count":6},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
