{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,9]],"date-time":"2026-01-09T02:42:39Z","timestamp":1767926559799,"version":"3.49.0"},"reference-count":37,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T00:00:00Z","timestamp":1749772800000},"content-version":"vor","delay-in-days":3,"URL":"http:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2238442 and 2145367"],"award-info":[{"award-number":["2238442 and 2145367"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Stellar Development Foundation","award":["Gift"],"award-info":[{"award-number":["Gift"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,6,10]]},"abstract":"<jats:p>Choreographic programming (CP) is a paradigm for implementing distributed systems that uses a single global program to define the actions and interactions of all participants. Library-level CP implementations, like HasChor, integrate well with mainstream programming languages but have several limitations: Their conditionals require extra communication; they require specific host-language features (e.g., monads); and they lack support for programming patterns that are essential for implementing realistic distributed applications.<\/jats:p>\n          <jats:p>\n            We make three contributions to library-level CP to specifically address these challenges. First, we propose and formalize\n            <jats:italic toggle=\"yes\">conclaves<\/jats:italic>\n            and\n            <jats:italic toggle=\"yes\">multiply-located values<\/jats:italic>\n            , which enable efficient conditionals in library-level CP without redundant communication. Second, we propose\n            <jats:italic toggle=\"yes\">census polymorphism<\/jats:italic>\n            , a technique for abstracting over the number of participants in a choreography. Third, we introduce a design pattern for library-level CP in host languages without support for monads. We demonstrate these contributions via implementations in Haskell, Rust, and TypeScript.\n          <\/jats:p>","DOI":"10.1145\/3729296","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"1143-1166","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Efficient, Portable, Census-Polymorphic Choreographic Programming"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0001-9933-1728","authenticated-orcid":false,"given":"Mako","family":"Bates","sequence":"first","affiliation":[{"name":"University of Vermont, Burlington, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-3665-0182","authenticated-orcid":false,"given":"Shun","family":"Kashiwa","sequence":"additional","affiliation":[{"name":"University of California, San Diego, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-4372-4715","authenticated-orcid":false,"given":"Syed","family":"Jafri","sequence":"additional","affiliation":[{"name":"University of Vermont, Burlington, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-0947-9531","authenticated-orcid":false,"given":"Gan","family":"Shen","sequence":"additional","affiliation":[{"name":"University of California, Santa Cruz, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1374-7715","authenticated-orcid":false,"given":"Lindsey","family":"Kuper","sequence":"additional","affiliation":[{"name":"University of California, Santa Cruz, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3203-3742","authenticated-orcid":false,"given":"Joseph P.","family":"Near","sequence":"additional","affiliation":[{"name":"University of Vermont, Burlington, USA"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103677"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","unstructured":"Mako Bates Shun Kashiwa Syed Jafri Gan Shen Lindsey Kuper and Joseph Near. 2025. Efficient portable census-polymorphic choreographic programming. https:\/\/doi.org\/10.5281\/zenodo.15048718 Archival version 10.5281\/zenodo.15048718","DOI":"10.5281\/zenodo.15048718"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3576915.3623132"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133956.3133982"},{"key":"e_1_2_2_5_1","volume-title":"Multiparty Classical Choreographies. CoRR, abs\/1808.05088","author":"Carbone Marco","year":"2018","unstructured":"Marco Carbone, Lu\u00eds Cruz-Filipe, Fabrizio Montesi, and Agata Murawska. 2018. Multiparty Classical Choreographies. CoRR, abs\/1808.05088 (2018), arXiv:1808.05088. arxiv:1808.05088"},{"key":"e_1_2_2_6_1","volume-title":"Programming Languages and Systems","author":"Carbone Marco","unstructured":"Marco Carbone, Kohei Honda, and Nobuko Yoshida. 2007. Structured Communication-Centred Programming for Web Services. In Programming Languages and Systems, Rocco De Nicola (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 2\u201317. isbn:978-3-540-71316-6"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2220365.2220367"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429101"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-21461-5_1"},{"key":"e_1_2_2_10_1","unstructured":"Kaushik Chakraborty. 2024. UniChorn. https:\/\/share.unison-lang.org\/@kaychaks\/unichorn\/"},{"key":"e_1_2_2_11_1","volume-title":"14th USENIX symposium on networked systems design and implementation (NSDI 17)","author":"Corrigan-Gibbs Henry","year":"2017","unstructured":"Henry Corrigan-Gibbs and Dan Boneh. 2017. Prio: Private, robust, and scalable computation of aggregate statistics. In 14th USENIX symposium on networked systems design and implementation (NSDI 17). 259\u2013282. arxiv:1703.06255."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2023.7"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-17715-6_15"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1561\/3300000019"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3632398"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/28395.28420"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796823000114"},{"key":"e_1_2_2_18_1","unstructured":"Eva Graversen Fabrizio Montesi and Marco Peressotti. 2025. A Promising Future: Omission Failures in Choreographic Programming. arxiv:1712.05465. arxiv:1712.05465"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498684"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328472"},{"key":"e_1_2_2_21_1","doi-asserted-by":"crossref","unstructured":"Sung-Shik Jongmans and Petra van den Bos. 2022. A Predicate Transformer for Choreographies (Full Version) (OUNL-CS (Technical Reports)). Open Universiteit Nederland.","DOI":"10.1007\/978-3-030-99336-8_19"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.56553\/popets-2023-0086"},{"key":"e_1_2_2_23_1","volume-title":"Klor: Choreographies in Clojure. https:\/\/github.com\/lovrosdu\/klor","author":"Lugovi\u0107 Lovro","year":"2024","unstructured":"Lovro Lugovi\u0107 and Sung-Shik Jongmans. 2024. Klor: Choreographies in Clojure. https:\/\/github.com\/lovrosdu\/klor"},{"key":"e_1_2_2_24_1","unstructured":"Fabrizio Montesi. 2014. Ph. D. Dissertation. Denmark. isbn:978-87-7949-299-8"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1017\/9781108981491"},{"key":"e_1_2_2_26_1","first-page":"448","article-title":"Efficient oblivious transfer protocols","volume":"1","author":"Naor Moni","year":"2001","unstructured":"Moni Naor and Benny Pinkas. 2001. Efficient oblivious transfer protocols. In SODA. 1, 448\u2013457.","journal-title":"SODA."},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3242744.3242755"},{"key":"e_1_2_2_28_1","unstructured":"Matt Noonan. 2019. gdp: Reason about invariants and preconditions with ghosts of departed proofs.. https:\/\/hackage.haskell.org\/package\/gdp-0.0.3.0"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1023064908962"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.2168\/lmcs-9(4:23)2013"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2014.48"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3607849"},{"key":"e_1_2_2_33_1","unstructured":"Gan Shen and Lindsey Kuper. 2024. Toward Verified Library-Level Choreographic Programming with Algebraic Effects. arxiv:2407.06509. arxiv:2407.06509"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2023\/7\/14"},{"key":"e_1_2_2_35_1","volume-title":"Chorex: Choreographic Programming in Elixir. https:\/\/github.com\/utahplt\/chorex","author":"Wiersdorf Ashton","year":"2024","unstructured":"Ashton Wiersdorf and Ben Greenman. 2024. Chorex: Choreographic Programming in Elixir. https:\/\/github.com\/utahplt\/chorex"},{"key":"e_1_2_2_36_1","unstructured":"The World Wide Web Consortium. 2006. Web Services Choreography Description Language: Primer. https:\/\/www.w3.org\/TR\/ws-cdl-10-primer\/"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2020.2994391"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729296","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729296","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,16]],"date-time":"2025-07-16T06:04:44Z","timestamp":1752645884000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729296"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,10]]},"references-count":37,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729296"],"URL":"https:\/\/doi.org\/10.1145\/3729296","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}