{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T20:06:02Z","timestamp":1784232362568,"version":"3.55.0"},"reference-count":35,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2024,1,2]],"date-time":"2024-01-02T00:00:00Z","timestamp":1704153600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2319014"],"award-info":[{"award-number":["2319014"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,1,2]]},"abstract":"<jats:p>Passive documents and active programs now widely comingle. Document languages include Turing-complete programming elements, and programming languages include sophisticated document notations. However, there are no formal foundations that model these languages. This matters because the interaction between document and program can be subtle and error-prone. In this paper we describe several such problems, then taxonomize and formalize document languages as levels of a document calculus. We employ the calculus as a foundation for implementing complex features such as reactivity, as well as for proving theorems about the boundary of content and computation. We intend for the document calculus to provide a theoretical basis for new document languages, and to assist designers in cleaning up the unsavory corners of existing languages.<\/jats:p>","DOI":"10.1145\/3632865","type":"journal-article","created":{"date-parts":[[2024,1,5]],"date-time":"2024-01-05T20:48:51Z","timestamp":1704487731000},"page":"667-694","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["A Core Calculus for Documents: Or, Lambda: The Ultimate Document"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8639-6541","authenticated-orcid":false,"given":"Will","family":"Crichton","sequence":"first","affiliation":[{"name":"Brown University, Providence, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5184-1975","authenticated-orcid":false,"given":"Shriram","family":"Krishnamurthi","sequence":"additional","affiliation":[{"name":"Brown University, Providence, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,1,5]]},"reference":[{"key":"e_1_3_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289971.1289977"},{"key":"e_1_3_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/944705.944711"},{"key":"e_1_3_1_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cola.2020.100960"},{"key":"e_1_3_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2489837.2489840"},{"key":"e_1_3_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103705"},{"key":"e_1_3_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/945885.945890"},{"key":"e_1_3_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3242587.3242600"},{"key":"e_1_3_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/32206.32209"},{"key":"e_1_3_1_10_1","doi-asserted-by":"publisher","unstructured":"Will Crichton and Shriram Krishnamurthi. 2023. Artifact for \u201cA Core Calculus for Documents\u201d. https:\/\/doi.org\/10.5281\/zenodo.8409115 10.5281\/zenodo.8409115","DOI":"10.5281\/zenodo.8409115"},{"key":"e_1_3_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462161"},{"key":"e_1_3_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/264842.264843"},{"key":"e_1_3_1_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(91)90036-W"},{"key":"e_1_3_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44202-9_23"},{"key":"e_1_3_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596550.1596569"},{"key":"e_1_3_1_16_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796805005575"},{"key":"e_1_3_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/575032"},{"key":"e_1_3_1_18_1","unstructured":"Shu-yu Guo Michael Ficarra and Kevin Gibbons. 2023. ECMAScript 2024 Language Specification. https:\/\/tc39.es\/ecma262\/."},{"key":"e_1_3_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1621607.1621624"},{"key":"e_1_3_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/767193.767195"},{"key":"e_1_3_1_21_1","unstructured":"Brian W. Kernighan and Dennis M. Ritchie. 1977. The M4 Macro Processor."},{"key":"e_1_3_1_22_1","unstructured":"Donald E. Knuth. 1996. Digital Typography. (1996). Commemorative lecture of the Kyoto Prize."},{"key":"e_1_3_1_23_1","doi-asserted-by":"publisher","DOI":"10.5555\/1102013"},{"key":"e_1_3_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596550.1596571"},{"key":"e_1_3_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1140335.1140352"},{"key":"e_1_3_1_26_1","volume-title":"Beyond Markdown","author":"MacFarlane John","year":"2018","unstructured":"John MacFarlane. 2018. Beyond Markdown. https:\/\/johnmacfarlane.net\/beyond-markdown.html."},{"key":"e_1_3_1_27_1","volume-title":"CommonMark Spec Version 0.30","author":"MacFarlane John","year":"2021","unstructured":"John MacFarlane. 2021. CommonMark Spec Version 0.30. https:\/\/spec.commonmark.org\/0.30\/."},{"key":"e_1_3_1_28_1","volume-title":"Typst: A Programmable Markup Language for Typesetting","author":"M\u00e4dje Laurenz","year":"2022","unstructured":"Laurenz M\u00e4dje. 2022. Typst: A Programmable Markup Language for Typesetting. Master\u2019s thesis. Technical University of Berlin, Berlin, Germany."},{"key":"e_1_3_1_29_1","volume-title":"Web Applications in Racket","author":"McCarthy Jay","year":"2022","unstructured":"Jay McCarthy. 2022. Web Applications in Racket. https:\/\/docs.racket-lang.org\/web-server\/."},{"key":"e_1_3_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/125490.125495"},{"key":"e_1_3_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/988672.988703"},{"key":"e_1_3_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192398"},{"key":"e_1_3_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/567446.567449"},{"key":"e_1_3_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/581690.581691"},{"key":"e_1_3_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/604131.604132"},{"key":"e_1_3_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/258993.259019"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632865","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632865","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632865","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T20:02:48Z","timestamp":1751659368000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632865"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,1,2]]},"references-count":35,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2024,1,2]]}},"alternative-id":["10.1145\/3632865"],"URL":"https:\/\/doi.org\/10.1145\/3632865","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,1,2]]},"assertion":[{"value":"2024-01-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}