{"id":"https://openalex.org/W2737306518","doi":"https://doi.org/10.1145/3122975.3122977","title":"Structured asynchrony with algebraic effects","display_name":"Structured asynchrony with algebraic effects","publication_year":2017,"publication_date":"2017-08-30","ids":{"openalex":"https://openalex.org/W2737306518","doi":"https://doi.org/10.1145/3122975.3122977","mag":"2737306518"},"language":"en","primary_location":{"id":"doi:10.1145/3122975.3122977","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3122975.3122977","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","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/A5086447301","display_name":"Daan Leijen","orcid":"https://orcid.org/0000-0003-1027-5430"},"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":true,"raw_author_name":"Daan Leijen","raw_affiliation_strings":["Microsoft Research, USA"],"affiliations":[{"raw_affiliation_string":"Microsoft Research, USA","institution_ids":["https://openalex.org/I1290206253"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5086447301"],"corresponding_institution_ids":["https://openalex.org/I1290206253"],"apc_list":null,"apc_paid":null,"fwci":3.8304,"has_fulltext":false,"cited_by_count":26,"citation_normalized_percentile":{"value":0.94892249,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":93,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"16","last_page":"29"},"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.9997000098228455,"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.9994999766349792,"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.8176420331001282},{"id":"https://openalex.org/keywords/asynchrony","display_name":"Asynchrony (computer programming)","score":0.8067625761032104},{"id":"https://openalex.org/keywords/asynchronous-communication","display_name":"Asynchronous communication","score":0.8024393320083618},{"id":"https://openalex.org/keywords/timeout","display_name":"Timeout","score":0.6793158054351807},{"id":"https://openalex.org/keywords/backtracking","display_name":"Backtracking","score":0.6782890558242798},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6088709235191345},{"id":"https://openalex.org/keywords/exception-handling","display_name":"Exception handling","score":0.5520025491714478},{"id":"https://openalex.org/keywords/interleaving","display_name":"Interleaving","score":0.5487785935401917},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.5077449083328247},{"id":"https://openalex.org/keywords/state","display_name":"State (computer science)","score":0.4856356680393219},{"id":"https://openalex.org/keywords/algebraic-number","display_name":"Algebraic number","score":0.46155500411987305},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.45027345418930054},{"id":"https://openalex.org/keywords/block","display_name":"Block (permutation group theory)","score":0.42521733045578003},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.10912123322486877},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.09192445874214172}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8176420331001282},{"id":"https://openalex.org/C2779019669","wikidata":"https://www.wikidata.org/wiki/Q25203946","display_name":"Asynchrony (computer programming)","level":3,"score":0.8067625761032104},{"id":"https://openalex.org/C151319957","wikidata":"https://www.wikidata.org/wiki/Q752739","display_name":"Asynchronous communication","level":2,"score":0.8024393320083618},{"id":"https://openalex.org/C31691690","wikidata":"https://www.wikidata.org/wiki/Q1753979","display_name":"Timeout","level":2,"score":0.6793158054351807},{"id":"https://openalex.org/C156884757","wikidata":"https://www.wikidata.org/wiki/Q798554","display_name":"Backtracking","level":2,"score":0.6782890558242798},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6088709235191345},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.5520025491714478},{"id":"https://openalex.org/C28034677","wikidata":"https://www.wikidata.org/wiki/Q17092530","display_name":"Interleaving","level":2,"score":0.5487785935401917},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5077449083328247},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4856356680393219},{"id":"https://openalex.org/C9376300","wikidata":"https://www.wikidata.org/wiki/Q168817","display_name":"Algebraic number","level":2,"score":0.46155500411987305},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.45027345418930054},{"id":"https://openalex.org/C2777210771","wikidata":"https://www.wikidata.org/wiki/Q4927124","display_name":"Block (permutation group theory)","level":2,"score":0.42521733045578003},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.10912123322486877},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.09192445874214172},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3122975.3122977","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3122975.3122977","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":48,"referenced_works":["https://openalex.org/W46322832","https://openalex.org/W847838221","https://openalex.org/W1543726080","https://openalex.org/W1606211906","https://openalex.org/W1750514695","https://openalex.org/W1782312947","https://openalex.org/W1830421783","https://openalex.org/W1965338843","https://openalex.org/W1971752790","https://openalex.org/W1987421013","https://openalex.org/W1997143185","https://openalex.org/W2007435074","https://openalex.org/W2014021676","https://openalex.org/W2030360570","https://openalex.org/W2041438114","https://openalex.org/W2048365843","https://openalex.org/W2050801551","https://openalex.org/W2067407300","https://openalex.org/W2073001576","https://openalex.org/W2076018351","https://openalex.org/W2087123999","https://openalex.org/W2102699068","https://openalex.org/W2104200012","https://openalex.org/W2109375905","https://openalex.org/W2109518186","https://openalex.org/W2113563476","https://openalex.org/W2129902163","https://openalex.org/W2132416076","https://openalex.org/W2163552400","https://openalex.org/W2184230987","https://openalex.org/W2293168108","https://openalex.org/W2407350208","https://openalex.org/W2510703714","https://openalex.org/W2544085948","https://openalex.org/W2561708922","https://openalex.org/W2597834528","https://openalex.org/W2610994252","https://openalex.org/W2744389017","https://openalex.org/W2763767150","https://openalex.org/W2798644064","https://openalex.org/W3082353674","https://openalex.org/W3101155261","https://openalex.org/W3103594074","https://openalex.org/W4230609379","https://openalex.org/W4244177239","https://openalex.org/W4248324061","https://openalex.org/W4251799386","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2218404197","https://openalex.org/W4378501577","https://openalex.org/W4386138535","https://openalex.org/W4210744260","https://openalex.org/W4283814387","https://openalex.org/W3038169499","https://openalex.org/W119674159","https://openalex.org/W4299801666","https://openalex.org/W4229928981","https://openalex.org/W2737306518"],"abstract_inverted_index":{"Algebraic":[0],"effect":[1,40],"handlers":[2],"generalize":[3],"many":[4],"control-flow":[5],"abstractions":[6,52],"that":[7,59,79],"are":[8,60],"implemented":[9],"specially":[10],"in":[11,62],"most":[12],"languages,":[13],"like":[14,53],"exception":[15],"handling,":[16],"iterators,":[17],"or":[18],"backtracking.":[19],"In":[20],"this":[21],"article,":[22],"we":[23,26],"show":[24],"how":[25],"can":[27],"implement":[28],"full":[29],"support":[30],"for":[31],"asynchronous":[32,65,87],"programming":[33],"as":[34],"a":[35],"library":[36],"using":[37],"just":[38],"algebraic":[39],"handlers.":[41],"The":[42],"consistent":[43],"type":[44],"driven":[45],"approach":[46],"also":[47,68],"leads":[48],"naturally":[49],"to":[50,75,82],"powerful":[51],"block-scoped":[54],"interleaving,":[55],"cancellation,":[56],"and":[57],"timeout's":[58],"lacking":[61],"other":[63],"major":[64],"frameworks.":[66],"We":[67],"introduce":[69],"the":[70,83],"concept":[71],"of":[72,86],"ambient":[73],"state":[74,78],"reason":[76],"about":[77],"is":[80],"local":[81],"current":[84],"strand":[85],"execution.":[88]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":2},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":6},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":5},{"year":2017,"cited_by_count":4}],"updated_date":"2026-02-07T06:11:34.122080","created_date":"2025-10-10T00:00:00"}
