{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T00:49:37Z","timestamp":1775868577610,"version":"3.50.1"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2025,1,7]],"date-time":"2025-01-07T00:00:00Z","timestamp":1736208000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Flemish Fund for Scientific Research","award":["3E231241"],"award-info":[{"award-number":["3E231241"]}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["W2411051"],"award-info":[{"award-number":["W2411051"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,1,7]]},"abstract":"<jats:p>\n                    Parsers and printers are vital for data synchronisation between different serialisation formats. As they are tightly related, much research has been devoted to showing that both can be derived from a single definition. It, however, turns out to be challenging to extend this work with\n                    <jats:italic toggle=\"yes\">exact-printing<\/jats:italic>\n                    , which recovers the original source text for the parsed data. In this paper, we propose a new approach to tackling the challenge that considers a parser-printer pair as a mechanism to synchronize the input text string with the data, and formalizes them as a bidirectional program (lens). We propose the first biparser framework to support exact-printing with non-injective parsers, provide a library of combinators for common patterns, and demonstrate its usefulness with biparsers for subsets of JSON and YAML.\n                  <\/jats:p>","DOI":"10.1145\/3704910","type":"journal-article","created":{"date-parts":[[2025,1,9]],"date-time":"2025-01-09T05:48:42Z","timestamp":1736401722000},"page":"2205-2231","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Biparsers: Exact Printing for Data Synchronisation"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7201-1954","authenticated-orcid":false,"given":"Ruifeng","family":"Xie","sequence":"first","affiliation":[{"name":"Peking University, Beijing, China"},{"name":"KU Leuven, Leuven, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8771-5559","authenticated-orcid":false,"given":"Tom","family":"Schrijvers","sequence":"additional","affiliation":[{"name":"KU Leuven, Leuven, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9034-205X","authenticated-orcid":false,"given":"Zhenjiang","family":"Hu","sequence":"additional","affiliation":[{"name":"Peking University, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,1,9]]},"reference":[{"key":"e_1_3_2_2_1","doi-asserted-by":"publisher","unstructured":"Faris Abou-Saleh James Cheney Jeremy Gibbons James McKinna and Perdita Stevens. 2015. Notions of Bidirectional Computation and Entangled State Monads. Springer International Publishing 187\u2013214. https:\/\/doi.org\/10.1007\/978-3-319-19797-5_9 10.1007\/978-3-319-19797-5_9","DOI":"10.1007\/978-3-319-19797-5_9"},{"key":"e_1_3_2_3_1","doi-asserted-by":"publisher","unstructured":"Faris Abou-Saleh James Cheney Jeremy Gibbons James McKinna and Perdita Stevens. 2016. Reflections on Monadic Lenses. Springer International Publishing Cham 1\u201331. https:\/\/doi.org\/10.1007\/978-3-319-30936-1_1 10.1007\/978-3-319-30936-1_1","DOI":"10.1007\/978-3-319-30936-1_1"},{"key":"e_1_3_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088348.1088357"},{"key":"e_1_3_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/319628.319634"},{"key":"e_1_3_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863572"},{"key":"e_1_3_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328897.1328487"},{"key":"e_1_3_2_8_1","doi-asserted-by":"publisher","DOI":"10.48456\/tr-390"},{"key":"e_1_3_2_9_1","doi-asserted-by":"publisher","unstructured":"Bryce Clarke Derek Elkins Jeremy Gibbons Fosco Loregian Bartosz Milewski Emily Pillmore and Mario Rom\u00e1n. 2022. Profunctor Optics a Categorical Update. Technical Report. https:\/\/doi.org\/10.48550\/arXiv.2001.07488 10.48550\/arXiv.2001.07488 arXiv:2001.07488 [cs math] version: 2 type: article.","DOI":"10.48550\/arXiv.2001.07488"},{"key":"e_1_3_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1232420.1232424"},{"key":"e_1_3_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926428"},{"key":"e_1_3_2_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00023-4"},{"key":"e_1_3_2_13_1","unstructured":"Edward A. Kmett. 2024. lens: Lenses Folds and Traversals. https:\/\/hackage.haskell.org\/package\/lens"},{"key":"e_1_3_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2847538.2847544"},{"key":"e_1_3_2_15_1","unstructured":"Daan Leijen and Erik Meijer. 2001. Parsec: Direct Style Monadic Parser Combinators for the Real World. (July 2001). https:\/\/www.microsoft.com\/en-us\/research\/publication\/parsec-direct-style-monadic-parser-combinators-for-the-real-world\/"},{"key":"e_1_3_2_16_1","unstructured":"John MacFarlane. 2024. pandoc: Conversion between markup formats. https:\/\/hackage.haskell.org\/package\/pandoc"},{"key":"e_1_3_2_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-018-0033-7"},{"key":"e_1_3_2_18_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796807006326"},{"key":"e_1_3_2_19_1","unstructured":"Ulf Norell. 2007. Towards a practical programming language based on dependent type theory. https:\/\/www.cse.chalmers.se\/~ulfn\/papers\/thesis.html"},{"key":"e_1_3_2_20_1","doi-asserted-by":"publisher","unstructured":"Ulf Norell. 2009. Dependently Typed Programming in Agda. Springer Berlin Heidelberg 230\u2013266. https:\/\/doi.org\/10.1007\/978-3-642-04652-0_5 10.1007\/978-3-642-04652-0_5","DOI":"10.1007\/978-3-642-04652-0_5"},{"key":"e_1_3_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2543728.2543737"},{"key":"e_1_3_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2088456.1863525"},{"key":"e_1_3_2_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-59451-5_2"},{"key":"e_1_3_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3471874.3472984"},{"key":"e_1_3_2_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-17184-1_6"},{"key":"e_1_3_2_26_1","doi-asserted-by":"publisher","unstructured":"Ruifeng Xie Tom Schrijvers and Zhenjiang Hu. 2024. Artifact for POPL\u201925: Biparsers: Exact Printing for Data Synchronisation. https:\/\/doi.org\/10.5281\/zenodo.13939727 10.5281\/zenodo.13939727","DOI":"10.5281\/zenodo.13939727"},{"key":"e_1_3_2_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-019-00082-y"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704910","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3704910","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T10:18:17Z","timestamp":1770200297000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704910"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,1,7]]},"references-count":26,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2025,1,7]]}},"alternative-id":["10.1145\/3704910"],"URL":"https:\/\/doi.org\/10.1145\/3704910","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,1,7]]},"assertion":[{"value":"2024-07-11","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-11-07","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-01-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}