{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2563,"items":[{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:50:02Z","timestamp":1750308602433,"version":"3.41.0"},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T00:00:00Z","timestamp":1576800000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"NSF","doi-asserted-by":"publisher","award":["CCF-1704041, CNS-1422979"],"award-info":[{"award-number":["CCF-1704041, CNS-1422979"]}],"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":[[2020,1]]},"abstract":"<jats:p>Functional programming languages assume that type constructors are total. Yet functional programmers know better: counterexamples range from container types that make limiting assumptions about their contents (e.g., requiring computable equality or ordering functions) to type families with defining equations only over certain choices of arguments. We present a language design and formal theory of partial type constructors, capturing the domains of type constructors using qualified types. Our design is both simple and expressive: we support partial datatypes as first-class citizens (including as instances of parametric abstractions, such as the Haskell Functor and Monad classes), and show a simple type elaboration algorithm that avoids placing undue annotation burden on programmers. We show that our type system rejects ill-defined types and can be compiled to a semantic model based on System F. Finally, we have conducted an experimental analysis of a body of Haskell code, using a proof-of-concept implementation of our system; while there are cases where our system requires additional annotations, these cases are rarely encountered in practical Haskell code.<\/jats:p>","DOI":"10.1145\/3371108","type":"journal-article","created":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T19:45:25Z","timestamp":1576871125000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Partial type constructors: or, making ad hoc datatypes less ad hoc"],"prefix":"10.1145","volume":"4","author":[{"given":"Mark P.","family":"Jones","sequence":"first","affiliation":[{"name":"Portland State University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"J. Garrett","family":"Morris","sequence":"additional","affiliation":[{"name":"University of Kansas, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Richard A.","family":"Eisenberg","sequence":"additional","affiliation":[{"name":"Bryn Mawr College, USA \/ Tweag I\/O, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,12,20]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122955.3122967"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129514000115"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286957"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040306"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.2307\/2266170"},{"key":"e_1_2_2_8_1","volume-title":"Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201906)","author":"Reis Gabriel Dos","year":"2006","unstructured":"Gabriel Dos Reis and Bjarne Stroustrup . 2006 . Specifying C++ Concepts . In Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201906) . ACM, New York, NY, USA, 295\u2013308. Gabriel Dos Reis and Bjarne Stroustrup. 2006. Specifying C++ Concepts. In Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201906). ACM, New York, NY, USA, 295\u2013308."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3331545.3342594"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190229"},{"key":"e_1_2_2_11_1","volume-title":"Jones","author":"Gaster Benedict R.","year":"1996","unstructured":"Benedict R. Gaster and Mark P . Jones . 1996 . A Polymorphic Type System for Extensible Records and Variants. Technical Report NOT TCS-TR-96-3. University of Nottingham . Benedict R. Gaster and Mark P. Jones. 1996. A Polymorphic Type System for Extensible Records and Variants. Technical Report NOT TCS-TR-96-3. University of Nottingham."},{"key":"e_1_2_2_12_1","unstructured":"GHC Team. 2017. GHC User\u2019s Guide Documentation. http:\/\/www.haskell.org\/ghc\/docs\/latest\/users_guide.pdf .  GHC Team. 2017. GHC User\u2019s Guide Documentation. http:\/\/www.haskell.org\/ghc\/docs\/latest\/users_guide.pdf ."},{"key":"e_1_2_2_13_1","volume-title":"Simon Peyton Jones","author":"Hudak Paul","year":"1991","unstructured":"Paul Hudak , Simon Peyton Jones , and Philip Wadler (Eds.). 1991 . Report on the Programming Language Haskell, Version 1.1. Available from http:\/\/haskell.org\/definition\/haskell- report- 1.1.tar.gz . Paul Hudak, Simon Peyton Jones, and Philip Wadler (Eds.). 1991. Report on the Programming Language Haskell, Version 1.1. Available from http:\/\/haskell.org\/definition\/haskell- report- 1.1.tar.gz ."},{"key":"e_1_2_2_14_1","unstructured":"Paul Hudak and Philip Wadler (Eds.). 1990. Report on the Programming Language Haskell Version 1.0. Available from http:\/\/haskell.org\/definition\/haskell- report- 1.0.ps.gz .  Paul Hudak and Philip Wadler (Eds.). 1990. Report on the Programming Language Haskell Version 1.0. Available from http:\/\/haskell.org\/definition\/haskell- report- 1.0.ps.gz ."},{"key":"e_1_2_2_16_1","volume-title":"Proceedings of the 1999 Haskell Workshop","author":"Hughes John","year":"1999","unstructured":"John Hughes . 1999 . Restricted Data Types in Haskell . In Proceedings of the 1999 Haskell Workshop . University of Utrecht, Technical Report UU-CS- 1999-28, Paris, France, 83\u2013100. John Hughes. 1999. Restricted Data Types in Haskell. In Proceedings of the 1999 Haskell Workshop. University of Utrecht, Technical Report UU-CS-1999-28, Paris, France, 83\u2013100."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165190"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511663086"},{"volume-title":"First International Spring School on Advanced Functional Programming Techniques (Lecture Notes in Computer Science)","author":"Jones Mark P.","key":"e_1_2_2_20_1","unstructured":"Mark P. Jones . 1995a. Functional Programming with Overloading and Higher-Order Polymorphism . In First International Spring School on Advanced Functional Programming Techniques (Lecture Notes in Computer Science) , Vol. 925 . Springer , Berlin Heidelberg , 97\u2013136. Mark P. Jones. 1995a. Functional Programming with Overloading and Higher-Order Polymorphism. In First International Spring School on Advanced Functional Programming Techniques (Lecture Notes in Computer Science), Vol. 925. Springer, Berlin Heidelberg, 97\u2013136."},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/224164.224198"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-46425-5_15"},{"key":"e_1_2_2_23_1","unstructured":"Oleg Kiselyov. 2007. Haskell with only one type class. http:\/\/okmij.org\/ftp\/Haskell\/Haskell1\/Haskell1.txt .  Oleg Kiselyov. 2007. Haskell with only one type class. http:\/\/okmij.org\/ftp\/Haskell\/Haskell1\/Haskell1.txt ."},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341706"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-61055-3_38"},{"key":"e_1_2_2_26_1","unstructured":"Simon Marlow (Ed.). 2010. Haskell 2010 Language Report. Available online in HTML and pdf formats from https: \/\/www.haskell.org\/documentation .  Simon Marlow (Ed.). 2010. Haskell 2010 Language Report. Available online in HTML and pdf formats from https: \/\/www.haskell.org\/documentation ."},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449798"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110286"},{"key":"e_1_2_2_29_1","volume-title":"POPL","author":"Garrett Morris J.","year":"2019","unstructured":"J. Garrett Morris and James McKinna . 2019. Abstracting extensible data types: or, rows by any other name. PACMPL 3 , POPL ( 2019 ), 12:1\u201312:28. https:\/\/dl.acm.org\/citation.cfm?id=3290325 J. Garrett Morris and James McKinna. 2019. Abstracting extensible data types: or, rows by any other name. PACMPL 3, POPL (2019), 12:1\u201312:28. https:\/\/dl.acm.org\/citation.cfm?id=3290325"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-12251-4_6"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-34407-7_6"},{"key":"e_1_2_2_32_1","unstructured":"Simon Peyton Jones. 1991. Contexts in data and type. http:\/\/code.haskell.org\/~dons\/haskell- 1990- 2000\/msg00072.html .  Simon Peyton Jones. 1991. Contexts in data and type. http:\/\/code.haskell.org\/~dons\/haskell- 1990- 2000\/msg00072.html ."},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411215"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596550.1596599"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0061839"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500602"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2804302.2804314"},{"volume-title":"The Design and Evolution of C++","author":"Stroustrup Bjarne","key":"e_1_2_2_38_1","unstructured":"Bjarne Stroustrup . 1994. The Design and Evolution of C++ . Addison-Wesley , Boston, MA . Bjarne Stroustrup. 1994. The Design and Evolution of C++. Addison-Wesley, Boston, MA."},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190315.1190324"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500611"},{"volume-title":"Practical Aspects of Declarative Languages","author":"Winant Thomas","key":"e_1_2_2_42_1","unstructured":"Thomas Winant , Dominique Devriese , Frank Piessens , and Tom Schrijvers . 2014. Partial Type Signatures for Haskell . In Practical Aspects of Declarative Languages , Vol. 8324 . Springer International Publishing , 17\u201332. Thomas Winant, Dominique Devriese, Frank Piessens, and Tom Schrijvers. 2014. Partial Type Signatures for Haskell. In Practical Aspects of Declarative Languages, Vol. 8324. Springer International Publishing, 17\u201332."},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/604131.604150"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371108","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371108","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371108","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:05:43Z","timestamp":1750273543000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371108"}},"issued":{"date-parts":[[2019,12,20]]},"references-count":40,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["10.1145\/3371108"],"URL":"https:\/\/doi.org\/10.1145\/3371108","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2019,12,20]]},"assertion":[{"value":"2019-12-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T10:01:48Z","timestamp":1770285708720,"version":"3.49.0"},"reference-count":54,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2020,8,2]],"date-time":"2020-08-02T00:00:00Z","timestamp":1596326400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,8,2]]},"abstract":"<jats:p>The naive combination of polymorphic effects and polymorphic type assignment has been well known to break type safety. Existing approaches to this problem are classified into two groups: one for restricting how effects are triggered and the other for restricting how they are implemented. This work explores a new approach to ensuring the safety of polymorphic effects in polymorphic type assignment. A novelty of our work lies in finding a restriction on effect interfaces. To formalize our idea, we employ algebraic effects and handlers, where an effect interface is given by a set of operations coupled with type signatures. We propose signature restriction, a new notion to restrict the type signatures of operations, and show that signature restriction is sufficient to ensure type safety of an effectful language equipped with unrestricted polymorphic type assignment. We also develop a type-and-effect system to enable the use of both operations that satisfy and do not satisfy the signature restriction in a single program.<\/jats:p>","DOI":"10.1145\/3408999","type":"journal-article","created":{"date-parts":[[2020,8,3]],"date-time":"2020-08-03T13:48:02Z","timestamp":1596462482000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Signature restriction for polymorphic algebraic effects"],"prefix":"10.1145","volume":"4","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9286-230X","authenticated-orcid":false,"given":"Taro","family":"Sekiyama","sequence":"first","affiliation":[{"name":"National Institute of Informatics, Japan \/ SOKENDAI, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2824-8708","authenticated-orcid":false,"given":"Takeshi","family":"Tsukada","sequence":"additional","affiliation":[{"name":"University of Tokyo, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5143-9764","authenticated-orcid":false,"given":"Atsushi","family":"Igarashi","sequence":"additional","affiliation":[{"name":"Kyoto University, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,8,3]]},"reference":[{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480925"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-54444-5_83"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-76637-7_16"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2014.02.001"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371116"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535883"},{"key":"e_1_2_2_8_1","volume-title":"A Scheme for a Higher-Level Semantic Algebra","author":"Clinger William D."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236764"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/91556.91622"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89719-6_6"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863566"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500582"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73576"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706354"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796819000121"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24754-8_15"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-09724-4"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/224164.224173"},{"key":"e_1_2_2_21_1","unstructured":"Robert Harper and Mark Lillibridge. 1991. ML with callcc is unsound. Announcement on the types electronic forum. https:\/\/www.cis.upenn.edu\/~bcpierce\/types\/archives\/1991\/msg00034.html  Robert Harper and Mark Lillibridge. 1991. ML with callcc is unsound. Announcement on the types electronic forum. https:\/\/www.cis.upenn.edu\/~bcpierce\/types\/archives\/1991\/msg00034.html"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158630"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01019463"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.1993.287604"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500590"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000320"},{"key":"e_1_2_2_27_1","volume-title":"Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017. 486-499","author":"Leijen Daan","year":"2017"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/567067.567077"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/99583.99622"},{"key":"e_1_2_2_30_1","unstructured":"Paul Blain Levy. 2001. Call-by-push-value. Ph.D. Dissertation. Queen Mary University of London UK. http:\/\/ethos.bl.uk\/ OrderDetails.do?uin=uk. bl.ethos.369233  Paul Blain Levy. 2001. Call-by-push-value. Ph.D. Dissertation. Queen Mary University of London UK. http:\/\/ethos.bl.uk\/ OrderDetails.do?uin=uk. bl.ethos.369233"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009897"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1016\/0022-0000(78)90014-4"},{"key":"e_1_2_2_33_1","doi-asserted-by":"crossref","volume-title":"The Definition of Standard ML","author":"Milner Robin","DOI":"10.7551\/mitpress\/2319.001.0001"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(88)90009-0"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(91)90052-4"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371126"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006034"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158524"},{"key":"e_1_2_2_39_1","volume-title":"Higher Order Operational Techniques in Semantics","author":"Pitts Andrew"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1023064908962"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_7"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-9(4:23)2013"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-06859-7_148"},{"key":"e_1_2_2_44_1","volume-title":"Abstraction and Parametric Polymorphism. In IFIP Congress. 513-523","author":"Reynolds John C.","year":"1983"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009875"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-17184-1_13"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155104"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837655"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.1996.561306"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(90)90018-D"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/143165.143169"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.1994.316068"},{"key":"e_1_2_2_53_1","doi-asserted-by":"crossref","unstructured":"Andrew K. Wright. 1995. Simple Imperative Polymorphism. Lisp and Symbolic Computation 8 4 ( 1995 ) 343-355.  Andrew K. Wright. 1995. Simple Imperative Polymorphism. Lisp and Symbolic Computation 8 4 ( 1995 ) 343-355.","DOI":"10.1007\/BF01018828"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006216"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3408999","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3408999","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:47:59Z","timestamp":1750193279000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3408999"}},"issued":{"date-parts":[[2020,8,2]]},"references-count":54,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2020,8,2]]}},"alternative-id":["10.1145\/3408999"],"URL":"https:\/\/doi.org\/10.1145\/3408999","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2020,8,2]]},"assertion":[{"value":"2020-08-03","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,4,2]],"date-time":"2026-04-02T02:29:47Z","timestamp":1775096987979,"version":"3.50.1"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,1,2]],"date-time":"2019-01-02T00:00:00Z","timestamp":1546387200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"DFF","award":["4002-00442"],"award-info":[{"award-number":["4002-00442"]}]},{"DOI":"10.13039\/100008398","name":"VILLUM FONDEN","doi-asserted-by":"crossref","award":["13156"],"award-info":[{"award-number":["13156"]}],"id":[{"id":"10.13039\/100008398","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":[[2019,1,2]]},"abstract":"<jats:p>In type theory, coinductive types are used to represent processes, and are thus crucial for the formal verification of non-terminating reactive programs in proof assistants based on type theory, such as Coq and Agda. Currently, programming and reasoning about coinductive types is difficult for two reasons: The need for recursive definitions to be productive, and the lack of coincidence of the built-in identity types and the important notion of bisimilarity.<\/jats:p>\n          <jats:p>Guarded recursion in the sense of Nakano has recently been suggested as a possible approach to dealing with the problem of productivity, allowing this to be encoded in types. Indeed, coinductive types can be encoded using a combination of guarded recursion and universal quantification over clocks. This paper studies the notion of bisimilarity for guarded recursive types in Ticked Cubical Type Theory, an extension of Cubical Type Theory with guarded recursion. We prove that, for any functor, an abstract, category theoretic notion of bisimilarity for the final guarded coalgebra is equivalent (in the sense of homotopy type theory) to path equality (the primitive notion of equality in cubical type theory). As a worked example we study a guarded notion of labelled transition systems, and show that, as a special case of the general theorem, path equality coincides with an adaptation of the usual notion of bisimulation for processes. In particular, this implies that guarded recursion can be used to give simple equational reasoning proofs of bisimilarity. This work should be seen as a step towards obtaining bisimilarity as path equality for coinductive types using the encodings mentioned above.<\/jats:p>","DOI":"10.1145\/3290317","type":"journal-article","created":{"date-parts":[[2019,1,4]],"date-time":"2019-01-04T13:33:51Z","timestamp":1546608831000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":13,"title":["Bisimulation as path type for guarded recursive types"],"prefix":"10.1145","volume":"3","author":[{"given":"Rasmus Ejlers","family":"M\u00f8gelberg","sequence":"first","affiliation":[{"name":"IT University of Copenhagen, Denmark"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Niccol\u00f2","family":"Veltri","sequence":"additional","affiliation":[{"name":"IT University of Copenhagen, Denmark"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,1,2]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000319"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10485-014-9372-9"},{"key":"e_1_2_2_3_1","volume-title":"Non-Wellfounded Trees in Homotopy Type Theory. In 13th International Conference on Typed Lambda Calculi and Applications, TLCA 2015","volume":"38","author":"Ahrens Benedikt","year":"2015"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/504709.504712"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500597"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/3329995.3330032"},{"key":"e_1_2_2_7_1","volume-title":"19th International Conference on Types for Proofs and Programs, TYPES 2013","volume":"26","author":"Bezem Marc","year":"2013"},{"key":"e_1_2_2_8_1","volume-title":"Guarded Cubical Type Theory: Path Equality for Guarded Recursion. In 25th EACSL Annual Conference on Computer Science Logic, CSL 2016","author":"Birkedal Lars","year":"2016"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2011.16"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-08918-8_8"},{"key":"e_1_2_2_11_1","volume-title":"Ranald Clouston, Rasmus Ejlers M\u00f8gelberg, and Lars Birkedal.","author":"Bizjak Ales","year":"2016"},{"key":"e_1_2_2_12_1","volume-title":"Type-driven Development with Idris","author":"Brady Edwin"},{"key":"e_1_2_2_13_1","volume-title":"21st International Conference on Types for Proofs and Programs (TYPES 2015) (Leibniz International Proceedings in Informatics (LIPIcs))","author":"Cohen Cyril"},{"key":"e_1_2_2_14_1","volume-title":"International Workshop TYPES\u201993","volume":"806","author":"Coquand Thierry","year":"1993"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3209108.3209197"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158131"},{"key":"e_1_2_2_17_1","volume-title":"International Workshop TYPES\u201995","volume":"1158","author":"Dybjer Peter","year":"1996"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3167085"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/646234.758793"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1998.2725"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.240882"},{"key":"e_1_2_2_22_1","doi-asserted-by":"crossref","volume-title":"Introduction to Coalgebra: Towards Mathematics of States and Observation","author":"Jacobs Bart","DOI":"10.1017\/CBO9781316823187"},{"key":"e_1_2_2_23_1","unstructured":"Ralf Jung Robbert Krebbers Jacques-Henri Jourdan Ale\u0161 Bizjak Lars Birkedal and Derek Dreyer. 2018. Iris from the ground up. (2018). https:\/\/people.mpi- sws.org\/~dreyer\/papers\/iris- ground- up\/paper.pdf  Ralf Jung Robbert Krebbers Jacques-Henri Jourdan Ale\u0161 Bizjak Lars Birkedal and Derek Dreyer. 2018. Iris from the ground up. (2018). https:\/\/people.mpi- sws.org\/~dreyer\/papers\/iris- ground- up\/paper.pdf"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2015.08.002"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111042"},{"key":"e_1_2_2_26_1","volume-title":"Sheaves in geometry and logic: A first introduction to topos theory","author":"MacLane Saunders"},{"key":"e_1_2_2_27_1","volume-title":"The Clocks They Are Adjunctions Denotational Semantics for Clocked Type Theory. In 3rd International Conference on Formal Structures for Computation and Deduction, FSCD 2018","volume":"108","author":"Mannaa Bassel","year":"2018"},{"key":"e_1_2_2_28_1","series-title":"Lecture Notes in Computer Science","volume-title":"A Calculus of Communicating Systems","author":"Milner Robin"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(83)90114-7"},{"key":"e_1_2_2_30_1","volume-title":"Communicating and mobile systems: the pi calculus","author":"Milner Robin"},{"key":"e_1_2_2_31_1","first-page":"1","article-title":"A type theory for productive coprogramming via guarded recursion","volume":"71","author":"M\u00f8gelberg R. E.","year":"2014","journal-title":"CSL-LICS."},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2933575.2934516"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/788022.789002"},{"key":"e_1_2_2_34_1","volume-title":"25th EACSL Annual Conference on Computer Science Logic, CSL 2016","author":"Orton Ian","year":"2016"},{"key":"e_1_2_2_35_1","volume-title":"Advanced Topics in Bisimulation and Coinduction","author":"Pous Damien"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00056-6"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ic.2009.10.010"},{"key":"e_1_2_2_38_1","unstructured":"Arnaud Spiwack and Thierry Coquand. 2010. Constructively Finite? In Contribuciones cient\u00edficas en honor de Mirian Andr\u00e9s G\u00f3mez Laureano Lamb\u00e1n Pardo Ana Romero Ib\u00e1\u00f1ez and Julio Rubio Garc\u00eda (Eds.). Universidad de La Rioja 217\u2013230.  Arnaud Spiwack and Thierry Coquand. 2010. Constructively Finite? In Contribuciones cient\u00edficas en honor de Mirian Andr\u00e9s G\u00f3mez Laureano Lamb\u00e1n Pardo Ana Romero Ib\u00e1\u00f1ez and Julio Rubio Garc\u00eda (Eds.). Universidad de La Rioja 217\u2013230."},{"key":"e_1_2_2_39_1","volume-title":"Third International Conference, CALCO 2009, Udine, Italy, September 7-10, 2009. Proceedings (Lecture Notes in Computer Science), Alexander Kurz, Marina Lenisa, and Andrzej Tarlecki (Eds.)","volume":"5728","author":"Staton Sam","year":"2009"},{"key":"e_1_2_2_40_1","unstructured":"The Agda Team. 2018. The Agda wiki. (2018). http:\/\/wiki.portal.chalmers.se\/agda\/ .  The Agda Team. 2018. The Agda wiki. (2018). http:\/\/wiki.portal.chalmers.se\/agda\/ ."},{"key":"e_1_2_2_41_1","doi-asserted-by":"crossref","unstructured":"The Project Everest Team. 2018. The Everest Project. (2018). https:\/\/project- everest.github.io\/ .  The Project Everest Team. 2018. The Everest Project. (2018). https:\/\/project- everest.github.io\/ .","DOI":"10.1215\/00265667-4391548"},{"key":"e_1_2_2_42_1","volume-title":"Homotopy Type Theory: Univalent Foundations of Mathematics. https: \/\/homotopytypetheory.org\/book","author":"Foundations Program The Univalent"},{"key":"e_1_2_2_44_1","unstructured":"Andrea Vezzosi. 2017. Streams for Cubical Type Theory. (2017). http:\/\/www.cse.chalmers.se\/~vezzosi\/streams- ctt.pdf  Andrea Vezzosi. 2017. Streams for Cubical Type Theory. (2017). http:\/\/www.cse.chalmers.se\/~vezzosi\/streams- ctt.pdf"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290317","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3290317","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:02:07Z","timestamp":1750208527000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290317"}},"issued":{"date-parts":[[2019,1,2]]},"references-count":43,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2019,1,2]]}},"alternative-id":["10.1145\/3290317"],"URL":"https:\/\/doi.org\/10.1145\/3290317","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2019,1,2]]},"assertion":[{"value":"2019-01-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,1,25]],"date-time":"2026-01-25T02:11:34Z","timestamp":1769307094877,"version":"3.49.0"},"reference-count":37,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T00:00:00Z","timestamp":1634256000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2021,10,20]]},"abstract":"<jats:p>We present a simple, practical, and expressive relational nullable type system. A relational nullable type system captures whether an expression may evaluate to null based on its type, but also based on the type of other related expressions. The type system extends the Hindley-Milner type system with Boolean constraints, supports parametric polymorphism, and preserves principal types modulo Boolean equivalence. We show how to support full Hindley-Milner style type inference with an extension of Algorithm W.<\/jats:p>\n          <jats:p>We conduct a preliminary study of open source projects showing that there is a need for relational nullable type systems across a wide range of programming languages. The most important findings from the study are: (i) programmers use programming patterns where the nullability of one expression depends on the nullability of other related expressions, (ii) such invariants are commonly enforced with run-time exceptions, and (iii) reasoning about these programming patterns requires not only knowledge of when an expression may evaluate to null, but also when it may evaluate to a non-null value. We incorporate these observations in the design of the proposed relational nullable type system.<\/jats:p>","DOI":"10.1145\/3485487","type":"journal-article","created":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T19:18:28Z","timestamp":1634325508000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Relational nullable types with Boolean unification"],"prefix":"10.1145","volume":"5","author":[{"given":"Magnus","family":"Madsen","sequence":"first","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jaco","family":"van de Pol","sequence":"additional","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,10,15]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3022671.2984004"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0020-0190(98)00106-9"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338919"},{"key":"e_1_2_2_4_1","unstructured":"George Boole. 1847. The mathematical analysis of logic.  George Boole. 1847. The mathematical analysis of logic."},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3474085.3475515"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3033019.3033032"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0747-7171(87)80065-2"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/2394758.2394776"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/507669.507659"},{"key":"e_1_2_2_10_1","volume-title":"Type Assignment in Programming Languages. Ph. D. Dissertation","author":"Damas Luis"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/949343.949332"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297105.1297052"},{"key":"e_1_2_2_13_1","article-title":"The Principal Type-scheme of an Object in Combinatory Logic","author":"Hindley Roger","year":"1969","journal-title":"Transactions of the American Mathematical Society (AMS)."},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-68863-1_9"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/207528"},{"key":"e_1_2_2_16_1","unstructured":"Leopold L\u00f6wenheim. 1908. \u00dcber das Aufl\u00f6sungsproblem im logischen Klassenkalkul.  Leopold L\u00f6wenheim. 1908. \u00dcber das Aufl\u00f6sungsproblem im logischen Klassenkalkul."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213847"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428193"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428222"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2980983.2908096"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/1788374.1788395"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/357162.357169"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0747-7171(89)80013-6"},{"key":"e_1_2_2_24_1","doi-asserted-by":"crossref","unstructured":"Robin Milner. 1978. A Theory of Type Polymorphism in Programming. J. Comput. System Sci..  Robin Milner. 1978. A Theory of Type Polymorphism in Programming. J. Comput. System Sci..","DOI":"10.1016\/0022-0000(78)90014-4"},{"key":"e_1_2_2_25_1","volume-title":"Proc. European Conference on Object-Oriented Programming (ECOOP","author":"Nieto Abel","year":"2020"},{"key":"e_1_2_2_26_1","volume-title":"Proc. European Conference on Object-Oriented Programming (ECOOP","author":"Nieto Abel","year":"2020"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345100"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1594834.1480890"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375602"},{"key":"e_1_2_2_30_1","unstructured":"Sergiu Rudeanu. 1974. Boolean Functions and Equations.  Sergiu Rudeanu. 1974. Boolean Functions and Equations."},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/SEFM.2008.8"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2076021.2048142"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1932681.1863561"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692915.2628161"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3474085.3475283"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485487","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485487","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:40Z","timestamp":1750191520000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485487"}},"issued":{"date-parts":[[2021,10,15]]},"references-count":37,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2021,10,20]]}},"alternative-id":["10.1145\/3485487"],"URL":"https:\/\/doi.org\/10.1145\/3485487","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2021,10,15]]},"assertion":[{"value":"2021-10-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:08:41Z","timestamp":1784196521623,"version":"3.55.0"},"reference-count":42,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,10,9]]},"abstract":"<jats:p>Exception handlers\u2014and effect handlers more generally\u2014are language mechanisms for structured nonlocal control flow. A recent trend in language-design research has introduced lexically scoped handlers, which address a modularity problem with dynamic scoping. While dynamically scoped handlers allow zero-overhead implementations when no effects are raised, existing implementations of lexically scoped handlers require programs to pay a cost just for having handlers in the lexical context.<\/jats:p>\n                  <jats:p>In this paper, we present a novel approach to implementing lexically scoped handlers of exceptional effects. It satisfies the zero-overhead principle\u2014a property otherwise met by most modern compilers supporting dynamically scoped exception handlers. The key idea is a type-directed translation that emits information indicating how handlers come into the lexical context. This information guides the runtime in walking the stack to locate the right handler. Crucially, no reified lexical identifiers of handlers are needed, and mainline code is not slowed down by the presence of handlers in the program text.<\/jats:p>\n                  <jats:p>We formalize the essential aspects of this compilation scheme and prove it correct. We integrate our approach into the Lexa language, allowing the compilation strategy to be customized for each declared effect based on its expected invocation rate. Empirical results suggest that the new Lexa compiler reduces run-time overhead in low-effect or no-effect scenarios while preserving competitive performance for effect-heavy workloads.<\/jats:p>","DOI":"10.1145\/3763177","type":"journal-article","created":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T08:49:50Z","timestamp":1759999790000},"page":"3533-3559","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Zero-Overhead Lexical Effect Handlers"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0005-0842-4697","authenticated-orcid":false,"given":"Cong","family":"Ma","sequence":"first","affiliation":[{"name":"University of Waterloo, Waterloo, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-0100-0201","authenticated-orcid":false,"given":"Zhaoyi","family":"Ge","sequence":"additional","affiliation":[{"name":"University of Waterloo, Waterloo, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-4627-5403","authenticated-orcid":false,"given":"Max","family":"Jung","sequence":"additional","affiliation":[{"name":"University of Waterloo, Waterloo, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8206-4694","authenticated-orcid":false,"given":"Yizhou","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of Waterloo, Waterloo, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,10,9]]},"reference":[{"key":"e_1_3_2_2_1","doi-asserted-by":"publisher","unstructured":"Russell R. Atkinson Barbara H. Liskov and Robert W. Scheifler. 1978. Aspects of implementing CLU. In Proceedings of the 1978 Annual Conference (ACM \u201978). https:\/\/doi.org\/10.1145\/800127.804079 10.1145\/800127.804079","DOI":"10.1145\/800127.804079"},{"key":"e_1_3_2_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2014.02.001"},{"key":"e_1_3_2_4_1","unstructured":"Bench [n.d.]. Effect handlers benchmarks suite. https:\/\/github.com\/effect-handlers\/effect-handlers-bench Accessed: 2025-03-01."},{"key":"e_1_3_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371116"},{"key":"e_1_3_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428194"},{"key":"e_1_3_2_7_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000027"},{"key":"e_1_3_2_8_1","doi-asserted-by":"publisher","unstructured":"Karl Crary David Walker and Greg Morrisett. 1999. Typed memory management in a calculus of capabilities. In ACM SIGPLAN Symp. on Principles of Programming Languages (POPL). https:\/\/doi.org\/10.1145\/292540.292564 10.1145\/292540.292564","DOI":"10.1145\/292540.292564"},{"key":"e_1_3_2_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/1385-7258(72)90034-0"},{"key":"e_1_3_2_10_1","unstructured":"Effekt [n.d.]. Effekt: A language with lexical effect handlers and lightweight effect polymorphism. https:\/\/effekt-lang.org Accessed: 2025-07-01."},{"key":"e_1_3_2_11_1","unstructured":"Effekt Evolution [n.d.]. A brief history of Effekt for fellow researchers. https:\/\/effekt-lang.org\/evolution Accessed: 2025-07-01."},{"key":"e_1_3_2_12_1","unstructured":"Cormac Flanagan Amr Sabry Bruce F. Duba and Matthias Felleisen. 1993. The essence of compiling with continuations. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https:\/\/doi.org\/10-l145\/155090.155113 10-l145\/155090.155113"},{"key":"e_1_3_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/361227.361230"},{"key":"e_1_3_2_14_1","doi-asserted-by":"publisher","unstructured":"Dan Grossman Greg Morrisett Trevor Jim Michael Hicks Yanling Wang and James Cheney. 2002. Region-based memory management in Cyclone. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https: \/\/doi.org\/10.1145\/512529.512563 10.1145\/512529.512563","DOI":"10.1145\/512529.512563"},{"key":"e_1_3_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500590"},{"key":"e_1_3_2_16_1","unstructured":"Koka [n.d.]. Koka: A functional language with effect types and handlers. https:\/\/koka-lang.github.io Accessed: 2025-07-01."},{"key":"e_1_3_2_17_1","doi-asserted-by":"publisher","unstructured":"Daan Leijen. 2017. Type directed compilation of row-typed algebraic effects. In ACM SIGPLAN Symp. on Principles of Programming Languages (POPL). https:\/\/doi.org\/10.1145\/3093333.3009872 10.1145\/3093333.3009872","DOI":"10.1145\/3093333.3009872"},{"key":"e_1_3_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/S10817-009-9155-4"},{"key":"e_1_3_2_19_1","unstructured":"Lexa [n.d.]. The Lexa Programming Language. https:\/\/github.com\/lexa-lang\/lexa"},{"key":"e_1_3_2_20_1","doi-asserted-by":"publisher","unstructured":"Sam Lindley Conor McBride and Craig McLaughlin. 2017. Do be do be do. In ACM SIGPLAN Symp. on Principles of Programming Languages (POPL). https:\/\/doi.org\/10.1145\/3009837.3009897 10.1145\/3009837.3009897","DOI":"10.1145\/3009837.3009897"},{"key":"e_1_3_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/359763.359789"},{"key":"e_1_3_2_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1979.230191"},{"key":"e_1_3_2_23_1","doi-asserted-by":"publisher","unstructured":"Cong Ma Zhaoyi Ge Max Jung and Yizhou Zhang. 2025a. Zero-Overhead Lexical Effect Handlers (artifact). https:\/\/doi.org\/10.5281\/zenodo.16928355 10.5281\/zenodo.16928355","DOI":"10.5281\/zenodo.16928355"},{"key":"e_1_3_2_24_1","volume-title":"Zero-Overhead Lexical Effect Handlers (Extended Version)","author":"Ma Cong","year":"2025","unstructured":"Cong Ma, Zhaoyi Ge, Max Jung, and Yizhou Zhang. 2025b. Zero-Overhead Lexical Effect Handlers (Extended Version). Technical Report CS-2025-04. School of Computer Science, University of Waterloo."},{"key":"e_1_3_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3689770"},{"key":"e_1_3_2_26_1","doi-asserted-by":"publisher","unstructured":"M. Donald MacLaren. 1977. Exception handling in PL\/I. In ACM Conf on Language Design for Reliable Software. https:\/\/doi.org\/10.1145\/800022.808316 10.1145\/800022.808316","DOI":"10.1145\/800022.808316"},{"key":"e_1_3_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622831"},{"key":"e_1_3_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622814"},{"key":"e_1_3_2_29_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1023064908962"},{"key":"e_1_3_2_30_1","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-9(4:23)2013"},{"key":"e_1_3_2_31_1","doi-asserted-by":"publisher","unstructured":"Philipp Schuster Jonathan Immanuel Brachth\u00e4user Marius M\u00fcller and Klaus Ostermann. 2022. A typed continuation-passing translation for lexical effect handlers. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https:\/\/doi.org\/10.1145\/3519939.3523710 10.1145\/3519939.3523710","DOI":"10.1145\/3519939.3523710"},{"key":"e_1_3_2_32_1","unstructured":"Mark Shannon. 2021. \u201cZero cost\u201d exception handling. https:\/\/bugs.python.org\/issue40222"},{"key":"e_1_3_2_33_1","doi-asserted-by":"publisher","unstructured":"KC Sivaramakrishnan Stephen Dolan Leo White Tom Kelly Sadiq Jaffer and Anil Madhavapeddy. 2021. Retrofitting effect handlers onto OCaml. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https:\/\/doi.org\/10.1145\/3453483.3454039 10.1145\/3453483.3454039","DOI":"10.1145\/3453483.3454039"},{"key":"e_1_3_2_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/193198"},{"key":"e_1_3_2_35_1","doi-asserted-by":"publisher","unstructured":"Bjarne Stroustrup. 2012. Foundations of C++. In European Symp. on Programming (ESOP). https:\/\/doi.org\/10.1007\/978-3-642-28869-2_1 10.1007\/978-3-642-28869-2_1","DOI":"10.1007\/978-3-642-28869-2_1"},{"key":"e_1_3_2_36_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_3_2_37_1","doi-asserted-by":"publisher","unstructured":"Philip Wadler. 1989. Theorems for free!. In Int\u2019l Conf. on Functional Programming Languages and Computer Architecture (PPCA). https:\/\/doi.org\/10.1145\/99370.99404 10.1145\/99370.99404","DOI":"10.1145\/99370.99404"},{"key":"e_1_3_2_38_1","unstructured":"Luke Wagner. 2017. Should producers\/consumers assume throwing is \u201crare\u201d and if so can the spec note this? https:\/\/github.com\/WebAssembly\/exception-handling\/issues\/19"},{"key":"e_1_3_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3563289"},{"key":"e_1_3_2_40_1","doi-asserted-by":"publisher","unstructured":"Yizhou Zhang Matthew C. Loring Guido Salvaneschi Barbara Liskov and Andrew C. Myers. 2015. Lightweight flexible object-oriented generics. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https:\/\/doi.org\/10.1145\/2737924.2738008 10.1145\/2737924.2738008","DOI":"10.1145\/2737924.2738008"},{"key":"e_1_3_2_41_1","doi-asserted-by":"publisher","unstructured":"Yizhou Zhang and Andrew C. Myers. 2019. Abstraction-safe effect handlers via tunneling. Proc. of the ACM on Programming Languages (PACMPL)3 POPL (Jan. 2019). https:\/\/doi.org\/10.1145\/3290318 10.1145\/3290318","DOI":"10.1145\/3290318"},{"key":"e_1_3_2_42_1","doi-asserted-by":"publisher","unstructured":"Yizhou Zhang Guido Salvaneschi Quinn Beightol Barbara Liskov and Andrew C. Myers. 2016. Accepting blame for safe tunneled exceptions. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). https:\/\/doi.org\/10.1145\/2908080.2908086 10.1145\/2908080.2908086","DOI":"10.1145\/2908080.2908086"},{"key":"e_1_3_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428207"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3763177","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T09:59:58Z","timestamp":1784195998000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3763177"}},"issued":{"date-parts":[[2025,10,9]]},"references-count":42,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2025,10,9]]}},"alternative-id":["10.1145\/3763177"],"URL":"https:\/\/doi.org\/10.1145\/3763177","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2025,10,9]]},"assertion":[{"value":"2025-03-26","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-08-12","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-10-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:23:24Z","timestamp":1750220604290,"version":"3.41.0"},"reference-count":53,"publisher":"Association for Computing Machinery (ACM)","issue":"HOPL","license":[{"start":{"date-parts":[[2020,6,12]],"date-time":"2020-06-12T00:00:00Z","timestamp":1591920000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,6,14]]},"abstract":"<jats:p>The coarray programming model is an expression of the Single-Program-Multiple-Data (SPMD) programming model through the simple device of adding a codimension to the Fortran language. A data object declared with a codimension is a coarray object. Codimensions express the idea that some objects are located in local memory while others are located in remote memory. Coarray syntax obeys most of the same rules for normal array syntax. It is familiar to the Fortran programmer so the use of coarray syntax is natural and intuitive. Although the basic idea is quite simple, inserting it into the language definition turned out to be difficult.<\/jats:p>\n          <jats:p>In addition, the process was complicated by rapidly changing hardware and heated arguments over whether parallelism should be supported best as an interface to language-independent libraries, as a set of directives superimposed on languages, or as a set of specific extensions to existing languages.<\/jats:p>\n          <jats:p>In this paper, we review both the early history of coarrays and also their development into a part of Fortran 2008 and eventually into a larger part of Fortran 2018. Coarrays have been used, for example, in weather forecasting and in neural networks and deep learning.<\/jats:p>","DOI":"10.1145\/3386322","type":"journal-article","created":{"date-parts":[[2020,6,12]],"date-time":"2020-06-12T16:22:59Z","timestamp":1591978979000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["History of coarrays and SPMD parallelism in Fortran"],"prefix":"10.1145","volume":"4","author":[{"given":"John","family":"Reid","sequence":"first","affiliation":[{"name":"JKR Associates and Rutherford Appleton Laboratory, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bill","family":"Long","sequence":"additional","affiliation":[{"name":"HPE, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jon","family":"Steidel","sequence":"additional","affiliation":[{"name":"Intel, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,6,12]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"American Standards Association. 1966. American Standard FORTRAN X3.9-1966.  American Standards Association. 1966. American Standard FORTRAN X3.9-1966."},{"key":"e_1_2_1_2_1","volume-title":"CUG 2008 Proceedings","author":"Ashby John V","year":"2008","unstructured":"John V Ashby and John K Reid . 2008 . Migrating a Scientific Application from MPI to Coarrays . CUG 2008 Proceedings (2008), 1\u20138. John V Ashby and John K Reid. 2008. Migrating a Scientific Application from MPI to Coarrays. CUG 2008 Proceedings (2008), 1\u20138."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/800025.1198345"},{"key":"e_1_2_1_5_1","volume-title":"Introduction to UPC and language specification. CCS-TR-99-157 (May","author":"Carlson William W.","year":"1999","unstructured":"William W. Carlson , Jesse M. Draper , David E. Culler , Kathy Yelick , Eugene Brooks , and Karen Warren . 1999. Introduction to UPC and language specification. CCS-TR-99-157 (May 1999 ). Available at https:\/\/www.researchgate.net\/ . William W. Carlson, Jesse M. Draper, David E. Culler, Kathy Yelick, Eugene Brooks, and Karen Warren. 1999. Introduction to UPC and language specification. CCS-TR-99-157 (May 1999). Available at https:\/\/www.researchgate.net\/ ."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1408643.1408646"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3323057.3323059"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1330585.1330586"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2002.1016489"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676870.2676876"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2018.12.002"},{"key":"e_1_2_1_12_1","volume-title":"Shared Memory Access (SHMEM) Routines. CUG 1995 Proceedings","author":"Feind Karl","year":"1995","unstructured":"Karl Feind . 1995 . Shared Memory Access (SHMEM) Routines. CUG 1995 Proceedings (1995), 303\u2013308. Karl Feind. 1995. Shared Memory Access (SHMEM) Routines. CUG 1995 Proceedings (1995), 303\u2013308."},{"key":"e_1_2_1_13_1","unstructured":"Fujitsu. 2017. Advanced Software for the FUJITSU Supercomputer PRIMEHPC FX100. https:\/\/web.archive.org\/web\/2017*\/ http:\/\/www.fujitsu.com\/global\/Images\/primehpc-fx100-soft-en.pdf Also at NA http:\/\/www.fujitsu.com\/global\/Images\/ primehpc-fx100-soft-en.pdf .  Fujitsu. 2017. Advanced Software for the FUJITSU Supercomputer PRIMEHPC FX100. https:\/\/web.archive.org\/web\/2017*\/ http:\/\/www.fujitsu.com\/global\/Images\/primehpc-fx100-soft-en.pdf Also at NA http:\/\/www.fujitsu.com\/global\/Images\/ primehpc-fx100-soft-en.pdf ."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2015.05.020"},{"key":"e_1_2_1_15_1","unstructured":"GNU. 2020. Fortran 2008 Features supported by GNU Fortran. https:\/\/web.archive.org\/web\/20191221152824\/http:\/\/ fortranwiki.org\/fortran\/show\/Fortran+2008+status Also at NA http:\/\/fortranwiki.org\/fortran\/show\/Fortran+2008+status .  GNU. 2020. Fortran 2008 Features supported by GNU Fortran. https:\/\/web.archive.org\/web\/20191221152824\/http:\/\/ fortranwiki.org\/fortran\/show\/Fortran+2008+status Also at NA http:\/\/fortranwiki.org\/fortran\/show\/Fortran+2008+status ."},{"key":"e_1_2_1_16_1","doi-asserted-by":"crossref","unstructured":"High Performance Fortran Forum. 1993. High Performance Fortran Language Specification Version 1.0.  High Performance Fortran Forum. 1993. High Performance Fortran Language Specification Version 1.0.","DOI":"10.1145\/174223.158909"},{"volume-title":"IEEE Standard 754\u20131985 for binary floating-point arithmetic","author":"IEEE.","key":"e_1_2_1_17_1","unstructured":"IEEE. 1985. IEEE Standard 754\u20131985 for binary floating-point arithmetic . Institute of Electrical and Electronics Engineers , New York . IEEE. 1985. IEEE Standard 754\u20131985 for binary floating-point arithmetic. Institute of Electrical and Electronics Engineers, New York."},{"key":"e_1_2_1_18_1","unstructured":"INCITS PL22.3. 2020. Website. https:\/\/j3-fortran.org  INCITS PL22.3. 2020. Website. https:\/\/j3-fortran.org"},{"key":"e_1_2_1_19_1","unstructured":"International Business Machines Corporation. 1954. Specifications for The IBM Mathematical FORmula TRANSlating System FORTRAN. Available at https:\/\/www.computerhistory.org\/collections\/catalog\/102679231 .  International Business Machines Corporation. 1954. Specifications for The IBM Mathematical FORmula TRANSlating System FORTRAN. Available at https:\/\/www.computerhistory.org\/collections\/catalog\/102679231 ."},{"key":"e_1_2_1_20_1","unstructured":"ISO. 1978. American Standard programming language FORTRAN ANSI X3.9-1978.  ISO. 1978. American Standard programming language FORTRAN ANSI X3.9-1978."},{"key":"e_1_2_1_21_1","unstructured":"ISO. 1991. Information technology \u2013 Programming languages \u2013 FORTRAN ISO\/IEC 1539:1991.  ISO. 1991. Information technology \u2013 Programming languages \u2013 FORTRAN ISO\/IEC 1539:1991."},{"volume-title":"International Standard ISO\/IEC 1539-1:2004 Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC","author":"IEC.","key":"e_1_2_1_22_1","unstructured":"ISO\/ IEC. 2004. International Standard ISO\/IEC 1539-1:2004 Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC , Geneva . ISO\/IEC. 2004. International Standard ISO\/IEC 1539-1:2004 Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC, Geneva."},{"volume-title":"International Standard ISO\/IEC 1539-1:2010(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC","author":"IEC.","key":"e_1_2_1_23_1","unstructured":"ISO\/ IEC. 2010. International Standard ISO\/IEC 1539-1:2010(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC , Geneva . ISO\/IEC. 2010. International Standard ISO\/IEC 1539-1:2010(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC, Geneva."},{"volume-title":"International Standard ISO\/IEC 1539-1:2018(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC","author":"IEC.","key":"e_1_2_1_24_1","unstructured":"ISO\/ IEC. 2018. International Standard ISO\/IEC 1539-1:2018(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC , Geneva . ISO\/IEC. 2018. International Standard ISO\/IEC 1539-1:2018(E) Information technology - Programming languages - Fortran -Part 1: Base language. ISO\/IEC, Geneva."},{"key":"e_1_2_1_25_1","unstructured":"ISO\/IEC JTC1\/SC22\/WG5. 2020. Website. https:\/\/wg5-fortran.org\/documents.html  ISO\/IEC JTC1\/SC22\/WG5. 2020. Website. https:\/\/wg5-fortran.org\/documents.html"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the 7th International Conference on PGAS Programming Models (PGAS \u201913)","author":"Johnson Troy A","year":"2013","unstructured":"Troy A Johnson . 2013 . Coarray C++ . In Proceedings of the 7th International Conference on PGAS Programming Models (PGAS \u201913) . The University of Edinburgh, Edinburgh, UK, 54\u201366. Troy A Johnson. 2013. Coarray C++. In Proceedings of the 7th International Conference on PGAS Programming Models (PGAS \u201913). The University of Edinburgh, Edinburgh, UK, 54\u201366."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1238844.1238851"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1809961.1809969"},{"key":"e_1_2_1_29_1","volume-title":"MPI: A Message-Passing Interface Standard Version 3.1","author":"Interface Forum Message Passing","year":"2015","unstructured":"Message Passing Interface Forum . 2015 . MPI: A Message-Passing Interface Standard Version 3.1 . University of Tennessee , Knoxville, Tennessee . Available at https:\/\/www.mpi-forum.org\/docs\/ . Message Passing Interface Forum. 2015. MPI: A Message-Passing Interface Standard Version 3.1. University of Tennessee, Knoxville, Tennessee. Available at https:\/\/www.mpi-forum.org\/docs\/ ."},{"volume-title":"Fortran 95\/2003 Explained","author":"Metcalf Michael","key":"e_1_2_1_30_1","unstructured":"Michael Metcalf , John Reid , and Malcolm Cohen . 2004. Fortran 95\/2003 Explained . Oxford University Press . Michael Metcalf, John Reid, and Malcolm Cohen. 2004. Fortran 95\/2003 Explained. Oxford University Press."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1093\/oso\/9780198811893.001.0001"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.Companion.2012.90"},{"key":"e_1_2_1_33_1","unstructured":"NAG. 2020. NAG Fortran Compiler. https:\/\/web.archive.org\/web\/20191224113758\/www.nag.co.uk\/nag-compiler Also at NA https:\/\/www.nag.co.uk\/nag-compiler .  NAG. 2020. NAG Fortran Compiler. https:\/\/web.archive.org\/web\/20191224113758\/www.nag.co.uk\/nag-compiler Also at NA https:\/\/www.nag.co.uk\/nag-compiler ."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1155\/1997\/503896"},{"volume-title":"Parallel Programming with Co-arrays","author":"Numrich Robert W.","key":"e_1_2_1_35_1","unstructured":"Robert W. Numrich . 2018. Parallel Programming with Co-arrays . CRC Press . Robert W. Numrich. 2018. Parallel Programming with Co-arrays. CRC Press."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/289918.289920"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1080399.1080400"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0095362"},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"R. W. Numrich P. L. Springer and J. C. Peterson. 1994. Measurement of communication rates on the cray T3D interprocessor network. In High-Performance Computing and Networking. HPCN-Europe 1994. Gentzsch W. and Harms U. (Eds.). Lecture Notes in Computer Science vol 797. Springer Berlin Heidelberg 150\u2013157.  R. W. Numrich P. L. Springer and J. C. Peterson. 1994. Measurement of communication rates on the cray T3D interprocessor network. In High-Performance Computing and Networking. HPCN-Europe 1994. Gentzsch W. and Harms U. (Eds.). Lecture Notes in Computer Science vol 797. Springer Berlin Heidelberg 150\u2013157.","DOI":"10.1007\/3-540-57981-8_108"},{"key":"e_1_2_1_40_1","first-page":"6","article-title":"F \u2212\u2212 : A Simple Parallel Extension to Fortran 90","volume":"30","author":"Numrich Robert W.","year":"1997","unstructured":"Robert W. Numrich and Jon L. Steidel . 1997 a. F \u2212\u2212 : A Simple Parallel Extension to Fortran 90 . SIAM News 30 (1997), 1, 6 \u2013 7 . Robert W. Numrich and Jon L. Steidel. 1997a. F \u2212\u2212 : A Simple Parallel Extension to Fortran 90. SIAM News 30 (1997), 1, 6\u20137.","journal-title":"SIAM News"},{"key":"e_1_2_1_41_1","volume-title":"Proceedings of the Eighth SIAM Conference on Parallel Processing for Scientific Computing, PPSC 1997","author":"Robert","year":"1997","unstructured":"Robert W. Numrich and Jon L. Steidel. 1997b. Simple Parallel Extensions to Fortran 90 . In Proceedings of the Eighth SIAM Conference on Parallel Processing for Scientific Computing, PPSC 1997 , Hyatt Regency Minneapolis on Nicollel Mall Hotel, Minneapolis, Minnesota, USA , March 14-17, 1997 . Robert W. Numrich and Jon L. Steidel. 1997b. Simple Parallel Extensions to Fortran 90. In Proceedings of the Eighth SIAM Conference on Parallel Processing for Scientific Computing, PPSC 1997, Hyatt Regency Minneapolis on Nicollel Mall Hotel, Minneapolis, Minnesota, USA, March 14-17, 1997."},{"key":"e_1_2_1_42_1","unstructured":"OpenMP. 2020. Compilers and Tools . https:\/\/www.openmp.org\/resources\/openmp-compilers-tools\/  OpenMP. 2020. Compilers and Tools . https:\/\/www.openmp.org\/resources\/openmp-compilers-tools\/"},{"key":"e_1_2_1_43_1","unstructured":"OpenMP Architecture Review Board. 1997. OpenMP Fortran Application Programming Interface 1.0. Available at https: \/\/www.openmp.org\/wp-content\/uploads\/fspec10.pdf .  OpenMP Architecture Review Board. 1997. OpenMP Fortran Application Programming Interface 1.0. Available at https: \/\/www.openmp.org\/wp-content\/uploads\/fspec10.pdf ."},{"key":"e_1_2_1_44_1","unstructured":"OpenMP Architecture Review Board. 2018. OpenMP Application Programming Interface. Available at https:\/\/www.openmp. org\/wp-content\/uploads\/OpenMP-API-Specification-5.0.pdf .  OpenMP Architecture Review Board. 2018. OpenMP Application Programming Interface. Available at https:\/\/www.openmp. org\/wp-content\/uploads\/OpenMP-API-Specification-5.0.pdf ."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/122391.122392"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1155\/1994\/572396"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-27866-5_83"},{"key":"e_1_2_1_48_1","volume-title":"Proceedings of PAW-ATM 18: Parallel Applications Workshop, Alternatives to MPI (PAW 18)","author":"Rasmussen Soren","year":"2018","unstructured":"Soren Rasmussen , Ethan D Gutmann , Brian Friesen , Damian Rouson , Salvatore Filippone , and Irene Moulitsas . 2018 . Development and performance comparison of MPI and Fortran Coarrays within an atmospheric research model . In Proceedings of PAW-ATM 18: Parallel Applications Workshop, Alternatives to MPI (PAW 18) . Soren Rasmussen, Ethan D Gutmann, Brian Friesen, Damian Rouson, Salvatore Filippone, and Irene Moulitsas. 2018. Development and performance comparison of MPI and Fortran Coarrays within an atmospheric research model. In Proceedings of PAW-ATM 18: Parallel Applications Workshop, Alternatives to MPI (PAW 18)."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/800025.1198367"},{"volume-title":"Proceedings of the Sixth ECMWF Workshop on the Use of Parallel Processors in Meteorology. 523\u2013550","author":"Sawdey Aaron","key":"e_1_2_1_50_1","unstructured":"Aaron Sawdey , Matthew O\u2019Keefe , Rainer Bleck , and Robert W. Numrich . 1994. The Design, Implementation, and Performance of a Parallel Ocean Circulation Model . In Proceedings of the Sixth ECMWF Workshop on the Use of Parallel Processors in Meteorology. 523\u2013550 . Aaron Sawdey, Matthew O\u2019Keefe, Rainer Bleck, and Robert W. Numrich. 1994. The Design, Implementation, and Performance of a Parallel Ocean Circulation Model. In Proceedings of the Sixth ECMWF Workshop on the Use of Parallel Processors in Meteorology. 523\u2013550."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.advengsoft.2018.05.008"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330020404"},{"key":"e_1_2_1_53_1","first-page":"52","article-title":"Software of the Earth Simulator","volume":"3","author":"Uno Atsuya","year":"2005","unstructured":"Atsuya Uno . 2005 . Software of the Earth Simulator . Journal of the Earth Simulator 3 (2005), 52 \u2013 59 . Atsuya Uno. 2005. Software of the Earth Simulator. Journal of the Earth Simulator 3 (2005), 52\u201359.","journal-title":"Journal of the Earth Simulator"},{"key":"e_1_2_1_54_1","unstructured":"Andrew Vaught. 2012. G95 Website. https:\/\/web.archive.org\/web\/20191210041340\/http:\/\/www.g95.org\/ Also at NA http:\/\/www.g95.org .  Andrew Vaught. 2012. G95 Website. https:\/\/web.archive.org\/web\/20191210041340\/http:\/\/www.g95.org\/ Also at NA http:\/\/www.g95.org ."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3386322","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3386322","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:32:03Z","timestamp":1750195923000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3386322"}},"issued":{"date-parts":[[2020,6,12]]},"references-count":53,"journal-issue":{"issue":"HOPL","published-print":{"date-parts":[[2020,6,14]]}},"alternative-id":["10.1145\/3386322"],"URL":"https:\/\/doi.org\/10.1145\/3386322","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2020,6,12]]},"assertion":[{"value":"2020-06-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T02:10:05Z","timestamp":1750299005776,"version":"3.41.0"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T00:00:00Z","timestamp":1697414400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["DUE-2215193, CCF-2024253, CNS-1750760"],"award-info":[{"award-number":["DUE-2215193, CCF-2024253, CNS-1750760"]}],"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":[[2023,10,16]]},"abstract":"<jats:p>The memory allocator plays a key role in the performance of applications, but none of the existing profilers can pinpoint performance slowdowns caused by a memory allocator. Consequently, programmers may spend time improving application code incorrectly or unnecessarily, achieving low or no performance improvement. This paper designs the first profiler\u2014MemPerf\u2014to identify allocator-induced performance slowdowns without comparing against another allocator. Based on the key observation that an allocator may impact the whole life-cycle of heap objects, including the accesses (or uses) of these objects, MemPerf proposes a life-cycle based detection to identify slowdowns caused by slow memory management operations and slow accesses separately. For the prior one, MemPerf proposes a thread-aware and type-aware performance modeling to identify slow management operations. For slow memory accesses, MemPerf utilizes a top-down approach to identify all possible reasons for slow memory accesses introduced by the allocator, mainly due to cache and TLB misses, and further proposes a unified method to identify them correctly and efficiently. Based on our extensive evaluation, MemPerf reports 98% medium and large allocator-reduced slowdowns (larger than 5%) correctly without reporting any false positives. MemPerf also pinpoints multiple known and unknown design issues in widely-used allocators.<\/jats:p>","DOI":"10.1145\/3622848","type":"journal-article","created":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T15:41:29Z","timestamp":1697470889000},"page":"1418-1441","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["MemPerf: Profiling Allocator-Induced Performance Slowdowns"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1201-7806","authenticated-orcid":false,"given":"Jin","family":"Zhou","sequence":"first","affiliation":[{"name":"University of Massachusetts at Amherst, Amherst, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9470-6439","authenticated-orcid":false,"given":"Sam","family":"Silvestro","sequence":"additional","affiliation":[{"name":"University of Texas at San Antonio, San Antonio, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1854-6426","authenticated-orcid":false,"given":"Steven (Jiaxun)","family":"Tang","sequence":"additional","affiliation":[{"name":"University of Massachusetts at Amherst, Amherst, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-2817-7839","authenticated-orcid":false,"given":"Hanmei","family":"Yang","sequence":"additional","affiliation":[{"name":"University of Massachusetts at Amherst, Amherst, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-9198-2615","authenticated-orcid":false,"given":"Hongyu","family":"Liu","sequence":"additional","affiliation":[{"name":"University of Texas at San Antonio, San Antonio, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-8694-7020","authenticated-orcid":false,"given":"Guangming","family":"Zeng","sequence":"additional","affiliation":[{"name":"Synopsys, Sunnyvale, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-1696-4272","authenticated-orcid":false,"given":"Bo","family":"Wu","sequence":"additional","affiliation":[{"name":"Colorado School of Mines, Golden, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1190-522X","authenticated-orcid":false,"given":"Cong","family":"Liu","sequence":"additional","affiliation":[{"name":"University of Texas at Dallas, Dallas, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1968-4081","authenticated-orcid":false,"given":"Tongping","family":"Liu","sequence":"additional","affiliation":[{"name":"University of Massachusetts at Amherst, Amherst, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,10,16]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814294"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3064176.3064186"},{"key":"e_1_2_1_3_1","unstructured":"Android Community. 2020. View the Java heap and memory allocations with citep. https:\/\/developer.android.com\/studio\/profile\/memory-profiler \t\t\t\t  Android Community. 2020. View the Java heap and memory allocations with citep. https:\/\/developer.android.com\/studio\/profile\/memory-profiler"},{"key":"e_1_2_1_4_1","unstructured":"The OpenMP ARB. 2022. The OpenMP API Specification For Parallel Programming. https:\/\/www.openmp.org\/ \t\t\t\t  The OpenMP ARB. 2022. The OpenMP API Specification For Parallel Programming. https:\/\/www.openmp.org\/"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.1998.694758"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/378993.379232"},{"key":"e_1_2_1_7_1","unstructured":"Christian Bienia and Kai Li. 2009. PARSEC 2.0: A New Benchmark Suite for Chip-Multiprocessors. http:\/\/www-mount.ece.umn.edu\/ jjyi\/MoBS\/2009\/program\/02E-Bienia.pdf \t\t\t\t  Christian Bienia and Kai Li. 2009. PARSEC 2.0: A New Benchmark Suite for Chip-Multiprocessors. http:\/\/www-mount.ece.umn.edu\/ jjyi\/MoBS\/2009\/program\/02E-Bienia.pdf"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178499"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/GCCE.2014.7031343"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2004.1291361"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806799.1806874"},{"key":"e_1_2_1_12_1","unstructured":"Jon Coppeard. 2017. Allocate all JS data in a separate jemalloc arena. https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1410132 \t\t\t\t  Jon Coppeard. 2017. Allocate all JS data in a separate jemalloc arena. https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1410132"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2815400.2815409"},{"key":"e_1_2_1_14_1","unstructured":"Stephane Eranian Eric Gouriou Tipp Moseley and Willem de Bruijn. 2015. Linux kernel profiling with perf. https:\/\/perf.wiki.kernel.org\/index.php\/Tutorial \t\t\t\t  Stephane Eranian Eric Gouriou Tipp Moseley and Willem de Bruijn. 2015. Linux kernel profiling with perf. https:\/\/perf.wiki.kernel.org\/index.php\/Tutorial"},{"key":"e_1_2_1_15_1","unstructured":"Jason Evans. 2016. Scalable memory allocation using jemalloc. https:\/\/krebsonsecurity.com\/2016\/10\/ddos-on-dyn-impacts-twitter-spotify-reddit\/ \t\t\t\t  Jason Evans. 2016. Scalable memory allocation using jemalloc. https:\/\/krebsonsecurity.com\/2016\/10\/ddos-on-dyn-impacts-twitter-spotify-reddit\/"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/SBESC.2011.29"},{"key":"e_1_2_1_17_1","unstructured":"Free Software Foundation Inc.. 2015. The GNU C Library: Allocation Debugging. http:\/\/www.gnu.org\/software\/libc\/manual\/html_node\/Allocation-Debugging.html \t\t\t\t  Free Software Foundation Inc.. 2015. The GNU C Library: Allocation Debugging. http:\/\/www.gnu.org\/software\/libc\/manual\/html_node\/Allocation-Debugging.html"},{"key":"e_1_2_1_18_1","unstructured":"Sanjay Ghemawat. 2005. Profiling heap usage. http:\/\/goog-perftools.sourceforge.net\/doc\/heap_profiler.html \t\t\t\t  Sanjay Ghemawat. 2005. Profiling heap usage. http:\/\/goog-perftools.sourceforge.net\/doc\/heap_profiler.html"},{"key":"e_1_2_1_19_1","volume-title":"TCMalloc: Thread-caching malloc","author":"Ghemawat Sanjay","year":"2007","unstructured":"Sanjay Ghemawat and Paul Menage . 2007. TCMalloc: Thread-caching malloc , 2007 . http:\/\/goog-perftools.sourceforge.net\/doc\/tcmalloc.html Sanjay Ghemawat and Paul Menage. 2007. TCMalloc: Thread-caching malloc, 2007. http:\/\/goog-perftools.sourceforge.net\/doc\/tcmalloc.html"},{"key":"e_1_2_1_20_1","unstructured":"Mel Gorman. 2015. malloc: Reduce worst-case behaviour with madvise and refault overhead. https:\/\/patchwork.ozlabs.org\/project\/glibc\/patch\/20150209140608.GD2395@suse.de\/ \t\t\t\t  Mel Gorman. 2015. malloc: Reduce worst-case behaviour with madvise and refault overhead. https:\/\/patchwork.ozlabs.org\/project\/glibc\/patch\/20150209140608.GD2395@suse.de\/"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/872726.806987"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314644"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2754169.2754178"},{"key":"e_1_2_1_25_1","first-page":"L","volume":"201","unstructured":"Lawrence Livermore National Laboratory. 201 8. CORA L - 2 Benchmarks. https:\/\/asc.llnl.gov\/coral-2-benchmarks Lawrence Livermore National Laboratory. 2018. CORAL-2 Benchmarks. https:\/\/asc.llnl.gov\/coral-2-benchmarks","journal-title":"Lawrence Livermore National Laboratory."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASSET.2000.888070"},{"key":"e_1_2_1_27_1","unstructured":"Daan Leijen. 2020. mimalloc. https:\/\/github.com\/microsoft\/mimalloc \t\t\t\t  Daan Leijen. 2020. mimalloc. https:\/\/github.com\/microsoft\/mimalloc"},{"key":"e_1_2_1_28_1","volume-title":"Oprofile: A system profiler for linux. https:\/\/oprofile.sourceforge.io\/news\/","author":"Levon John","year":"2004","unstructured":"John Levon and Philippe Elie . 2004 . Oprofile: A system profiler for linux. https:\/\/oprofile.sourceforge.io\/news\/ John Levon and Philippe Elie. 2004. Oprofile: A system profiler for linux. https:\/\/oprofile.sourceforge.io\/news\/"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048070"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854039"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692916.2555244"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503297"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628071.2628102"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628071.2628102"},{"key":"e_1_2_1_35_1","unstructured":"Brandon Lucia. [n. d.]. MultiCacheSim: A coherent multiprocessor cache simulator. https:\/\/courses.cs.washington.edu\/courses\/cse471\/11sp\/sim.html. \t\t\t\t  Brandon Lucia. [n. d.]. MultiCacheSim: A coherent multiprocessor cache simulator. https:\/\/courses.cs.washington.edu\/courses\/cse471\/11sp\/sim.html."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065034"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2016.7446070"},{"key":"e_1_2_1_38_1","unstructured":"Adrian LUPASC and Viorica Popoiu. 2014. Dynamic Memory Allocation\u2013Clr Profiler. 118 pages. \t\t\t\t  Adrian LUPASC and Viorica Popoiu. 2014. Dynamic Memory Allocation\u2013Clr Profiler. 118 pages."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSMC.2011.6084042"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24749-1_12"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755947"},{"key":"e_1_2_1_42_1","unstructured":"The Open MPI Project. 2022. Open MPI: Open Source High Performance Computing. https:\/\/www.open-mpi.org\/ \t\t\t\t  The Open MPI Project. 2022. Open MPI: Open Source High Performance Computing. https:\/\/www.open-mpi.org\/"},{"key":"e_1_2_1_43_1","unstructured":"Kirill Rogozhin. 2014. Controlling memory consumption with Intel\u00ae Threading Building Blocks (Intel\u00ae TBB) scalable allocator. https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/controlling-memory-consumption-with-intel-threading-building-blocks-intel-tbb-scalable.html \t\t\t\t  Kirill Rogozhin. 2014. Controlling memory consumption with Intel\u00ae Threading Building Blocks (Intel\u00ae TBB) scalable allocator. https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/controlling-memory-consumption-with-intel-threading-building-blocks-intel-tbb-scalable.html"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3168819"},{"key":"e_1_2_1_45_1","volume-title":"Proceedings of the 2012 USENIX conference on Annual Technical Conference (USENIX ATC\u201912)","author":"Serebryany Konstantin","year":"2012","unstructured":"Konstantin Serebryany , Derek Bruening , Alexander Potapenko , and Dmitry Vyukov . 2012 . AddressSanitizer: a fast address sanity checker . In Proceedings of the 2012 USENIX conference on Annual Technical Conference (USENIX ATC\u201912) . USENIX Association, Berkeley, CA, USA. 28\u201328. http:\/\/dl.acm.org\/citation.cfm?id=2342821.2342849 Konstantin Serebryany, Derek Bruening, Alexander Potapenko, and Dmitry Vyukov. 2012. AddressSanitizer: a fast address sanity checker. In Proceedings of the 2012 USENIX conference on Annual Technical Conference (USENIX ATC\u201912). USENIX Association, Berkeley, CA, USA. 28\u201328. http:\/\/dl.acm.org\/citation.cfm?id=2342821.2342849"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985848"},{"key":"e_1_2_1_47_1","unstructured":"Oliver Yang. 2015. Pitfalls of TSC usage. http:\/\/oliveryang.net\/2015\/09\/pitfalls-of-TSC-usage\/ \t\t\t\t  Oliver Yang. 2015. Pitfalls of TSC usage. http:\/\/oliveryang.net\/2015\/09\/pitfalls-of-TSC-usage\/"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931070"},{"key":"e_1_2_1_49_1","unstructured":"Matej Zavrtanik and Jurij Mihelic. [n. d.]. Experimental Evaluation and Comparison of Memory Allocators in the GNU\/Linux Operating System. http:\/\/ipsitransactions.org\/journals\/papers\/tar\/2017jan\/p10.pdf \t\t\t\t  Matej Zavrtanik and Jurij Mihelic. [n. d.]. Experimental Evaluation and Comparison of Memory Allocators in the GNU\/Linux Operating System. http:\/\/ipsitransactions.org\/journals\/papers\/tar\/2017jan\/p10.pdf"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1952682.1952688"},{"key":"e_1_2_1_51_1","volume-title":"13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018","author":"Zhou Fang","year":"2018","unstructured":"Fang Zhou , Yifan Gan , Sixiang Ma , and Yang Wang . 2018 . wPerf: Generic Off-CPU Analysis to Identify Bottleneck Waiting Events . In 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018 , Carlsbad, CA, USA , October 8-10, 2018, Andrea C. Arpaci-Dusseau and Geoff Voelker (Eds.). USENIX Association, 527\u2013543. https:\/\/www.usenix.org\/conference\/osdi18\/presentation\/zhou Fang Zhou, Yifan Gan, Sixiang Ma, and Yang Wang. 2018. wPerf: Generic Off-CPU Analysis to Identify Bottleneck Waiting Events. In 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018, Carlsbad, CA, USA, October 8-10, 2018, Andrea C. Arpaci-Dusseau and Geoff Voelker (Eds.). USENIX Association, 527\u2013543. https:\/\/www.usenix.org\/conference\/osdi18\/presentation\/zhou"},{"key":"e_1_2_1_52_1","volume-title":"Hilfinger","author":"Zorn Benjamin","year":"1988","unstructured":"Benjamin Zorn and Paul N . Hilfinger . 1988 . A Memory Allocation Profiler for C and Lisp Programs. EECS Department, University of California , Berkeley. http:\/\/www2.eecs.berkeley.edu\/Pubs\/TechRpts\/1988\/5382.html Benjamin Zorn and Paul N. Hilfinger. 1988. A Memory Allocation Profiler for C and Lisp Programs. EECS Department, University of California, Berkeley. http:\/\/www2.eecs.berkeley.edu\/Pubs\/TechRpts\/1988\/5382.html"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622848","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3622848","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T01:57:27Z","timestamp":1750298247000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622848"}},"issued":{"date-parts":[[2023,10,16]]},"references-count":51,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2023,10,16]]}},"alternative-id":["10.1145\/3622848"],"URL":"https:\/\/doi.org\/10.1145\/3622848","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2023,10,16]]},"assertion":[{"value":"2023-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,7,3]],"date-time":"2026-07-03T04:12:05Z","timestamp":1783051925816,"version":"3.54.6"},"reference-count":31,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100007297","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["N00014-4-1-0525,N00014-17-1-2996"],"award-info":[{"award-number":["N00014-4-1-0525,N00014-17-1-2996"]}],"id":[{"id":"10.13039\/100007297","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":[[2018,10,24]]},"abstract":"<jats:p>\n            We describe a compiler strategy we call \u201c\n            <jats:italic>Software Multiplexing<\/jats:italic>\n            \u201d that achieves many benefits of both statically linked and dynamically linked libraries, and adds some additional advantages. Specifically, it achieves the code size benefits of dynamically linked libraries while eliminating the major disadvantages: unexpected failures due to missing dependences, slow startup times, reduced execution performance due to indirect references to globals, and the potential for security vulnerabilities. We design Software Multiplexing so that it works even in the common case where application build systems support only dynamic and not static linking; we have automatically built thousands of Linux software packages in this way. Software Multiplexing combines two ideas:\n            <jats:italic>Automatic Multicall<\/jats:italic>\n            , i.e., where multiple independent programs are automatically merged into a single executable, and\n            <jats:italic>Static Linking of Shared Libraries<\/jats:italic>\n            , which works by linking an IR-level version of application code and all its libraries, even if the libraries are normally compiled as shared,\n            <jats:italic>before<\/jats:italic>\n            native code generation. The benefits are achieved primarily through deduplication of libraries across the multiplexed programs, while using static linking, and secondly through more effective unused code elimination for statically linked shared libraries. Compared with equivalent dynamically linked programs, &lt;span&gt;allmux-optimized programs start more quickly and even have slightly lower memory usage and total disk size. Compared with equivalent statically linked programs, &lt;span&gt;allmux-optimized programs are\n            <jats:italic>much<\/jats:italic>\n            smaller in both aggregate size and memory usage, and have similar startup times and execution performance. We have implemented Software Multiplexing in a tool called &lt;span&gt;allmux, part of the open-source ALLVM project. Example results show that when the LLVM Compiler Infrastructure is optimized using allmux, the resulting binaries and libraries are 18.3% smaller\n            <jats:italic>and<\/jats:italic>\n            30% faster than the default production version. For 74 other packages containing 2\u2013166 programs each, multiplexing each package into one static binary reduces the aggregate package size by 39% (geometric mean) compared with dynamic linking.\n          <\/jats:p>","DOI":"10.1145\/3276524","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Software multiplexing: share your libraries and statically link them too"],"prefix":"10.1145","volume":"2","author":[{"given":"Will","family":"Dietz","sequence":"first","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Vikram","family":"Adve","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"Vikram Adve Will Dietz etal 2016. ALLVM Project. http:\/\/allvm.org  Vikram Adve Will Dietz et al. 2016. ALLVM Project. http:\/\/allvm.org"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2694344.2694392"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1749608.1749612"},{"key":"e_1_2_2_4_1","unstructured":"Christian S Collberg John H Hartman Sridivya Babu and Sharath K Udupa. 2004. Slinky - Static Linking Reloaded. Retrieved 2018 from http:\/\/slinky.cs.arizona.edu\/  Christian S Collberg John H Hartman Sridivya Babu and Sharath K Udupa. 2004. Slinky - Static Linking Reloaded. Retrieved 2018 from http:\/\/slinky.cs.arizona.edu\/"},{"key":"e_1_2_2_5_1","volume-title":"USENIX Annual Technical Conference, General Track. 309\u2013322","author":"Collberg Christian S","year":"2005","unstructured":"Christian S Collberg , John H Hartman , Sridivya Babu , and Sharath K Udupa . 2005 . SLINKY: Static Linking Reloaded .. In USENIX Annual Technical Conference, General Track. 309\u2013322 . Christian S Collberg, John H Hartman, Sridivya Babu, and Sharath K Udupa. 2005. SLINKY: Static Linking Reloaded.. In USENIX Annual Technical Conference, General Track. 309\u2013322."},{"key":"e_1_2_2_6_1","unstructured":"CryoPID 2006. CryoPID. http:\/\/freecode.com\/projects\/cryopid\/ . Original homepage is no longer available.  CryoPID 2006. CryoPID. http:\/\/freecode.com\/projects\/cryopid\/ . Original homepage is no longer available."},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/859670.859696"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086642.1086645"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/780732.780766"},{"key":"e_1_2_2_10_1","volume-title":"Slipstream: Automatic Interprocess Communication Optimization. In 2015 USENIX Annual Technical Conference (USENIX ATC 15)","author":"Dietz Will","year":"2015","unstructured":"Will Dietz , Joshua Cranmer , Nathan Dautenhahn , and Vikram Adve . 2015 . Slipstream: Automatic Interprocess Communication Optimization. In 2015 USENIX Annual Technical Conference (USENIX ATC 15) . USENIX Association, Santa Clara, CA, 431\u2013443. https:\/\/www.usenix.org\/conference\/atc15\/technical-session\/presentation\/dietz Will Dietz, Joshua Cranmer, Nathan Dautenhahn, and Vikram Adve. 2015. Slipstream: Automatic Interprocess Communication Optimization. In 2015 USENIX Annual Technical Conference (USENIX ATC 15). USENIX Association, Santa Clara, CA, 431\u2013443. https:\/\/www.usenix.org\/conference\/atc15\/technical-session\/presentation\/dietz"},{"key":"e_1_2_2_11_1","volume-title":"How To Write Shared Libraries. Retrieved","author":"Drepper Ulrich","year":"2017","unstructured":"Ulrich Drepper . 2011. How To Write Shared Libraries. Retrieved July 2017 from http:\/\/people.redhat.com\/drepper\/dsohowto. pdf Ulrich Drepper. 2011. How To Write Shared Libraries. Retrieved July 2017 from http:\/\/people.redhat.com\/drepper\/dsohowto. pdf"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2597809.2597811"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2016.2584066"},{"key":"e_1_2_2_14_1","volume-title":"Proceedings of the USENIX 1995 Technical Conference Proceedings (TCON\u201995)","author":"Ho W. Wilson","unstructured":"W. Wilson Ho , Wei-Chau Chang , and Lilian H. Leung . 1995. Optimizing the Performance of Dynamically-linked Programs . In Proceedings of the USENIX 1995 Technical Conference Proceedings (TCON\u201995) . USENIX Association, Berkeley, CA, USA, 19\u201319. http:\/\/dl.acm.org\/citation.cfm?id=1267411.1267430 W. Wilson Ho, Wei-Chau Chang, and Lilian H. Leung. 1995. Optimizing the Performance of Dynamically-linked Programs. In Proceedings of the USENIX 1995 Technical Conference Proceedings (TCON\u201995). USENIX Association, Berkeley, CA, USA, 19\u201319. http:\/\/dl.acm.org\/citation.cfm?id=1267411.1267430"},{"key":"e_1_2_2_15_1","unstructured":"Blanchette Jasmin. 2008. C++ GUI Programming with Qt4 2\/e. Pearson Education India.   Blanchette Jasmin. 2008. C++ GUI Programming with Qt4 2\/e. Pearson Education India."},{"key":"e_1_2_2_16_1","volume-title":"Technical Report. Technical report, Red Hat","author":"Jelinek Jakub","year":"2004","unstructured":"Jakub Jelinek . 2003. Prelink. Technical Report. Technical report, Red Hat , Inc ., 2004 . available at http:\/\/people. redhat. com\/jakub\/prelink. pdf. Jakub Jelinek. 2003. Prelink. Technical Report. Technical report, Red Hat, Inc., 2004. available at http:\/\/people. redhat. com\/jakub\/prelink. pdf."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289927.1289961"},{"key":"e_1_2_2_19_1","volume-title":"Proceedings of the Linux Symposium. 19\u201328","author":"KSM","year":"2009","unstructured":"KSM 2009 . Increasing memory density by using KSM . In Proceedings of the Linux Symposium. 19\u201328 . KSM 2009. Increasing memory density by using KSM. In Proceedings of the Linux Symposium. 19\u201328."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_2_2_21_1","volume-title":"Linkers and Loaders","author":"Levine John R.","unstructured":"John R. Levine . 1999. Linkers and Loaders ( 1 st ed.). Morgan Kaufmann Publishers Inc ., San Francisco, CA, USA. John R. Levine. 1999. Linkers and Loaders (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","edition":"1"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931047"},{"key":"e_1_2_2_23_1","unstructured":"MITRE Corporation. 2017. CVE-2017-7494. https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2017-7494  MITRE Corporation. 2017. CVE-2017-7494. https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2017-7494"},{"key":"e_1_2_2_24_1","volume-title":"Distroless Docker: Containerizing Apps, Not VMs.","author":"Moore Matthew","year":"2017","unstructured":"Matthew Moore . 2017 . Distroless Docker: Containerizing Apps, Not VMs. (2017). https:\/\/swampup2017.sched.com\/event\/ A6CW\/distroless-docker-containerizing-apps-not-vms SwampUP. Matthew Moore. 2017. Distroless Docker: Containerizing Apps, Not VMs. (2017). https:\/\/swampup2017.sched.com\/event\/ A6CW\/distroless-docker-containerizing-apps-not-vms SwampUP."},{"key":"e_1_2_2_25_1","first-page":"1361453","volume-title":"Proceedings of the USENIX","volume":"1","author":"Michael","year":"1993","unstructured":"Michael N. Nelson and Graham Hamilton. 1993. High Performance Dynamic Linking Through Caching . In Proceedings of the USENIX Summer 1993 Technical Conference - Volume 1 (Usenix-stc\u201993). USENIX Association, Berkeley, CA, USA, Article 17, 14 pages. http:\/\/dl.acm.org\/citation.cfm?id= 1361453 .1361470 Michael N. Nelson and Graham Hamilton. 1993. High Performance Dynamic Linking Through Caching. In Proceedings of the USENIX Summer 1993 Technical Conference - Volume 1 (Usenix-stc\u201993). USENIX Association, Berkeley, CA, USA, Article 17, 14 pages. http:\/\/dl.acm.org\/citation.cfm?id=1361453.1361470"},{"key":"e_1_2_2_26_1","volume-title":"Fast and Flexible Shared Libraries. In Proceedings of the","author":"Orr Douglas B.","year":"1993","unstructured":"Douglas B. Orr , Jay Lepreau , J. Bonn , and R. Mecklenburg . 1993 . Fast and Flexible Shared Libraries. In Proceedings of the Summer 1993 USENIX Conference, Cincinnati, OH, USA , June 21-25, 1993. 237\u2013252. Douglas B. Orr, Jay Lepreau, J. Bonn, and R. Mecklenburg. 1993. Fast and Flexible Shared Libraries. In Proceedings of the Summer 1993 USENIX Conference, Cincinnati, OH, USA, June 21-25, 1993. 237\u2013252."},{"key":"e_1_2_2_27_1","unstructured":"PSS 2016. Proportional set size. Retrieved 2018 from https:\/\/en.wikipedia.org\/wiki\/Proportional_set_size  PSS 2016. Proportional set size. Retrieved 2018 from https:\/\/en.wikipedia.org\/wiki\/Proportional_set_size"},{"key":"e_1_2_2_28_1","unstructured":"Valery Reznic. 2016. ELF STATIFIER MAIN PAGE. Retrieved 2018 from http:\/\/statifier.sourceforge.net\/  Valery Reznic. 2016. ELF STATIFIER MAIN PAGE. Retrieved 2018 from http:\/\/statifier.sourceforge.net\/"},{"key":"e_1_2_2_29_1","volume-title":"Ermine: Linux Portable Application Creator","author":"Reznic Valery","year":"2018","unstructured":"Valery Reznic . 2018 . Ermine: Linux Portable Application Creator . http:\/\/www.magicermine.com\/ . Valery Reznic. 2018. Ermine: Linux Portable Application Creator. http:\/\/www.magicermine.com\/ ."},{"key":"e_1_2_2_30_1","volume-title":"Re: Statically linking against a shared library. https:\/\/sourceware.org\/ml\/binutils\/2005-03\/msg00350. html Binutils mailing list.","author":"Schwab Andreas","year":"2005","unstructured":"Andreas Schwab . 2005 . Re: Statically linking against a shared library. https:\/\/sourceware.org\/ml\/binutils\/2005-03\/msg00350. html Binutils mailing list. Andreas Schwab. 2005. Re: Statically linking against a shared library. https:\/\/sourceware.org\/ml\/binutils\/2005-03\/msg00350. html Binutils mailing list."},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/844128.844146"},{"key":"e_1_2_2_32_1","unstructured":"Hyungjo Yoon Changwoo Min and Young Ik Eom. 2014. Dynamic-prelink: An Enhanced Prelinking Mechanism without Modifying Shared Libraries. In Proceedings of the International Conference on Embedded Systems and Applications (ESA). The Steering Committee of The World Congress in Computer Science Computer Engineering and Applied Computing (WorldComp) 1.  Hyungjo Yoon Changwoo Min and Young Ik Eom. 2014. Dynamic-prelink: An Enhanced Prelinking Mechanism without Modifying Shared Libraries. In Proceedings of the International Conference on Embedded Systems and Applications (ESA). The Steering Committee of The World Congress in Computer Science Computer Engineering and Applied Computing (WorldComp) 1."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276524","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276524","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276524","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:03:39Z","timestamp":1750273419000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276524"}},"issued":{"date-parts":[[2018,10,24]]},"references-count":31,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276524"],"URL":"https:\/\/doi.org\/10.1145\/3276524","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T21:01:10Z","timestamp":1751662870063,"version":"3.41.0"},"reference-count":31,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T00:00:00Z","timestamp":1576800000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Oracle Labs Australia","award":["1630"],"award-info":[{"award-number":["1630"]}]},{"DOI":"10.13039\/100000005","name":"US Department of Defense","doi-asserted-by":"crossref","award":["H98230-14-C-0140"],"award-info":[{"award-number":["H98230-14-C-0140"]}],"id":[{"id":"10.13039\/100000005","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":[[2020,1]]},"abstract":"<jats:p>Path dependent types have long served as an expressive component of the Scala programming language. They allow for the modelling of both bounded polymorphism and a degree of nominal subtyping. Nominality in turn provides the ability to capture first class modules. Thus a single language feature gives rise to a rich array of expressiveness. Recent work has proven path dependent types sound in the presence of both intersection and recursive types, but unfortunately typing remains undecidable, posing problems for programmers who rely on the results of type checkers. The Wyvern programming language is an object oriented language with path dependent types, recursive types and first class modules. In this paper we define two variants of Wyvern that feature decidable typing, along with machine checked proofs of decidability. Despite the restrictions, our approaches retain the ability to encode the parameteric polymorphism of Java generics along with many idioms of the Scala module system.<\/jats:p>","DOI":"10.1145\/3371134","type":"journal-article","created":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T19:45:25Z","timestamp":1576871125000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Decidable subtyping for path dependent types"],"prefix":"10.1145","volume":"4","author":[{"given":"Julian","family":"Mackay","sequence":"first","affiliation":[{"name":"Victoria University of Wellington, New Zealand"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alex","family":"Potanin","sequence":"additional","affiliation":[{"name":"Victoria University of Wellington, New Zealand"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jonathan","family":"Aldrich","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lindsay","family":"Groves","sequence":"additional","affiliation":[{"name":"Victoria University of Wellington, New Zealand"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,12,20]]},"reference":[{"key":"e_1_2_2_2_1","volume-title":"Martin Odersky, Tiark Rompf, and Sandro Stucki.","author":"Amin Nada","year":"2016","unstructured":"Nada Amin , Karl Samuel Gr\u00fctter , Martin Odersky, Tiark Rompf, and Sandro Stucki. 2016 . The Essence of Dependent Object Types. A List of Successes That Can Change the World : Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday ( 2016), 249\u2013272. Nada Amin, Karl Samuel Gr\u00fctter, Martin Odersky, Tiark Rompf, and Sandro Stucki. 2016. The Essence of Dependent Object Types. A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday (2016), 249\u2013272."},{"key":"e_1_2_2_3_1","volume-title":"19th International Workshop on Foundations of Object-Oriented Languages.","author":"Amin Nada","year":"2012","unstructured":"Nada Amin , Adriaan Moors , and Martin Odersky . 2012 . Dependent object types . In 19th International Workshop on Foundations of Object-Oriented Languages. Nada Amin, Adriaan Moors, and Martin Odersky. 2012. Dependent object types. In 19th International Workshop on Foundations of Object-Oriented Languages."},{"key":"e_1_2_2_4_1","doi-asserted-by":"crossref","unstructured":"Nada Amin Tiark Rompf and Martin Odersky. 2014. Foundations of Path-dependent Types. In OOPSLA \u201914.  Nada Amin Tiark Rompf and Martin Odersky. 2014. Foundations of Path-dependent Types. In OOPSLA \u201914.","DOI":"10.1145\/2660193.2660216"},{"key":"e_1_2_2_5_1","volume-title":"A Network Protocol Stack in Standard ML. Higher-Order and Symbolic Computation","author":"Biagioni Edoardo","year":"2001","unstructured":"Edoardo Biagioni , Robert Harper , and Peter Lee . 2001. A Network Protocol Stack in Standard ML. Higher-Order and Symbolic Computation ( 2001 ). Edoardo Biagioni, Robert Harper, and Peter Lee. 2001. A Network Protocol Stack in Standard ML. Higher-Order and Symbolic Computation (2001)."},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_2_2_7_1","volume-title":"Pierce","author":"Castagna Giuseppe","year":"1994","unstructured":"Giuseppe Castagna and Benjamin C . Pierce . 1994 . Decidable Bounded Quantification. In POPL \u201994. Giuseppe Castagna and Benjamin C. Pierce. 1994. Decidable Bounded Quantification. In POPL \u201994."},{"key":"e_1_2_2_8_1","unstructured":"William R. Cook. 2009. On Understanding Data Abstraction Revisited. In OOPSLA \u201909.  William R. Cook. 2009. On Understanding Data Abstraction Revisited. In OOPSLA \u201909."},{"key":"e_1_2_2_9_1","volume-title":"Family Polymorphism. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP \u201901)","author":"Ernst Erik","year":"2001","unstructured":"Erik Ernst . 2001 . Family Polymorphism. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP \u201901) . Erik Ernst. 2001. Family Polymorphism. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP \u201901)."},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594308"},{"key":"e_1_2_2_11_1","volume-title":"Java Generics Are Turing Complete. In POPL","author":"Grigore Radu","year":"2017","unstructured":"Radu Grigore . 2017 . Java Generics Are Turing Complete. In POPL 2017. Radu Grigore. 2017. Java Generics Are Turing Complete. In POPL 2017."},{"volume-title":"Practical Foundations for Programming Languages","author":"Harper Robert","key":"e_1_2_2_12_1","unstructured":"Robert Harper . 2012. Practical Foundations for Programming Languages . Cambridge University Press , New York, NY, USA . Robert Harper. 2012. Practical Foundations for Programming Languages. Cambridge University Press, New York, NY, USA."},{"key":"e_1_2_2_13_1","volume-title":"Undecidability of D &lt","author":"Hu Jason","year":"2020","unstructured":"Jason Hu and Ond\u0159ej Lhot\u00e1k . 2020. Undecidability of D &lt ; : and its Decidable Fragments. In POPL 2020 . Jason Hu and Ond\u0159ej Lhot\u00e1k. 2020. Undecidability of D &lt; : and its Decidable Fragments. In POPL 2020."},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.2001.2942"},{"key":"e_1_2_2_15_1","volume-title":"The BETA Programming Language. DAIMI Report Series 16, 229","author":"Kristensen Bent","year":"1987","unstructured":"Bent Kristensen , Ole Madsen , Birger M\u00f8ller-Pedersen , and Kristen Nygaard . 1987. The BETA Programming Language. DAIMI Report Series 16, 229 ( 1987 ). Bent Kristensen, Ole Madsen, Birger M\u00f8ller-Pedersen, and Kristen Nygaard. 1987. The BETA Programming Language. DAIMI Report Series 16, 229 (1987)."},{"key":"e_1_2_2_16_1","volume-title":"Virtual Classes: A Powerful Mechanism in Object-oriented Programming. In OOPSLA \u201989.","author":"Madsen O. L.","year":"1989","unstructured":"O. L. Madsen and B. Moller-Pedersen . 1989 . Virtual Classes: A Powerful Mechanism in Object-oriented Programming. In OOPSLA \u201989. O. L. Madsen and B. Moller-Pedersen. 1989. Virtual Classes: A Powerful Mechanism in Object-oriented Programming. In OOPSLA \u201989."},{"key":"e_1_2_2_17_1","volume-title":"31st European Conference on Object-Oriented Programming (ECOOP","author":"Melicher Darya","year":"2017","unstructured":"Darya Melicher , Yangqingwei Shi , Alex Potanin , and Jonathan Aldrich . 2017 . A Capability-Based Module System for Authority Control . In 31st European Conference on Object-Oriented Programming (ECOOP 2017). Darya Melicher, Yangqingwei Shi, Alex Potanin, and Jonathan Aldrich. 2017. A Capability-Based Module System for Authority Control. In 31st European Conference on Object-Oriented Programming (ECOOP 2017)."},{"volume-title":"Revised Edition","author":"Milner Robin","key":"e_1_2_2_18_1","unstructured":"Robin Milner , Robert Harper , David MacQueen , and Mads Tofte . 1997. The Definition of Standard ML , Revised Edition . MIT Press . Robin Milner, Robert Harper, David MacQueen, and Mads Tofte. 1997. The Definition of Standard ML, Revised Edition. MIT Press."},{"key":"e_1_2_2_19_1","volume-title":"Empowering Union and Intersection Types with Integrated Subtyping. In OOPSLA","author":"Muehlboeck Fabian","year":"2018","unstructured":"Fabian Muehlboeck and Ross Tate . 2018 . Empowering Union and Intersection Types with Integrated Subtyping. In OOPSLA 2018. Fabian Muehlboeck and Ross Tate. 2018. Empowering Union and Intersection Types with Integrated Subtyping. In OOPSLA 2018."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3136000.3136003"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2489828.2489830"},{"key":"e_1_2_2_22_1","unstructured":"Martin Odersky Philippe Altherr Vincent Cremet Burak Emir Stphane Micheloud Nikolay Mihaylov Michel Schinz Erik Stenman and Matthias Zenger. 2004. The Scala language specification.  Martin Odersky Philippe Altherr Vincent Cremet Burak Emir Stphane Micheloud Nikolay Mihaylov Michel Schinz Erik Stenman and Matthias Zenger. 2004. The Scala language specification."},{"key":"e_1_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Martin Odersky and Matthias Zenger. 2005. Scalable Component Abstractions. In OOPSLA \u201905.  Martin Odersky and Matthias Zenger. 2005. Scalable Component Abstractions. In OOPSLA \u201905.","DOI":"10.1145\/1094811.1094815"},{"key":"e_1_2_2_24_1","doi-asserted-by":"crossref","unstructured":"Cyrus Omar Darya Kurilova Ligia Nistor Benjamin Chung Alex Potanin and Jonathan Aldrich. 2014. Safely Composable Type-Specific Languages. In ECOOP \u201914.  Cyrus Omar Darya Kurilova Ligia Nistor Benjamin Chung Alex Potanin and Jonathan Aldrich. 2014. Safely Composable Type-Specific Languages. In ECOOP \u201914.","DOI":"10.1007\/978-3-662-44202-9_5"},{"key":"e_1_2_2_25_1","doi-asserted-by":"crossref","unstructured":"Benjamin C. Pierce. 1992. Bounded Quantification is Undecidable. In POPL \u201992.  Benjamin C. Pierce. 1992. Bounded Quantification is Undecidable. In POPL \u201992.","DOI":"10.1145\/143165.143228"},{"key":"e_1_2_2_26_1","volume-title":"Types and Programming Languages","author":"Pierce Benjamin C.","unstructured":"Benjamin C. Pierce . 2002. Types and Programming Languages ( 1 st ed.). The MIT Press . Benjamin C. Pierce. 2002. Types and Programming Languages (1st ed.). The MIT Press.","edition":"1"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133870"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-06859-7_148"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984008"},{"volume-title":"ECOOP\u201997 \u2014 Object-Oriented Programming, Mehmet Ak\u015fit and Satoshi Matsuoka (Eds.)","author":"Thorup Kresten Krab","key":"e_1_2_2_30_1","unstructured":"Kresten Krab Thorup . 1997. Genericity in java with virtual types . In ECOOP\u201997 \u2014 Object-Oriented Programming, Mehmet Ak\u015fit and Satoshi Matsuoka (Eds.) . Springer Berlin Heidelberg , Berlin, Heidelberg , 444\u2013471. Kresten Krab Thorup. 1997. Genericity in java with virtual types. In ECOOP\u201997 \u2014 Object-Oriented Programming, Mehmet Ak\u015fit and Satoshi Matsuoka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 444\u2013471."},{"key":"e_1_2_2_31_1","volume-title":"5th Workshop on Foundations of Object-Oriented Languages","volume":"544","author":"Torgersen Mads","year":"1998","unstructured":"Mads Torgersen . 1998 . Virtual types are statically safe . In 5th Workshop on Foundations of Object-Oriented Languages , Vol. 544 . Citeseer, 1\u20139. Mads Torgersen. 1998. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages, Vol. 544. Citeseer, 1\u20139."},{"key":"e_1_2_2_32_1","volume-title":"Nominal Wyvern: Employing Semantic Separation for Usability. Master\u2019s thesis","author":"Zhu Yu Xiang","year":"2019","unstructured":"Yu Xiang Zhu . 2019 . Nominal Wyvern: Employing Semantic Separation for Usability. Master\u2019s thesis . Carnegie Mellon University . Yu Xiang Zhu. 2019. Nominal Wyvern: Employing Semantic Separation for Usability. Master\u2019s thesis. Carnegie Mellon University."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371134","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371134","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371134","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:05:43Z","timestamp":1750273543000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371134"}},"issued":{"date-parts":[[2019,12,20]]},"references-count":31,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["10.1145\/3371134"],"URL":"https:\/\/doi.org\/10.1145\/3371134","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2019,12,20]]},"assertion":[{"value":"2019-12-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T06:28:05Z","timestamp":1770272885237,"version":"3.49.0"},"reference-count":36,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2023,1,9]],"date-time":"2023-01-09T00:00:00Z","timestamp":1673222400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,1,9]]},"abstract":"<jats:p>Many proofs of interactive cryptographic protocols (e.g., as in Universal Composability) operate by proving the protocol at hand to be observationally equivalent to an idealized specification. While pervasive, formal tool support for observational equivalence of cryptographic protocols is still a nascent area of research. Current mechanization efforts tend to either focus on diff-equivalence, which establishes observational equivalence between protocols with identical control structures, or require an explicit witness for the observational equivalence in the form of a bisimulation relation. Our goal is to simplify proofs for cryptographic protocols by introducing a core calculus, IPDL, for cryptographic observational equivalences. Via IPDL, we aim to address a number of theoretical issues for cryptographic proofs in a simple manner, including probabilistic behaviors, distributed message-passing, and resource-bounded adversaries and simulators. We demonstrate IPDL on a number of case studies, including a distributed coin toss protocol, Oblivious Transfer, and the GMW multi-party computation protocol. All proofs of case studies are mechanized via an embedding of IPDL into the Coq proof assistant.<\/jats:p>","DOI":"10.1145\/3571223","type":"journal-article","created":{"date-parts":[[2023,1,11]],"date-time":"2023-01-11T21:58:14Z","timestamp":1673474294000},"page":"866-892","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["A Core Calculus for Equational Proofs of Cryptographic Protocols"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2257-7073","authenticated-orcid":false,"given":"Joshua","family":"Gancher","sequence":"first","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4880-1416","authenticated-orcid":false,"given":"Kristina","family":"Sojakova","sequence":"additional","affiliation":[{"name":"Inria, France"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0166-0794","authenticated-orcid":false,"given":"Xiong","family":"Fan","sequence":"additional","affiliation":[{"name":"Rutgers University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5605-1048","authenticated-orcid":false,"given":"Elaine","family":"Shi","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2619-5614","authenticated-orcid":false,"given":"Greg","family":"Morrisett","sequence":"additional","affiliation":[{"name":"Cornell University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,1,11]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00145-001-0014-7"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2382196.2382270"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ic.2007.05.002"},{"key":"e_1_2_1_4_1","volume-title":"SP 2021 - 42nd IEEE Symposium on Security and Privacy. San Fransisco \/ Virtual, United States. https:\/\/hal.archives-ouvertes.fr\/hal-03172119","author":"Baelde David","unstructured":"David Baelde , St\u00e9phanie Delaune , Charlie Jacomme , Adrien Koutsos , and Sol\u00e8ne Moreau . 2021. An Interactive Prover for Protocol Verification in the Computational Model . In SP 2021 - 42nd IEEE Symposium on Security and Privacy. San Fransisco \/ Virtual, United States. https:\/\/hal.archives-ouvertes.fr\/hal-03172119 David Baelde, St\u00e9phanie Delaune, Charlie Jacomme, Adrien Koutsos, and Sol\u00e8ne Moreau. 2021. An Interactive Prover for Protocol Verification in the Computational Model. In SP 2021 - 42nd IEEE Symposium on Security and Privacy. San Fransisco \/ Virtual, United States. https:\/\/hal.archives-ouvertes.fr\/hal-03172119"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660267.2660276"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP40001.2021.00008"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460120.3484548"},{"key":"e_1_2_1_8_1","doi-asserted-by":"crossref","unstructured":"G. Barthe B. Gr\u00e9goire S. Heraud and Santiago Zanella B\u00e9guelin. 2011. Computer-Aided Security Proofs for the Working Cryptographer. In CRYPTO. G. Barthe B. Gr\u00e9goire S. Heraud and Santiago Zanella B\u00e9guelin. 2011. Computer-Aided Security Proofs for the Working Cryptographer. In CRYPTO.","DOI":"10.1007\/978-3-642-22792-9_5"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 1156\u20131168","author":"Barthe Gilles","year":"2015","unstructured":"Gilles Barthe , Benjamin Gr\u00e9goire , and Benedikt Schmidt . 2015 . Automated proofs of pairing-based cryptography . In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 1156\u20131168 . Gilles Barthe, Benjamin Gr\u00e9goire, and Benedikt Schmidt. 2015. Automated proofs of pairing-based cryptography. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 1156\u20131168."},{"key":"e_1_2_1_10_1","volume-title":"Annual International Cryptology Conference. 97\u2013109","author":"Beaver Donald","year":"1995","unstructured":"Donald Beaver . 1995 . Precomputing oblivious transfer . In Annual International Cryptology Conference. 97\u2013109 . Donald Beaver. 1995. Precomputing oblivious transfer. In Annual International Cryptology Conference. 97\u2013109."},{"key":"e_1_2_1_11_1","volume-title":"Pedram Hosseyni, Ralf K\u00fcsters, Guido Schmitz, and Tim W\u00fcrtele.","author":"Bhargavan Karthikeyan","year":"2021","unstructured":"Karthikeyan Bhargavan , Abhishek Bichhawat , Quoc Huy Do , Pedram Hosseyni, Ralf K\u00fcsters, Guido Schmitz, and Tim W\u00fcrtele. 2021 . DY* : A Modular Symbolic Verification Framework for Executable Cryptographic Protocol Code. In EuroS&P 2021 - 6th IEEE European Symposium on Security and Privacy. Virtual, Austria . https:\/\/hal.inria.fr\/hal-03178425 Karthikeyan Bhargavan, Abhishek Bichhawat, Quoc Huy Do, Pedram Hosseyni, Ralf K\u00fcsters, Guido Schmitz, and Tim W\u00fcrtele. 2021. DY* : A Modular Symbolic Verification Framework for Executable Cryptographic Protocol Code. In EuroS&P 2021 - 6th IEEE European Symposium on Security and Privacy. Virtual, Austria. https:\/\/hal.inria.fr\/hal-03178425"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2006.1"},{"key":"e_1_2_1_13_1","volume-title":"Foundations of security analysis and design","author":"Blanchet Bruno","unstructured":"Bruno Blanchet . 2013. Automatic verification of security protocols in the symbolic model: The verifier proverif . In Foundations of security analysis and design VII. Springer , 54\u201387. Bruno Blanchet. 2013. Automatic verification of security protocols in the symbolic model: The verifier proverif. In Foundations of security analysis and design VII. Springer, 54\u201387."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1008908.1008911"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3372885.3373815"},{"key":"e_1_2_1_17_1","volume-title":"32nd IEEE Computer Security Foundations Symposium. https:\/\/eprint.iacr.org\/2019\/582","author":"Canetti Ran","year":"2019","unstructured":"Ran Canetti , Alley Stoughton , and Mayank Varia . 2019 . EasyUC: Using EasyCrypt to Mechanize Proofs of Universally Composable Security . In 32nd IEEE Computer Security Foundations Symposium. https:\/\/eprint.iacr.org\/2019\/582 Ran Canetti, Alley Stoughton, and Mayank Varia. 2019. EasyUC: Using EasyCrypt to Mechanize Proofs of Universally Composable Security. In 32nd IEEE Computer Security Foundations Symposium. https:\/\/eprint.iacr.org\/2019\/582"},{"key":"e_1_2_1_18_1","first-page":"173","article-title":"Practical byzantine fault tolerance","volume":"99","author":"Castro Miguel","year":"1999","unstructured":"Miguel Castro and Barbara Liskov . 1999 . Practical byzantine fault tolerance . In OsDI. 99 , 173 \u2013 186 . Miguel Castro and Barbara Liskov. 1999. Practical byzantine fault tolerance. In OsDI. 99, 173\u2013186.","journal-title":"OsDI."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2046707.2046717"},{"key":"e_1_2_1_20_1","volume-title":"The Scyther Tool: Verification, Falsification, and Analysis of Security Protocols","author":"Cremers Cas J. F.","unstructured":"Cas J. F. Cremers . 2008. The Scyther Tool: Verification, Falsification, and Analysis of Security Protocols . In Computer Aided Verification, Aarti Gupta and Sharad Malik (Eds.). Springer Berlin Heidelberg , Berlin, Heidelberg . 414\u2013418. Cas J. F. Cremers. 2008. The Scyther Tool: Verification, Falsification, and Analysis of Security Protocols. In Computer Aided Verification, Aarti Gupta and Sharad Malik (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 414\u2013418."},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security.","author":"Karim","unstructured":"Karim M. El Defrawy and Vitor Pereira. 2019. A High-Assurance Evaluator for Machine-Checked Secure Multiparty Computation . Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. Karim M. El Defrawy and Vitor Pereira. 2019. A High-Assurance Evaluator for Machine-Checked Secure Multiparty Computation. Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/TIT.1983.1056650"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3497775.3503693"},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Joshua Gancher Kristina Sojakova Xiong Fan Elaine Shi and Greg Morrisett. 2022. A Core Calculus for Equational Proofs of Distributed Cryptographic Protocols: Supplemental Material. https:\/\/github.com\/ipdl\/ipdl Joshua Gancher Kristina Sojakova Xiong Fan Elaine Shi and Greg Morrisett. 2022. A Core Calculus for Equational Proofs of Distributed Cryptographic Protocols: Supplemental Material. https:\/\/github.com\/ipdl\/ipdl","DOI":"10.1145\/3554342"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/28395.28420"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498684"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314607"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3387108"},{"key":"e_1_2_1_30_1","volume-title":"32nd IEEE Computer Security Foundations Symposium. http:\/\/www.andreas-lochbihler.de\/pub\/lochbihler2019csf.pdf","author":"Lochbihler Andreas","year":"2019","unstructured":"Andreas Lochbihler , S. Reza Sefidgar , David Basin , and Ueli Maurer . 2019 . Formalizing Constructive Cryptography using CryptHOL . In 32nd IEEE Computer Security Foundations Symposium. http:\/\/www.andreas-lochbihler.de\/pub\/lochbihler2019csf.pdf Andreas Lochbihler, S. Reza Sefidgar, David Basin, and Ueli Maurer. 2019. Formalizing Constructive Cryptography using CryptHOL. In 32nd IEEE Computer Security Foundations Symposium. http:\/\/www.andreas-lochbihler.de\/pub\/lochbihler2019csf.pdf"},{"key":"e_1_2_1_31_1","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"Lowe Gavin","unstructured":"Gavin Lowe . 1996. Breaking and fixing the Needham-Schroeder Public-Key Protocol using FDR . In Tools and Algorithms for the Construction and Analysis of Systems , Tiziana Margaria and Bernhard Steffen (Eds.). Springer Berlin Heidelberg, Berlin , Heidelberg . 147\u2013166. isbn:978-3-540-49874-2 Gavin Lowe. 1996. Breaking and fixing the Needham-Schroeder Public-Key Protocol using FDR. In Tools and Algorithms for the Construction and Analysis of Systems, Tiziana Margaria and Bernhard Steffen (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 147\u2013166. isbn:978-3-540-49874-2"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.4457887"},{"key":"e_1_2_1_33_1","volume-title":"Theory of Security and Applications, Sebastian M\u00f6dersheim and Catuscia Palamidessi (Eds.)","author":"Maurer Ueli","unstructured":"Ueli Maurer . 2012. Constructive Cryptography \u2013 A New Paradigm for Security Definitions and Proofs . In Theory of Security and Applications, Sebastian M\u00f6dersheim and Catuscia Palamidessi (Eds.) . Springer Berlin Heidelberg, Berlin , Heidelberg . 33\u201356. isbn:978-3-642-27375-9 Ueli Maurer. 2012. Constructive Cryptography \u2013 A New Paradigm for Security Definitions and Proofs. In Theory of Security and Applications, Sebastian M\u00f6dersheim and Catuscia Palamidessi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 33\u201356. isbn:978-3-642-27375-9"},{"key":"e_1_2_1_34_1","volume-title":"The TAMARIN Prover for the Symbolic Analysis of Security Protocols","author":"Meier Simon","unstructured":"Simon Meier , Benedikt Schmidt , Cas Cremers , and David Basin . 2013. The TAMARIN Prover for the Symbolic Analysis of Security Protocols . In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg , Berlin, Heidelberg . 696\u2013701. isbn:978-3-642-39799-8 Simon Meier, Benedikt Schmidt, Cas Cremers, and David Basin. 2013. The TAMARIN Prover for the Symbolic Analysis of Security Protocols. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 696\u2013701. isbn:978-3-642-39799-8"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(92)90008-4"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/301250.301312"},{"key":"e_1_2_1_37_1","volume-title":"Principles of Security and Trust","author":"Petcher Adam","unstructured":"Adam Petcher and Greg Morrisett . 2015. The Foundational Cryptography Framework . In Principles of Security and Trust , Riccardo Focardi and Andrew Myers (Eds.). Springer Berlin Heidelberg , Berlin, Heidelberg . 53\u201372. isbn:978-3-662-46666-7 Adam Petcher and Greg Morrisett. 2015. The Foundational Cryptography Framework. In Principles of Security and Trust, Riccardo Focardi and Andrew Myers (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 53\u201372. isbn:978-3-662-46666-7"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/SECPRI.1996.502680"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3571223","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3571223","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:08:21Z","timestamp":1750183701000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3571223"}},"issued":{"date-parts":[[2023,1,9]]},"references-count":36,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2023,1,9]]}},"alternative-id":["10.1145\/3571223"],"URL":"https:\/\/doi.org\/10.1145\/3571223","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2023,1,9]]},"assertion":[{"value":"2023-01-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,1,9]],"date-time":"2026-01-09T03:05:20Z","timestamp":1767927920152,"version":"3.49.0"},"reference-count":74,"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":[{"name":"NSF","award":["CCF-1901381, CCF-2115104,CCF-2119352, CCF-2107241"],"award-info":[{"award-number":["CCF-1901381, CCF-2115104,CCF-2119352, CCF-2107241"]}]}],"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>Recent work has proposed a memory property for parallel programs, called disentanglement, and showed that it is pervasive in a variety of programs, written in different languages, ranging from C\/C++ to Parallel ML, and showed that it can be exploited to improve the performance of parallel functional programs. All existing work on disentanglement, however, considers the \u201cfork\/join\u201d model for parallelism and does not apply to \u201cfutures\u201d, the more powerful approach to parallelism. This is not surprising: fork\/join parallel programs exhibit a reasonably strict dependency structure (e.g., series-parallel DAGs), which disentanglement exploits. In contrast, with futures, parallel computations become first-class values of the language, and thus can be created, and passed between functions calls or stored in memory, just like other ordinary values, resulting in complex dependency structures, especially in the presence of mutable state. For example, parallel programs with futures can have deadlocks, which is impossible with fork-join parallelism.<\/jats:p>\n          <jats:p>In this paper, we are interested in the theoretical question of whether disentanglement may be extended beyond fork\/join parallelism, and specifically to futures. We consider a functional language with futures, Input\/Output (I\/O), and mutable state (references) and show that a broad range of programs written in this language are disentangled. We start by formalizing disentanglement for futures and proving that purely functional programs written in this language are disentangled. We then generalize this result in three directions. First, we consider state (effects) and prove that stateful programs are disentangled if they are race free. Second, we show that race freedom is sufficient but not a necessary condition and non-deterministic programs, e.g. those that use atomic read-modify-operations and some non-deterministic combinators, may also be disentangled. Third, we prove that disentangled task-parallel programs written with futures are free of deadlocks, which arise due to interactions between state and the rich dependencies that can be expressed with futures. Taken together, these results show that disentanglement generalizes to parallel programs with futures and, thus, the benefits of disentanglement may go well beyond fork-join parallelism.<\/jats:p>","DOI":"10.1145\/3632895","type":"journal-article","created":{"date-parts":[[2024,1,5]],"date-time":"2024-01-05T20:48:51Z","timestamp":1704487731000},"page":"1569-1599","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Disentanglement with Futures, State, and Interaction"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8302-6844","authenticated-orcid":false,"given":"Jatin","family":"Arora","sequence":"first","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3210-9727","authenticated-orcid":false,"given":"Stefan K.","family":"Muller","sequence":"additional","affiliation":[{"name":"Illinois Institute of Technology, Chicago, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2623-4986","authenticated-orcid":false,"given":"Umut A.","family":"Acar","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,1,5]]},"reference":[{"key":"e_1_3_1_2_1","unstructured":"Umut A. Acar Jatin Arora Matthew Fluet Ram Raghunathan Sam Westrick and Rohan Yadav. 2020. MPL: A High-Performance Compiler for Parallel ML. https:\/\/github.com\/MPLLang\/mpl."},{"key":"e_1_3_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00224-002-1057-3"},{"key":"e_1_3_1_4_1","doi-asserted-by":"crossref","unstructured":"Umut A. Acar Arthur Chargu\u00e9raud Mike Rainey and Filip Sieczkowski. 2016. Dag-calculus: A Calculus for Parallel Computation. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016). 18\u201332.","DOI":"10.1145\/2951913.2951946"},{"key":"e_1_3_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1839676.1839697"},{"key":"e_1_3_1_6_1","unstructured":"T R. Allen and D. A. Padua. 1987. Debugging Fortran on a Shared Memory Machine. In Proceedings of the 1987 International Conference on Parallel Processing. 721\u2013727."},{"key":"e_1_3_1_7_1","doi-asserted-by":"crossref","unstructured":"Jatin Arora Sam Westrick and Umut A. Acar. 2021. Provably Space Efficient Parallel Functional Programming. In Proceedings of the 48th Annual ACM Symposium on Principles of Programming Languages (POPL)\u201d.","DOI":"10.1145\/3434299"},{"key":"e_1_3_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591284"},{"key":"e_1_3_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275808.1276390"},{"key":"e_1_3_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/800228.806932"},{"key":"e_1_3_1_11_1","doi-asserted-by":"crossref","unstructured":"Michael A. Bender Jeremy T. Fineman Seth Gilbert and Charles E. Leiserson. 2004. On-the-Fly Maintenance of Series-Parallel Relationships in Fork-Join Multithreaded Programs. In 16th Annual ACM Symposium on Parallel Algorithms and Architectures. 133\u2013144.","DOI":"10.1145\/1007912.1007933"},{"key":"e_1_3_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/s002240000117"},{"key":"e_1_3_1_13_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1996.0107"},{"key":"e_1_3_1_14_1","doi-asserted-by":"crossref","unstructured":"Robert L. Bocchino Stephen Heumann Nima Honarmand Sarita V. Adve Vikram S. Adve Adam Welc and Tatiana Shpeisman. 2011. Safe nondeterminism in a deterministic-by-default parallel language. In ACM POPL.","DOI":"10.1145\/1926385.1926447"},{"key":"e_1_3_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_3_1_16_1","volume-title":"3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911","author":"Boehm Hans-Juergen","year":"2011","unstructured":"Hans-Juergen Boehm. 2011. How to Miscompile Programs with \u201cBenign\u201d Data Races. In 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911, Berkeley, CA, USA, May 26-27, 2011."},{"key":"e_1_3_1_17_1","doi-asserted-by":"crossref","unstructured":"Guang-Ien Cheng Mingdong Feng Charles E. Leiserson Keith H. Randall and Andrew F. Stark. 1998. Detecting data races in Cilk programs that use locks. In Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201998).","DOI":"10.1145\/277651.277696"},{"key":"e_1_3_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3143359"},{"key":"e_1_3_1_19_1","doi-asserted-by":"publisher","DOI":"10.1137\/0217049"},{"key":"e_1_3_1_20_1","doi-asserted-by":"crossref","first-page":"98","DOI":"10.1007\/978-3-319-89719-6_6","volume-title":"Trends in Functional Programming","author":"Dolan Stephen","year":"2018","unstructured":"Stephen Dolan, Spiros Eliopoulos, Daniel Hillerstr\u00f6m, Anil Madhavapeddy, K. C. Sivaramakrishnan, and Leo White. 2018a. Concurrent System Programming with Effect Handlers. In Trends in Functional Programming, Meng Wang and Scott Owens (Eds.). Springer International Publishing, Cham, 98\u2013117."},{"key":"e_1_3_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3296979.3192421"},{"key":"e_1_3_1_22_1","doi-asserted-by":"crossref","unstructured":"Perry A. Emrath Sanjoy Ghosh and David A. Padua. 1991. Event Synchronization Analysis for Debugging Parallel Programs. In Supercomputing \u201991. 580\u2013588.","DOI":"10.1145\/76263.76329"},{"key":"e_1_3_1_23_1","doi-asserted-by":"crossref","unstructured":"Mingdong Feng and Charles E. Leiserson. 1997. Efficient Detection of Determinacy Races in Cilk Programs. In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA). 1\u201311.","DOI":"10.1145\/258492.258493"},{"key":"e_1_3_1_24_1","volume-title":"Provably Good Race Detection That Runs in Parallel","author":"Fineman Jeremy T.","year":"2005","unstructured":"Jeremy T. Fineman. 2005. Provably Good Race Detection That Runs in Parallel. Master\u2019s thesis. Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, Cambridge, MA."},{"key":"e_1_3_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542490"},{"key":"e_1_3_1_26_1","doi-asserted-by":"crossref","unstructured":"Matthew Fluet Mike Rainey and John Reppy. 2008. A scheduling framework for general-purpose parallel languages. In ACM SIGPLAN International Conference on Functional Programming (ICFP).","DOI":"10.1145\/1411204.1411239"},{"issue":"5","key":"e_1_3_1_27_1","first-page":"1","article-title":"Implicitly threaded parallelism in Manticore","volume":"20","author":"Fluet Matthew","year":"2011","unstructured":"Matthew Fluet, Mike Rainey, John Reppy, and Adam Shaw. 2011. Implicitly threaded parallelism in Manticore. Journal of Functional Programming 20, 5-6 (2011), 1\u201340.","journal-title":"Journal of Functional Programming"},{"key":"e_1_3_1_28_1","doi-asserted-by":"crossref","unstructured":"Matteo Frigo Charles E. Leiserson and Keith H. Randall. 1998. The Implementation of the Cilk-5 Multithreaded Language. In PLDI. 212\u2013223.","DOI":"10.1145\/277650.277725"},{"key":"e_1_3_1_29_1","doi-asserted-by":"crossref","unstructured":"Adrien Guatto Sam Westrick Ram Raghunathan Umut A. Acar and Matthew Fluet. 2018. Hierarchical memory management for mutable state. In Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPoPP 2018 Vienna Austria February 24-28 2018. 81\u201393.","DOI":"10.1145\/3178487.3178494"},{"key":"e_1_3_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/4472.4478"},{"key":"e_1_3_1_31_1","doi-asserted-by":"crossref","unstructured":"Kevin Hammond. 2011. Why Parallel Functional Programming Matters: Panel Statement. In Reliable Software Technologies -Ada-Europe 2011 - 16th Ada-Europe International Conference on Reliable Software Technologies Edinburgh UK June 20-24 2011. Proceedings. 201\u2013205.","DOI":"10.1007\/978-3-642-21338-0_17"},{"key":"e_1_3_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2555243.2555257"},{"key":"e_1_3_1_33_1","doi-asserted-by":"crossref","unstructured":"Shams Mahmood Imam and Vivek Sarkar. 2014. Habanero-Java library: a Java 8 framework for multicore programming. In 2014 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines Languages and Tools PPPJ \u201914. 75\u201386.","DOI":"10.1145\/2647508.2647514"},{"key":"e_1_3_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062374"},{"key":"e_1_3_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009869"},{"key":"e_1_3_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/337449.337465"},{"key":"e_1_3_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640106"},{"key":"e_1_3_1_38_1","doi-asserted-by":"crossref","unstructured":"Peng Li Simon Marlow Simon L. Peyton Jones and Andrew P. Tolmach. 2007. Lightweight concurrency primitives for GHC. In Proceedings of the ACM SIGPLAN Workshop on Haskell Haskell 2007 Freiburg Germany September 30 2007. 107\u2013118.","DOI":"10.1145\/1291201.1291217"},{"key":"e_1_3_1_39_1","volume-title":"LWT OCaml","author":"LWT","year":"2022","unstructured":"LWT. 2022. LWT OCaml. GitHub. https:\/\/github.com\/ocsigen\/lwt"},{"key":"e_1_3_1_40_1","first-page":"339","volume-title":"Central European Functional Programming School - 4th Summer School, CEFP 2011, Budapest, Hungary, June 14-24, 2011, Revised Selected Papers (Lecture Notes in Computer Science, Vol. 7241)","author":"Marlow Simon","year":"2011","unstructured":"Simon Marlow. 2011. Parallel and Concurrent Programming in Haskell. In Central European Functional Programming School - 4th Summer School, CEFP 2011, Budapest, Hungary, June 14-24, 2011, Revised Selected Papers (Lecture Notes in Computer Science, Vol. 7241), Vikt\u00f3ria Zs\u00f3k, Zolt\u00e1n Horv\u00e1th, and Rinus Plasmeijer (Eds.). Springer, 339\u2013401."},{"key":"e_1_3_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993478.1993482"},{"key":"e_1_3_1_42_1","doi-asserted-by":"crossref","unstructured":"John Mellor-Crummey. 1991. On-the-fly Detection of Data Races for Programs with Nested Fork-Join Parallelism. In Proceedings of Supercomputing\u201991. 24\u201333.","DOI":"10.1145\/125826.125861"},{"key":"e_1_3_1_43_1","doi-asserted-by":"crossref","unstructured":"Stefan Muller Kyle Singer Noah Goldstein Umut A. Acar Kunal Agrawal and I-Ting Angelina Lee. 2020. Responsive Parallelism with Futures and State. In Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI).","DOI":"10.1145\/3385412.3386013"},{"key":"e_1_3_1_44_1","doi-asserted-by":"crossref","unstructured":"Stefan K. Muller and Umut A. Acar. 2016. Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing. In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures SPAA 2016 Asilomar State Beach\/Pacific Grove CA USA July 11-13 2016. 71\u201382.","DOI":"10.1145\/2935764.2935793"},{"key":"e_1_3_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062370"},{"key":"e_1_3_1_46_1","unstructured":"Stefan K. Muller Umut A. Acar and Robert Harper. 2018. Types and Cost Models for Responsive Parallelism. In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918)."},{"key":"e_1_3_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591249"},{"key":"e_1_3_1_48_1","doi-asserted-by":"crossref","unstructured":"Stefan K. Muller Sam Westrick and Umut A. Acar. 2019. Fairness in Responsive Parallelism. In Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2019).","DOI":"10.1145\/3341685"},{"key":"e_1_3_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/130616.130623"},{"key":"e_1_3_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/781498.781528"},{"key":"e_1_3_1_51_1","unstructured":"Atsushi Ohori Kenjiro Taura and Katsuhiro Ueno. 2018. Making SML# a General-purpose High-performance Language. Unpublished Manuscript."},{"key":"e_1_3_1_52_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0036940"},{"key":"e_1_3_1_53_1","doi-asserted-by":"crossref","unstructured":"Simon L. Peyton Jones Roman Leshchinskiy Gabriele Keller and Manuel M. T. Chakravarty. 2008. Harnessing the Multicores: Nested Data Parallelism in Haskell. In FSTTCS. 383\u2013414.","DOI":"10.1007\/978-3-540-89330-1_10"},{"key":"e_1_3_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951935"},{"key":"e_1_3_1_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-16612-9_28"},{"key":"e_1_3_1_56_1","doi-asserted-by":"crossref","unstructured":"Raghavan Raman Jisheng Zhao Vivek Sarkar Martin Vechev and Eran Yahav. 2012. Scalable and Precise Dynamic Datarace Detection for Structured Parallelism. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201912). 531\u2013542.","DOI":"10.1145\/2254064.2254127"},{"key":"e_1_3_1_57_1","unstructured":"Rust Team. 2019. Rust Language. https:\/\/www.rust-lang.org\/"},{"key":"e_1_3_1_58_1","unstructured":"Stefan Savage Michael Burrows Greg Nelson Patrick Sobalvarro and Thomas Anderson. 1997. Eraser: A Dynamic Race Detector for Multi-Threaded Programs. In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles (SOSP)."},{"key":"e_1_3_1_59_1","doi-asserted-by":"publisher","DOI":"10.1137\/L9781611976021.11"},{"key":"e_1_3_1_60_1","doi-asserted-by":"crossref","unstructured":"Kyle Singer Noah Goldstein Stefan K. Muller Kunal Agrawal I-Ting Angelina Lee and Umut A. Acar. 2020b. Priority Scheduling for Interactive Applications. In SPAA \u201920: 32nd ACM Symposium on Parallelism in Algorithms and Architectures Virtual Event USA July 15-17 2020 Christian Scheideler and Michael Spear (Eds.). 465\u2013477.","DOI":"10.1145\/3350755.3400236"},{"key":"e_1_3_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293883.3295735"},{"key":"e_1_3_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293883.3295735"},{"key":"e_1_3_1_63_1","doi-asserted-by":"crossref","unstructured":"K. C. Sivaramakrishnan Lukasz Ziarek and Suresh Jagannathan. 2014. MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming FirstView (6 2014) 1\u201362.","DOI":"10.1017\/S0956796814000161"},{"key":"e_1_3_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103702"},{"key":"e_1_3_1_65_1","unstructured":"Daniel Spoonhower. 2009a. Scheduling Deterministic Parallel Programs. Ph. D. Dissertation. Carnegie Mellon University. https:\/\/www.cs.cmu.edu\/~rwh\/theses\/spoonhower.pdf"},{"key":"e_1_3_1_66_1","volume-title":"Scheduling Deterministic Parallel Programs","author":"Spoonhower Daniel","year":"2009","unstructured":"Daniel Spoonhower. 2009b. Scheduling Deterministic Parallel Programs. Ph. D. Dissertation. Carnegie Mellon University, Pittsburgh, PA, USA."},{"key":"e_1_3_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584019"},{"key":"e_1_3_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/96709.96731"},{"key":"e_1_3_1_69_1","doi-asserted-by":"crossref","unstructured":"Robert Utterback Kunal Agrawal Jeremy T. Fineman and I-Ting Angelina Lee. 2016. Provably Good and Practically Efficient Parallel Race Detection for Fork-Join Programs. In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures SPAA 2016 Asilomar State Beach\/Pacific Grove CA USA July 11-13 2016. 83\u201394.","DOI":"10.1145\/2935764.2935801"},{"key":"e_1_3_1_70_1","doi-asserted-by":"crossref","unstructured":"Caleb Voss Tiago Cogumbreiro and Vivek Sarkar. 2019. Transitive joins: a sound and efficient online deadlock-avoidance policy. In Proceedings of the 24th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPoPP 2019 Washington DC USA February 16-20 2019 Jeffrey K. Hollingsworth and Idit Keidar (Eds.). 378\u2013390.","DOI":"10.1145\/3293883.3295724"},{"key":"e_1_3_1_71_1","doi-asserted-by":"crossref","unstructured":"Sam Westrick Jatin Arora and Umut A. Acar. 2022. Entanglement Detection With Near-Zero Cost. In Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2022).","DOI":"10.1145\/3547646"},{"key":"e_1_3_1_72_1","doi-asserted-by":"crossref","unstructured":"Sam Westrick Rohan Yadav Matthew Fluet and Umut A. Acar. 2020. Disentanglement in Nested-Parallel Programs. In Proceedings of the 47th Annual ACM Symposium on Principles of Programming Languages (POPL)\".","DOI":"10.1145\/3371115"},{"key":"e_1_3_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/3579990.3580013"},{"key":"e_1_3_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/3332466.3374536"},{"key":"e_1_3_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632895","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632895","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T20:04:54Z","timestamp":1751659494000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632895"}},"issued":{"date-parts":[[2024,1,2]]},"references-count":74,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2024,1,2]]}},"alternative-id":["10.1145\/3632895"],"URL":"https:\/\/doi.org\/10.1145\/3632895","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2024,1,2]]},"assertion":[{"value":"2024-01-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:42:55Z","timestamp":1780994575257,"version":"3.54.1"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,1,2]],"date-time":"2019-01-02T00:00:00Z","timestamp":1546387200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,1,2]]},"abstract":"<jats:p>Bringing the benefits of gradual typing to a language with parametric polymorphism like System F, while preserving relational parametricity, has proven extremely challenging: first attempts were formulated a decade ago, and several designs were recently proposed. Among other issues, these proposals can however signal parametricity errors in unexpected situations, and improperly handle type instantiations when imprecise types are involved. These observations further suggest that existing polymorphic cast calculi are not well suited for supporting a gradual counterpart of System F. Consequently, we revisit the challenge of designing a gradual language with explicit parametric polymorphism, exploring the extent to which the Abstracting Gradual Typing methodology helps us derive such a language, GSF. We present the design and metatheory of GSF, and provide a reference implementation. In addition to avoiding the uncovered semantic issues, GSF satisfies all the expected properties of a gradual parametric language, save for one property: the dynamic gradual guarantee, which was left as conjecture in all prior work, is here proven to be simply incompatible with parametricity. We nevertheless establish a weaker property that allows us to disprove several claims about gradual free theorems, clarifying the kind of reasoning supported by gradual parametricity.<\/jats:p>","DOI":"10.1145\/3290330","type":"journal-article","created":{"date-parts":[[2019,1,4]],"date-time":"2019-01-04T13:33:51Z","timestamp":1546608831000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["Gradual parametricity, revisited"],"prefix":"10.1145","volume":"3","author":[{"given":"Mat\u00edas","family":"Toro","sequence":"first","affiliation":[{"name":"University of Chile, Chile"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Elizabeth","family":"Labrada","sequence":"additional","affiliation":[{"name":"University of Chile, Chile"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"\u00c9ric","family":"Tanter","sequence":"additional","affiliation":[{"name":"University of Chile, Chile \/ Inria, France"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,1,2]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/103135.103138"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1017\/S095679680000126X"},{"key":"e_1_2_2_3_1","volume-title":"Blame for All. In Workshop on Script to Program Evolution (STOP)","author":"Ahmed Amal","year":"2009","unstructured":"Amal Ahmed , Robert Bruce Findler , Jacob Matthews , and Philip Wadler . 2009 . Blame for All. In Workshop on Script to Program Evolution (STOP) . Genova, Italy. Amal Ahmed, Robert Bruce Findler, Jacob Matthews, and Philip Wadler. 2009. Blame for All. In Workshop on Script to Program Evolution (STOP). Genova, Italy."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926409"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110283"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-73721-8_2"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628149"},{"key":"e_1_2_2_8_1","article-title":"Gradual Type-and-Effect Systems","author":"Schwerter Felipe Ba\u00f1ados","year":"2016","unstructured":"Felipe Ba\u00f1ados Schwerter , Ronald Garcia , and \u00c9ric Tanter . 2016 . Gradual Type-and-Effect Systems . Journal of Functional Programming 26 ( Sept. 2016), 19:1\u201319:69. Felipe Ba\u00f1ados Schwerter, Ronald Garcia, and \u00c9ric Tanter. 2016. Gradual Type-and-Effect Systems. Journal of Functional Programming 26 (Sept. 2016), 19:1\u201319:69.","journal-title":"Journal of Functional Programming 26"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/1883978.1883986"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/113445.113469"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110285"},{"key":"e_1_2_2_12_1","volume-title":"Combinatory Logic","author":"Curry Haskell B.","unstructured":"Haskell B. Curry , J. Roger Hindley , and J. P. Seldin . 1972 . Combinatory Logic , Volume II . Studies in logic and the foundations of mathematics , Vol. 65. North-Holland Pub. Co. Haskell B. Curry, J. Roger Hindley, and J. P. Seldin. 1972. Combinatory Logic, Volume II. Studies in logic and the foundations of mathematics, Vol. 65. North-Holland Pub. Co."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158126"},{"key":"e_1_2_2_14_1","volume-title":"International Workshop on Scripts to Programs.","author":"Disney Tim","year":"2011","unstructured":"Tim Disney and Cormac Flanagan . 2011 . Gradual information flow typing . In International Workshop on Scripts to Programs. Tim Disney and Cormac Flanagan. 2011. Gradual information flow typing. In International Workshop on Scripts to Programs."},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSF.2013.22"},{"key":"e_1_2_2_16_1","volume-title":"Proceedings of the 30th European Conference on Object-Oriented Programming (ECOOP 2016) (Leibniz International Proceedings in Informatics (LIPIcs)), Shriram Krishnamurthi and Benjamin S. Lerner (Eds.)","volume":"56","author":"Fennell Luminous","year":"2016","unstructured":"Luminous Fennell and Peter Thiemann . 2016 . LJGS: Gradual Security Types for Object-Oriented Languages . In Proceedings of the 30th European Conference on Object-Oriented Programming (ECOOP 2016) (Leibniz International Proceedings in Informatics (LIPIcs)), Shriram Krishnamurthi and Benjamin S. Lerner (Eds.) , Vol. 56 . Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Rome, Italy, 9:1\u20139:26. Luminous Fennell and Peter Thiemann. 2016. LJGS: Gradual Security Types for Object-Oriented Languages. In Proceedings of the 30th European Conference on Object-Oriented Programming (ECOOP 2016) (Leibniz International Proceedings in Informatics (LIPIcs)), Shriram Krishnamurthi and Benjamin S. Lerner (Eds.), Vol. 56. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Rome, Italy, 9:1\u20139:26."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837670"},{"key":"e_1_2_2_18_1","unstructured":"Ronald Garcia and \u00c9ric Tanter. 2015. Deriving a Simple Gradual Security Language. eprint arXiv:1511.01399.  Ronald Garcia and \u00c9ric Tanter. 2015. Deriving a Simple Gradual Security Language. eprint arXiv:1511.01399."},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629609"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297081.1297089"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-011-9066-z"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000265"},{"key":"e_1_2_2_24_1","unstructured":"ICFP 2017 2017.  ICFP 2017 2017."},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110282"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110284"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048114"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009856"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/645420.652519"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/1792878.1792881"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190220"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(88)90009-0"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/361932.361937"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133880"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596550.1596572"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236768"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237729"},{"key":"e_1_2_2_38_1","unstructured":"Benjamin Pierce and Eijiro Sumii. 2000. Relating Cryptography and Polymorphism. Manuscript.  Benjamin Pierce and Eijiro Sumii. 2000. Relating Cryptography and Polymorphism. Manuscript."},{"key":"e_1_2_2_39_1","volume-title":"Types and programming languages","author":"Pierce Benjamin C.","unstructured":"Benjamin C. Pierce . 2002. Types and programming languages . MIT Press , Cambridge, MA, USA . Benjamin C. Pierce. 2002. Types and programming languages. MIT Press, Cambridge, MA, USA."},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103714"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/647323.721503"},{"key":"e_1_2_2_42_1","volume-title":"Information Processing 83","author":"Reynolds John C.","unstructured":"John C. Reynolds . 1983. Types , abstraction, and parametric polymorphism . In Information Processing 83 , R. E. A. Mason (Ed.). Elsevier , 513\u2013523. John C. Reynolds. 1983. Types, abstraction, and parametric polymorphism. In Information Processing 83, R. E. A. Mason (Ed.). Elsevier, 513\u2013523."},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/888251.888274"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_29"},{"key":"e_1_2_2_45_1","volume-title":"Proceedings of the Scheme and Functional Programming Workshop. 81\u201392","author":"Siek Jeremy","year":"2006","unstructured":"Jeremy Siek and Walid Taha . 2006 . Gradual Typing for Functional Languages . In Proceedings of the Scheme and Functional Programming Workshop. 81\u201392 . Jeremy Siek and Walid Taha. 2006. Gradual Typing for Functional Languages. In Proceedings of the Scheme and Functional Programming Workshop. 81\u201392."},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-73589-2_2"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706342"},{"key":"e_1_2_2_48_1","volume-title":"Refined Criteria for Gradual Typing. In 1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs))","volume":"32","author":"Siek Jeremy G.","year":"2015","unstructured":"Jeremy G. Siek , Michael M. Vitousek , Matteo Cimini , and John Tang Boyland . 2015 a. Refined Criteria for Gradual Typing. In 1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs)) , Vol. 32 . Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Asilomar, California, USA, 274\u2013293. Jeremy G. Siek, Michael M. Vitousek, Matteo Cimini, and John Tang Boyland. 2015a. Refined Criteria for Gradual Typing. In 1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs)), Vol. 32. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Asilomar, California, USA, 274\u2013293."},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_18"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176617.1176755"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3229061"},{"key":"e_1_2_2_52_1","unstructured":"Mat\u00edas Toro Elizabeth Labrada and \u00c9ric Tanter. 2018b. Gradual Parametricity Revisited (with Appendix). arXiv:1807.04596 {cs.PL}.  Mat\u00edas Toro Elizabeth Labrada and \u00c9ric Tanter. 2018b. Gradual Parametricity Revisited (with Appendix). arXiv:1807.04596 {cs.PL}."},{"key":"e_1_2_2_53_1","volume-title":"Proceedings of the 24th Static Analysis Symposium (SAS 2017)","volume":"10422","author":"Mat\u00edas","unstructured":"Mat\u00edas Toro and \u00c9ric Tanter. 2017. A Gradual Interpretation of Union Types . In Proceedings of the 24th Static Analysis Symposium (SAS 2017) (Lecture Notes in Computer Science) , Vol. 10422 . Springer-Verlag, New York City, NY, USA, 382\u2013404. Mat\u00edas Toro and \u00c9ric Tanter. 2017. A Gradual Interpretation of Union Types. In Proceedings of the 24th Static Analysis Symposium (SAS 2017) (Lecture Notes in Computer Science), Vol. 10422. Springer-Verlag, New York City, NY, USA, 382\u2013404."},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/99370.99404"},{"key":"e_1_2_2_55_1","volume-title":"Gradual Typestate. In Proceedings of the 25th European Conference on Object-oriented Programming (ECOOP 2011)","volume":"6813","author":"Wolff Roger","year":"2011","unstructured":"Roger Wolff , Ronald Garcia , \u00c9ric Tanter , and Jonathan Aldrich . 2011 . Gradual Typestate. In Proceedings of the 25th European Conference on Object-oriented Programming (ECOOP 2011) (Lecture Notes in Computer Science), Mira Mezini (Ed.) , Vol. 6813 . Springer-Verlag, Lancaster, UK, 459\u2013483. Roger Wolff, Ronald Garcia, \u00c9ric Tanter, and Jonathan Aldrich. 2011. Gradual Typestate. In Proceedings of the 25th European Conference on Object-oriented Programming (ECOOP 2011) (Lecture Notes in Computer Science), Mira Mezini (Ed.), Vol. 6813. Springer-Verlag, Lancaster, UK, 459\u2013483."},{"key":"e_1_2_2_56_1","volume-title":"Proceedings of the 27th European Symposium on Programming Languages and Systems (ESOP 2018)","volume":"10801","author":"Xie Ningning","unstructured":"Ningning Xie , Xuan Bi , and Bruno C . d. S. Oliveira. 2018. Consistent Subtyping for All . In Proceedings of the 27th European Symposium on Programming Languages and Systems (ESOP 2018) (Lecture Notes in Computer Science), Amal Ahmed (Ed.) , Vol. 10801 . Springer-Verlag, Thessaloniki, Greece, 3\u201330. Ningning Xie, Xuan Bi, and Bruno C. d. S. Oliveira. 2018. Consistent Subtyping for All. In Proceedings of the 27th European Symposium on Programming Languages and Systems (ESOP 2018) (Lecture Notes in Computer Science), Amal Ahmed (Ed.), Vol. 10801. Springer-Verlag, Thessaloniki, Greece, 3\u201330."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290330","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3290330","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:58:04Z","timestamp":1750208284000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290330"}},"issued":{"date-parts":[[2019,1,2]]},"references-count":55,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2019,1,2]]}},"alternative-id":["10.1145\/3290330"],"URL":"https:\/\/doi.org\/10.1145\/3290330","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2019,1,2]]},"assertion":[{"value":"2019-01-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,5,19]],"date-time":"2026-05-19T14:53:25Z","timestamp":1779202405645,"version":"3.51.4"},"reference-count":52,"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":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2040249,1845803,2234257"],"award-info":[{"award-number":["2040249,1845803,2234257"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100010661","name":"Horizon 2020 Framework Programme","doi-asserted-by":"publisher","award":["101027412"],"award-info":[{"award-number":["101027412"]}],"id":[{"id":"10.13039\/100010661","id-type":"DOI","asserted-by":"publisher"}]},{"name":"National Research Council of the Netherlands","award":["VI.Veni.232.286"],"award-info":[{"award-number":["VI.Veni.232.286"]}]},{"DOI":"10.13039\/100000185","name":"Defense Advanced Research Projects Agency","doi-asserted-by":"publisher","award":["N66001-21-C-4028"],"award-info":[{"award-number":["N66001-21-C-4028"]}],"id":[{"id":"10.13039\/100000185","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":[[2025,1,7]]},"abstract":"<jats:p>\n                    Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as\n                    <jats:monospace>goto, break<\/jats:monospace>\n                    , and\n                    <jats:monospace>return<\/jats:monospace>\n                    . To overcome these limitations, we introduce\n                    <jats:italic toggle=\"yes\">Control-Flow GKAT (CF-GKAT)<\/jats:italic>\n                    , a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT\u2019s abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren\u2019s\n                    <jats:monospace>goto<\/jats:monospace>\n                    -elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.\n                  <\/jats:p>","DOI":"10.1145\/3704857","type":"journal-article","created":{"date-parts":[[2025,1,9]],"date-time":"2025-01-09T05:48:42Z","timestamp":1736401722000},"page":"600-626","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["CF-GKAT: Efficient Validation of Control-Flow Transformations"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8197-6181","authenticated-orcid":false,"given":"Cheng","family":"Zhang","sequence":"first","affiliation":[{"name":"University College London, London, United Kingdom"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6068-880X","authenticated-orcid":false,"given":"Tobias","family":"Kapp\u00e9","sequence":"additional","affiliation":[{"name":"Leiden University, Leiden, Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3704-1060","authenticated-orcid":false,"given":"David E.","family":"Narv\u00e1ez","sequence":"additional","affiliation":[{"name":"Virginia Tech, Blacksburg, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3442-1543","authenticated-orcid":false,"given":"Nico","family":"Naus","sequence":"additional","affiliation":[{"name":"Open University of the Netherlands, Heerlen, Netherlands"},{"name":"Virginia Tech, Blacksburg, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,1,9]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlap.2007.10.007"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","unstructured":"Carolyn Jane anderson Nate Foster Arjun Guha Jean-Baptiste Jeannin Dexter Kozen Cole Schlesinger and David Walker. 2014. NetKAT: semantic foundations for networks. In POPL. 113\u2013126. https:\/\/doi.org\/10.1145\/2535838.2535862 10.1145\/2535838.2535862","DOI":"10.1145\/2535838.2535862"},{"key":"e_1_3_2_4_2","volume-title":"Kleene Algebra with Tests and Program Schematology. Technical Report TR2001-1844","author":"Angus Allegra","year":"2001","unstructured":"Allegra Angus and Dexter Kozen. 2001. Kleene Algebra with Tests and Program Schematology. Technical Report TR2001-1844. Cornell University."},{"key":"e_1_3_2_5_2","unstructured":"Cheng Zhang Arthur Azevedo de Amorim and Marco Gaboardi. 2024. Kleene Algebra with Commutativity Conditions Is Undecidable. https:\/\/hal.science\/hal-04534715v2"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1016\/J.COSE.2022.102608"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","unstructured":"Thomas Ball Rupak Majumdar Todd D. Millstein and Sriram K. Rajamani. 2001. Automatic Predicate Abstraction of C Programs. In PLDI. 203\u2013213. https:\/\/doi.org\/10.1145\/378795.378846 10.1145\/378795.378846","DOI":"10.1145\/378795.378846"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/355592.365646"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/321239.321249"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/3650212.3652144"},{"issue":"7","key":"e_1_3_2_11_2","first-page":"1009","article-title":"Une approche pour r\u00e9duire la complexit\u00e9 du flot de contr\u00f4le dans les programmes C","volume":"21","author":"Cass\u00e9 Hugues","year":"2002","unstructured":"Hugues Cass\u00e9, Louis F\u00e9raud, Christine Rochange, and Pascal Sainrat. 2002. Une approche pour r\u00e9duire la complexit\u00e9 du flot de contr\u00f4le dans les programmes C. Tech. Sci. Informatiques 21, 7 (2002), 1009\u20131032. http:\/\/tsi.revuesonline.com\/article.jsp?articleId=3831","journal-title":"Tech. Sci. Informatiques"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3363562"},{"key":"e_1_3_2_13_2","volume-title":"Reverse compilation techniques","author":"Cifuentes Cristina","year":"1994","unstructured":"Cristina Cifuentes. 1994. Reverse compilation techniques. Ph. D. Dissertation. Queensland University of Technology."},{"key":"e_1_3_2_14_2","unstructured":"Ernie Cohen Dexter Kozen and Frederick Smith. 1996. The Complexity of Kleene Algebra with Tests. Technical Report TR96-1598."},{"key":"e_1_3_2_15_2","unstructured":"Coq Development Team. 2022. The Coq Reference Manual version 8.15. Available electronically at http:\/\/coq.inria.fr\/doc."},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","unstructured":"Sandeep Dasgupta Sushant Dinesh Deepan Venkatesh Vikram S. Adve and Christopher W. Fletcher. 2020. Scalable validation of binary lifters. In PLDI. 655\u2013671. https:\/\/doi.org\/10.1145\/3385412.3385964 10.1145\/3385412.3385964","DOI":"10.1145\/3385412.3385964"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICCL.1994.288377"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","unstructured":"Murdoch James Gabbay and Vincenzo Ciancia. 2011. Freshness and Name-Restriction in Sets of Traces with Names. In FoSSaCS. 365\u2013380. https:\/\/doi.org\/10.1007\/978-3-642-19805-2_25 10.1007\/978-3-642-19805-2_25","DOI":"10.1007\/978-3-642-19805-2_25"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","unstructured":"Benjamin Goldberg Lenore D. Zuck and Clark W. Barrett. 2004. Into the Loops: Practical Issues in Translation Validation for Optimizing Compilers. In COCV@ETAPS. 53\u201371. https:\/\/doi.org\/10.1016\/J.ENTCS.2005.01.030 10.1016\/J.ENTCS.2005.01.030","DOI":"10.1016\/J.ENTCS.2005.01.030"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/2603088.2603095"},{"key":"e_1_3_2_21_2","volume-title":"Translation validation for compilation verification","author":"Kasampalis Theodoros","year":"2021","unstructured":"Theodoros Kasampalis. 2021. Translation validation for compilation verification. Ph. D. Dissertation. University of Illinois Urbana-Champaign, USA. https:\/\/hdl.handle.net\/2142\/110460"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446751"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen. 1996. Kleene algebra with tests and commutativity conditions. In TACAS. 14\u201333. https:\/\/doi.org\/10.1007\/3-540-61042-1_35 10.1007\/3-540-61042-1_35","DOI":"10.1007\/3-540-61042-1_35"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen. 2008. Nonlocal Flow of Control and Kleene Algebra with Tests. In LICS. 105\u2013117. https:\/\/doi.org\/10.1109\/LICS.2008.32 10.1109\/LICS.2008.32","DOI":"10.1109\/LICS.2008.32"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen Konstantinos Mamouras Daniela Petrisan and Alexandra Silva. 2015. Nominal Kleene Coalgebra. In ICALP. 286\u2013298. https:\/\/doi.org\/10.1007\/978-3-662-47666-6_23 10.1007\/978-3-662-47666-6_23","DOI":"10.1007\/978-3-662-47666-6_23"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen Konstantinos Mamouras and Alexandra Silva. 2017. Completeness and incompleteness in nominal Kleene algebra. J. Log. Algebraic Methods Program. 91 17\u201332. https:\/\/doi.org\/10.1016\/J.JLAMP.2017.06.002 10.1016\/J.JLAMP.2017.06.002","DOI":"10.1016\/J.JLAMP.2017.06.002"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen and Maria-Christina Patron. 2000. Certification of Compiler Optimizations Using Kleene Algebra with Tests. In CL. 568\u2013582. https:\/\/doi.org\/10.1007\/3-540-44957-4_38 10.1007\/3-540-44957-4_38","DOI":"10.1007\/3-540-44957-4_38"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen and Frederick Smith. 1996. Kleene Algebra with Tests: Completeness and Decidability. In CSL. 244\u2013259. https:\/\/doi.org\/10.1007\/3-540-63172-0_43 10.1007\/3-540-63172-0_43","DOI":"10.1007\/3-540-63172-0_43"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","unstructured":"Dexter Kozen and Wei-Lung Dustin Tseng. 2008. The B\u00f6hm-Jacopini Theorem Is False Propositionally. In MPC. 177\u2013192. https:\/\/doi.org\/10.1007\/978-3-540-70594-9_11 10.1007\/978-3-540-70594-9_11","DOI":"10.1007\/978-3-540-70594-9_11"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","unstructured":"Stepan L. Kuznetsov. 2023. On the Complexity of Reasoning in Kleene Algebra with Commutativity Conditions. In ICTAC. 83\u201399. https:\/\/doi.org\/10.1007\/978-3-031-47963-2_7 10.1007\/978-3-031-47963-2_7","DOI":"10.1007\/978-3-031-47963-2_7"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","unstructured":"Vu Le Mehrdad Afshari and Zhendong Su. 2014. Compiler validation via equivalence modulo inputs. In PLDI. ACM 216\u2013226. https:\/\/doi.org\/10.1145\/2594291.2594334 10.1145\/2594291.2594334","DOI":"10.1145\/2594291.2594334"},{"key":"e_1_3_2_32_2","unstructured":"Xavier Leroy Sandrine Blazy Daniel K\u00e4stner Bernhard Schommer Markus Pister and Christian Ferdinand. 2016. CompCert \u2013 A Formally Verified Optimizing Compiler. In ERTS."},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","unstructured":"Zhibo Liu and Shuai Wang. 2020. How far we have come: testing decompilation correctness of C decompilers. In ISSTA. ACM 475\u2013487. https:\/\/doi.org\/10.1145\/3395363.3397370 10.1145\/3395363.3397370","DOI":"10.1145\/3395363.3397370"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","unstructured":"T.J. McCabe. 1976. A Complexity Measure. IEEE Transactions on Software Engineering SE-2 4 (1976) 308\u2013320. https:\/\/doi.org\/10.1109\/TSE.1976.233837 10.1109\/TSE.1976.233837","DOI":"10.1109\/TSE.1976.233837"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","unstructured":"Mark Moeller Jules Jacobs Olivier Savary B\u00e9langer David Darais Cole Schlesinger Steffen Smolka Nate Foster and Alexandra Silva. 2024. KATch: A Fast Symbolic Verifier for NetKAT. In PLDI. 1905\u20131928. https:\/\/doi.org\/10.1145\/3656454 10.1145\/3656454","DOI":"10.1145\/3656454"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","unstructured":"George C. Necula. 2000. Translation validation for an optimizing compiler. In PLDI. ACM 83\u201394. https:\/\/doi.org\/10.1145\/349299.349314 10.1145\/349299.349314","DOI":"10.1145\/349299.349314"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","unstructured":"Georg Neis Chung-Kil Hur Jan-Oliver Kaiser Craig McLaughlin Derek Dreyer and Viktor Vafeiadis. 2015. Pilsner: a compositionally verified compiler for a higher-order imperative language. In ICFP. ACM 166\u2013178. https:\/\/doi.org\/10.1145\/2784731.2784764 10.1145\/2784731.2784764","DOI":"10.1145\/2784731.2784764"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","unstructured":"Amir Pnueli Michael Siegel and Eli Singerman. 1998. Translation Validation. In TACAS. 151\u2013166. https:\/\/doi.org\/10.1007\/BFB0054170 10.1007\/BFB0054170","DOI":"10.1007\/BFB0054170"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","unstructured":"Damien Pous. 2015. Symbolic Algorithms for Language Equivalence and Kleene Algebra with Tests. In POPL. 357\u2013368. https:\/\/doi.org\/10.1145\/2676726.2677007 10.1145\/2676726.2677007","DOI":"10.1145\/2676726.2677007"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","unstructured":"Todd Schmid Tobias Kapp\u00e9 Dexter Kozen and Alexandra Silva. 2021. Guarded Kleene Algebra with Tests: Coequations Coinduction and Completeness. 142:1-142:14 pages. https:\/\/doi.org\/10.4230\/LIPICS.ICALP.2021.142 10.4230\/LIPICS.ICALP.2021.142","DOI":"10.4230\/LIPICS.ICALP.2021.142"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","unstructured":"Thomas Arthur Leck Sewell Magnus O. Myreen and Gerwin Klein. 2013. Translation validation for a verified OS kernel. In PLDI. ACM 471\u2013482. https:\/\/doi.org\/10.1145\/2491956.2462183 10.1145\/2491956.2462183","DOI":"10.1145\/2491956.2462183"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","unstructured":"Steffen Smolka Nate Foster Justin Hsu Tobias Kapp\u00e9 Dexter Kozen and Alexandra Silva. 2020. Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time. In POPL. 61:1\u201361:28. https:\/\/doi.org\/10.1145\/3371129 10.1145\/3371129","DOI":"10.1145\/3371129"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","unstructured":"Yong Kiam Tan Magnus O. Myreen Ramana Kumar Anthony C. J. Fox Scott Owens and Michael Norrish. 2016. A new verified compiler backend for CakeML. In ICFP. ACM 60\u201373. https:\/\/doi.org\/10.1145\/2951913.2951924 10.1145\/2951913.2951924","DOI":"10.1145\/2951913.2951924"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","unstructured":"Robert Endre Tarjan. 1975. Efficiency of a Good But Not Linear Set Union Algorithm. J. ACM 22 2 (1975) 215\u2013225. https:\/\/doi.org\/10.1145\/321879.321884 10.1145\/321879.321884","DOI":"10.1145\/321879.321884"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","unstructured":"Balder ten Cate and Tobias Kapp\u00e9. 2025. Algebras for Deterministic Computation are Inherently Incomplete. In POPL. 25:1\u201325:27. https:\/\/doi.org\/10.1145\/3704861 10.1145\/3704861","DOI":"10.1145\/3704861"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","unstructured":"Ken Thompson. 1968. Regular Expression Search Algorithm. Commun. ACM 11 6 (1968) 419\u2013422. https:\/\/doi.org\/10.1145\/363347.363387 10.1145\/363347.363387","DOI":"10.1145\/363347.363387"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","unstructured":"Freek Verbeek Joshua A. Bockenek Zhoulai Fu and Binoy Ravindran. 2022. Formally verified lifting of C-compiled x86-64 binaries. In PLDI. ACM 934\u2013949. https:\/\/doi.org\/10.1145\/3519939.3523702 10.1145\/3519939.3523702","DOI":"10.1145\/3519939.3523702"},{"key":"e_1_3_2_48_2","doi-asserted-by":"crossref","unstructured":"Freek Verbeek Nico Naus and Binoy Ravindran. 2024. Verifiably Correct Lifting of Position-Independent x86-64 Binaries to Symbolized Assembly. In CCS.","DOI":"10.1145\/3658644.3690244"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","unstructured":"Freek Verbeek Pierre Olivier and Binoy Ravindran. 2020. Sound C Code Decompilation for a Subset of x86-64 Binaries. In SEFM. 247\u2013264. https:\/\/doi.org\/10.1007\/978-3-030-58768-0_14 10.1007\/978-3-030-58768-0_14","DOI":"10.1007\/978-3-030-58768-0_14"},{"key":"e_1_3_2_50_2","doi-asserted-by":"crossref","unstructured":"Khaled Yakdan Sebastian Eschweiler Elmar Gerhards-Padilla and Matthew Smith. 2015. No More Gotos: De compilation Using Pattern-Independent Control-Flow Structuring and Semantic-Preserving Transformations. In NDSS. https:\/\/www.ndss-symposium.org\/ndss2015\/no-more-gotos-decompilation-using-pattern-independent-control-flow-structuring-and-semantics","DOI":"10.14722\/ndss.2015.23185"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","unstructured":"Xuejun Yang Yang Chen Eric Eide and John Regehr. 2011. Finding and understanding bugs in C compilers. In PLDI. ACM 283\u2013294. https:\/\/doi.org\/10.1145\/1993498.1993532 10.1145\/1993498.1993532","DOI":"10.1145\/1993498.1993532"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","unstructured":"Cheng Zhang Tobias Kapp\u00e9 David E. Narva\u00e9z and Nico Naus. 2024. CF-GKAT: Efficient Validation of Control-Flow Transformations (Artifact). https:\/\/doi.org\/10.5281\/zenodo.13938565 10.5281\/zenodo.13938565","DOI":"10.5281\/zenodo.13938565"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","unstructured":"Yiji Zhang and Lenore D. Zuck. 2018. Formal Verification of Optimizing Compilers. In ICDCIT. 50\u201365. https:\/\/doi.org\/10.1007\/978-3-319-72344-0_3 10.1007\/978-3-319-72344-0_3","DOI":"10.1007\/978-3-319-72344-0_3"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704857","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3704857","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T10:16:28Z","timestamp":1770200188000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704857"}},"issued":{"date-parts":[[2025,1,7]]},"references-count":52,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2025,1,7]]}},"alternative-id":["10.1145\/3704857"],"URL":"https:\/\/doi.org\/10.1145\/3704857","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"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"}}]},{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:11:04Z","timestamp":1784200264247,"version":"3.55.0"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,10,9]]},"abstract":"<jats:p>\n                    Software development is shifting from traditional programming to\n                    <jats:italic toggle=\"yes\">AI-integrated<\/jats:italic>\n                    applications that leverage generative AI and large language models (LLMs) during runtime. However, integrating LLMs remains complex, requiring developers to manually craft prompts and process outputs. Existing tools attempt to assist with prompt engineering, but often introduce additional complexity.\n                  <\/jats:p>\n                  <jats:p>\n                    This paper presents\n                    <jats:bold>Meaning-Typed Programming (MTP)<\/jats:bold>\n                    , a novel paradigm that abstracts LLM integration through intuitive language-level constructs. By leveraging the inherent semantic richness of code, MTP automates prompt generation and response handling without additional developer effort. We introduce the\n                    <jats:bold>(1) by<\/jats:bold>\n                    operator for seamless LLM invocation,\n                    <jats:bold>(2) MT-IR<\/jats:bold>\n                    , a meaning-based intermediate representation for semantic extraction, and\n                    <jats:bold>(3) MT-Runtime<\/jats:bold>\n                    , an automated system for managing LLM interactions. We implement MTP in\n                    <jats:bold>Jac<\/jats:bold>\n                    , a programming language that supersets Python, and find that MTP significantly reduces coding complexity while maintaining accuracy and efficiency. MTP significantly reduces development complexity, lines of code modifications needed, and costs while improving run-time performance and maintaining or exceeding the accuracy of existing approaches. Our user study shows that developers using MTP completed tasks 3.2\u00d7 faster with 45% fewer lines of code compared to existing frameworks. Moreover, MTP demonstrates resilience even when up to 50% of naming conventions are degraded, demonstrating robustness to suboptimal code. MTP is developed as part of the Jaseci open-source project, and is available under the module\n                    <jats:ext-link xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" ext-link-type=\"uri\" xlink:href=\"https:\/\/github.com\/jaseci-labs\/jaseci\/tree\/main\/jac-byllm\">byLLM<\/jats:ext-link>\n                    .\n                  <\/jats:p>","DOI":"10.1145\/3763092","type":"journal-article","created":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T08:51:31Z","timestamp":1759999891000},"page":"1176-1204","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["MTP: A Meaning-Typed Language Abstraction for AI-Integrated Programming"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-4320-8280","authenticated-orcid":false,"given":"Jayanaka L.","family":"Dantanarayana","sequence":"first","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5964-3655","authenticated-orcid":false,"given":"Yiping","family":"Kang","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-4657-4947","authenticated-orcid":false,"given":"Kugesan","family":"Sivasothynathan","sequence":"additional","affiliation":[{"name":"Jaseci Labs, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8741-3155","authenticated-orcid":false,"given":"Christopher","family":"Clarke","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-4812-6303","authenticated-orcid":false,"given":"Baichuan","family":"Li","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-4911-7597","authenticated-orcid":false,"given":"Savini","family":"Kashmira","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-8347-1811","authenticated-orcid":false,"given":"Krisztian","family":"Flautner","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5609-7775","authenticated-orcid":false,"given":"Lingjia","family":"Tang","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7029-5292","authenticated-orcid":false,"given":"Jason","family":"Mars","sequence":"additional","affiliation":[{"name":"University of Michigan, Ann Arbor, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,10,9]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/3617232.3624849"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/SC41404.2022.00051"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620665.3640366"},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/3591300"},{"key":"e_1_3_1_6_2","first-page":"607","article-title":"Magis: Memory optimization via coordinated graph transformation and scheduling for dnn","volume":"3","author":"Chen Renze","year":"2024","unstructured":"Renze Chen, Zijian Ding, Size Zheng, Chengrui Zhang, Jingwen Leng, Xuanzhe Liu, and Yun Liang. 2024. Magis: Memory optimization via coordinated graph transformation and scheduling for dnn. In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3. 607\u2013621.","journal-title":"In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems"},{"key":"e_1_3_1_7_2","unstructured":"Tianqi Chen Thierry Moreau Ziheng Jiang Lianmin Zheng Eddie Q. Yan Haichen Shen Meghan Cowan Leyuan Wang Yuwei Hu Luis Ceze Carlos Guestrin and Arvind Krishnamurthy. 2018. TVM: An Automated End-to-End Optimizing Compiler for Deep Learning. https:\/\/api.semanticscholar.org\/CorpusID:52939079"},{"key":"e_1_3_1_8_2","first-page":"199","volume-title":"In 2022 USENIX Annual Technical Conference (USENIX ATC 22)","author":"Choi Seungbeom","year":"2022","unstructured":"Seungbeom Choi, Sunho Lee, Yeonjae Kim, Jongse Park, Youngjin Kwon, and Jaehyuk Huh. 2022. Serving Heterogeneous Machine Learning Models on Multi-GPU Servers with Spatio-Temporal Sharing. In 2022 USENIX Annual Technical Conference (USENIX ATC 22). USENIX Association, Carlsbad, CA, 199\u2013216. https:\/\/www.usenix.org\/conference\/atc22\/presentation\/choi-seungbeom"},{"key":"e_1_3_1_9_2","unstructured":"Karl Cobbe Vineet Kosaraju Mo Bavarian Mark Chen Heewoo Jun Lukasz Kaiser Matthias Plappert Jerry Tworek Jacob Hilton Reiichiro Nakano Christopher Hesse and John Schulman. 2021. Training Verifiers to Solve Math Word Problems. ArXiv abs\/2110.14168 (2021). https:\/\/api.semanticscholar.org\/CorpusID:239998651"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","unstructured":"Jayanaka Lakindu Dantanarayana Yiping Kang Kugesan Sivasothynathan Christopher Clarke Baichuan Li Savini Kashmira Krisztian Flautner Lingjia Tang and Jason Mars. 2025. Jayanaka-98\/mtllm-oopsla2025: OOPSLA 2025 Artifact. doi:10.5281\/zenodo.16929189","DOI":"10.5281\/zenodo.16929189"},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620665.3640367"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.18653\/v1\/2024.naacl-long.365"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620665.3640365"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/3579371.3589038"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620666.3651383"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","unstructured":"Qijing Huang Minwoo Kang Grace Dinh Thomas Norell Aravind Kalaiah James Demmel John Wawrzynek and Yakun Sophia Shao. 2021. CoSA: Scheduling by Constrained Optimization for Spatial Accelerators. In 2021 ACM\/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). 554\u2013566. doi:10.1109\/ISCA52012.2021.00050","DOI":"10.1109\/ISCA52012.2021.00050"},{"key":"e_1_3_1_17_2","first-page":"463","volume-title":"In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20)","author":"Jiang Yimin","year":"2020","unstructured":"Yimin Jiang, Yibo Zhu, Chang Lan, Bairen Yi, Yong Cui, and Chuanxiong Guo. 2020. A Unified Architecture for Accelerating Distributed DNN Training in Heterogeneous GPU\/CPU Clusters. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). USENIX Association, 463\u2013479. https:\/\/www.usenix.org\/conference\/osdi20\/presentation\/jiang"},{"key":"e_1_3_1_18_2","unstructured":"Omar Khattab Arnav Singhvi Paridhi Maheshwari Zhiyuan Zhang Keshav Santhanam Sri Vardhamanan A Saiful Haq Ashutosh Sharma Thomas T. Joshi Hanna Moazam Heather Miller Matei Zaharia and Christopher Potts. 2024. DSPy: Compiling Declarative Language Model Calls into State-of-the-Art Pipelines. (2024). https:\/\/openreview.net\/forum?id=sY5N0zY5Od"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3623278.3624753"},{"key":"e_1_3_1_20_2","unstructured":"Jaseci Labs. 2024. Jaclang Pypi Package. https:\/\/pypi.org\/project\/jaclang\/ Accessed: 2024-10-18."},{"key":"e_1_3_1_21_2","unstructured":"Jaseci Labs. 2024. Jaseci Github Repo. https:\/\/github.com\/Jaseci-Labs\/jaseci Accessed: 2024-10-18."},{"key":"e_1_3_1_22_2","unstructured":"Langchain. 2024. Langchain. https:\/\/github.com\/langchain-ai\/langchain Accessed: 2024-10-18."},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","unstructured":"Chris Lattner Mehdi Amini Uday Bondhugula Albert Cohen Andy Davis Jacques Pienaar River Riddle Tatiana Shpeisman Nicolas Vasilache and Oleksandr Zinenko. 2021. MLIR: Scaling Compiler Infrastructure for Domain Specific Computation. In 2021 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO). 2\u201314. doi:10.1109\/CGO51591.2021.9370308","DOI":"10.1109\/CGO51591.2021.9370308"},{"key":"e_1_3_1_24_2","unstructured":"Kyla H. Levin Kyle Gwilt Emery D. Berger and Stephen N. Freund. 2025. Effective LLM-Driven Code Generation with Pythoness. arXiv:2501.02138 [cs.PL] https:\/\/arxiv.org\/abs\/2501.02138"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3591280"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.52202\/075280-1516"},{"key":"e_1_3_1_27_2","unstructured":"Jerry Liu. 2022. LlamaIndex. https:\/\/docs.llamaindex.ai\/en\/stable\/"},{"key":"e_1_3_1_28_2","unstructured":"Jason Mars. 2025. Extending Object Spatial Semantics for Scale Agnostic Programming. arXiv:2504.03109 [cs.PL] https:\/\/arxiv.org\/abs\/2504.03109"},{"key":"e_1_3_1_29_2","unstructured":"Jason Mars. 2025. Object-Spatial Programming. arXiv:2503.15812 [cs.PL] https:\/\/arxiv.org\/abs\/2503.15812"},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2023.3274038"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.5555\/1324782"},{"key":"e_1_3_1_32_2","first-page":"932","article-title":"Specinfer: Accelerating large language model serving with tree-based speculative inference and verification","volume":"3","author":"Miao Xupeng","year":"2024","unstructured":"Xupeng Miao, Gabriele Oliaro, Zhihao Zhang, Xinhao Cheng, Zeyu Wang, Zhengxin Zhang, Rae Ying Yee Wong, Alan Zhu, Lijie Yang, Xiaoxiang Shi, et al. 2024. Specinfer: Accelerating large language model serving with tree-based speculative inference and verification. In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3. 932\u2013949.","journal-title":"In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems"},{"key":"e_1_3_1_33_2","first-page":"1112","article-title":"Spotserve: Serving generative large language models on preemptible instances","volume":"2","author":"Miao Xupeng","year":"2024","unstructured":"Xupeng Miao, Chunan Shi, Jiangfei Duan, Xiaoli Xi, Dahua Lin, Bin Cui, and Zhihao Jia. 2024. Spotserve: Serving generative large language models on preemptible instances. In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2. 1112\u20131127.","journal-title":"In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems"},{"key":"e_1_3_1_34_2","unstructured":"Microsoft. [n. d.]. TypeChat: Helps get well-typed responses from language models to build pragmatic natural language interfaces. https:\/\/microsoft.github.io\/TypeChat. Accessed: 2025-08-21."},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454083"},{"key":"e_1_3_1_36_2","first-page":"369","article-title":"Exegpt: Constraint-aware resource scheduling for llm inference","volume":"2","author":"Oh Hyungjun","year":"2024","unstructured":"Hyungjun Oh, Kihong Kim, Jaemin Kim, Sungkyun Kim, Junyeol Lee, Du-seong Chang, and Jiwon Seo. 2024. Exegpt: Constraint-aware resource scheduling for llm inference. In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2. 369\u2013384.","journal-title":"In Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems"},{"key":"e_1_3_1_37_2","unstructured":"OpenAI. 2024. OpenAI API Pricing. https:\/\/openai.com\/api\/pricing\/ Accessed: 2024-10-18."},{"key":"e_1_3_1_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/3623278.3624761"},{"key":"e_1_3_1_39_2","unstructured":"Python Software Foundation. 2024. The Python Standard Library: cProfile \u2013 Profile Module. https:\/\/docs.python.org\/3\/library\/profile.html#module-cProfile Accessed: 2024-10-19."},{"key":"e_1_3_1_40_2","unstructured":"Nadav Rotem Jordan Fix Saleem Abdulrasool Garret Catron Summer Deng Roman Dzhabarov Nick Gibson James Hegeman Meghan Lele Roman Levenstein Jack Montgomery Bert Maher Satish Nadathur Jakob Olesen Jongsoo Park Artem Rakhov Misha Smelyanskiy and Man Wang. 2019. Glow: Graph Lowering Compiler Techniques for Neural Networks. (2019). arXiv:1805.00907 [cs.PL] https:\/\/arxiv.org\/abs\/1805.00907"},{"key":"e_1_3_1_41_2","unstructured":"Reshabh K Sharma Jonathan De Halleux Shraddha Barke and Benjamin Zorn. 2025. PromptPex: Automatic Test Generation for Language Model Prompts. (2025). arXiv:2503.05070 [cs.SE] https:\/\/arxiv.org\/abs\/2503.05070"},{"key":"e_1_3_1_42_2","unstructured":"ShawCode. 2021. Pygame RPG Tutorial. YouTube. https:\/\/www.youtube.com\/playlist?list=PLkkm3wcQHjT7gn81Wne78cAyhwBW3FIc Accessed: 2024-09-24."},{"key":"e_1_3_1_43_2","unstructured":"Shakti N. Wadekar Abhishek Chaurasia Aman Chadha and Eugenio Culurciello. 2024. The Evolution of Multimodal Model Architectures. (2024). arXiv:2405.17927 [cs.AI] https:\/\/arxiv.org\/abs\/2405.17927"},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","unstructured":"Jianxun Wang and Yixiang Chen. 2023. A Review on Code Generation with LLMs: Application and Evaluation. In 2023 IEEE International Conference on Medical Artificial Intelligence (MedAI). 284\u2013289. doi:10.1109\/MedAI59581.2023.00044","DOI":"10.1109\/MedAI59581.2023.00044"},{"key":"e_1_3_1_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620665.3640406"},{"key":"e_1_3_1_46_2","unstructured":"Irene Weber. 2024. Large Language Models as Software Components: A Taxonomy for LLM-Integrated Applications. (2024). arXiv:2406.10300 [cs.SE] https:\/\/arxiv.org\/abs\/2406.10300"},{"key":"e_1_3_1_47_2","unstructured":"Brandon T. Willard and R\u00e9mi Louf. 2023. Efficient Guided Generation for Large Language Models. (2023). arXiv:2307.09702 [cs.CL] https:\/\/arxiv.org\/abs\/2307.09702"},{"key":"e_1_3_1_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/3617232.3624858"},{"key":"e_1_3_1_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3617232.3624847"},{"key":"e_1_3_1_50_2","unstructured":"An Yang Baosong Yang Binyuan Hui Bo Zheng Bowen Yu Chang Zhou Chengpeng Li Chengyuan Li Dayiheng Liu Fei Huang Guanting Dong Haoran Wei Huan Lin Jialong Tang Jialin Wang Jian Yang Jianhong Tu Jianwei Zhang Jianxin Ma Jianxin Yang Jin Xu Jingren Zhou Jinze Bai Jinzheng He Junyang Lin Kai Dang Keming Lu Keqin Chen Kexin Yang Mei Li Mingfeng Xue Na Ni Pei Zhang Peng Wang Ru Peng Rui Men Ruize Gao Runji Lin Shijie Wang Shuai Bai Sinan Tan Tianhang Zhu Tianhao Li Tianyu Liu Wenbin Ge Xiaodong Deng Xiaohuan Zhou Xingzhang Ren Xinyu Zhang Xipin Wei Xuancheng Ren Xuejing Liu Yang Fan Yang Yao Yichang Zhang Yu Wan Yunfei Chu Yuqiong Liu Zeyu Cui Zhenru Zhang Zhifang Guo and Zhihao Fan. 2024. Qwen2 Technical Report. arXiv:2407.10671 [cs.CL] https:\/\/arxiv.org\/abs\/2407.10671"},{"key":"e_1_3_1_51_2","first-page":"521","volume-title":"In 16th USENIX Symposium on Operating Systems Design and Implementation (OSDI 22)","author":"Yu Gyeong-In","year":"2022","unstructured":"Gyeong-In Yu, Joo Seong Jeong, Geon-Woo Kim, Soojeong Kim, and Byung-Gon Chun. 2022. Orca: A Distributed Serving System for Transformer-Based Generative Models. In 16th USENIX Symposium on Operating Systems Design and Implementation (OSDI 22). USENIX Association, Carlsbad, CA, 521\u2013538. https:\/\/www.usenix.org\/conference\/ osdi22\/presentation\/yu"},{"key":"e_1_3_1_52_2","doi-asserted-by":"publisher","DOI":"10.14778\/3514061.3514069"},{"key":"e_1_3_1_53_2","doi-asserted-by":"crossref","unstructured":"Lianmin Zheng Wei-Lin Chiang Ying Sheng Siyuan Zhuang Zhanghao Wu Yonghao Zhuang Zi Lin Zhuohan Li Dacheng Li Eric P. Xing Hao Zhang Joseph E. Gonzalez and Ion Stoica. 2023. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. Article 2020 (2023) 29 pages.","DOI":"10.52202\/075280-2020"},{"key":"e_1_3_1_54_2","first-page":"863","volume-title":"In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20)","author":"Zheng Lianmin","year":"2020","unstructured":"Lianmin Zheng, Chengfan Jia, Minmin Sun, Zhao Wu, Cody Hao Yu, Ameer Haj-Ali, Yida Wang, Jun Yang, Danyang Zhuo, Koushik Sen, Joseph E. Gonzalez, and Ion Stoica. 2020. Ansor: Generating High-Performance Tensor Programs for Deep Learning. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). USENIX Association, 863\u2013879. https:\/\/www.usenix.org\/conference\/osdi20\/presentation\/zheng"},{"key":"e_1_3_1_55_2","unstructured":"Lianmin Zheng Liangsheng Yin Zhiqiang Xie Chuyue Sun Jeff Huang Cody Hao Yu Shiyi Cao Christos Kozyrakis Ion Stoica Joseph E. Gonzalez Clark Barrett and Ying Sheng. 2025. SGLang: Efficient Execution of Structured Language Model Programs. Article 2000 (2025) 27 pages."},{"key":"e_1_3_1_56_2","doi-asserted-by":"publisher","DOI":"10.1145\/3620666.3651336"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3763092","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:13:33Z","timestamp":1784196813000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3763092"}},"issued":{"date-parts":[[2025,10,9]]},"references-count":55,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2025,10,9]]}},"alternative-id":["10.1145\/3763092"],"URL":"https:\/\/doi.org\/10.1145\/3763092","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2025,10,9]]},"assertion":[{"value":"2025-03-25","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-08-12","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-10-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T23:34:09Z","timestamp":1770248049619,"version":"3.49.0"},"reference-count":64,"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\/"}],"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                    Embedding Multimode Type Theory (MTT) as a library enables the usage of additional reasoning principles in off-the-shelf proof assistants without risking soundness or compatibility. Moreover, by interpreting embedded MTT terms in an internally constructed model of MTT, we can extract programs and proofs to the meta language and obtain interoperability between the embedded language and the metalanguage. The existing Sikkel library for Agda achieves this for Multimode\n                    <jats:italic toggle=\"yes\">Simple<\/jats:italic>\n                    Type Theory (MSTT) with an internal presheaf model of\n                    <jats:italic toggle=\"yes\">dependent<\/jats:italic>\n                    MTT. In this work, we add, on top of the simply-typed layer, a logical framework in which users can write multimode proofs about multimode Sikkel programs, still in an off-the-shelf proof assistant. To this end, we carve out of MTT a new multimode logical framework \u00b5LF over MSTT and implement it on top of Sikkel, interpreting both in the existing internal model. In the process, we further extend and improve the original codebase for each of the three layers (syntax, semantics and extraction) of Sikkel. We demonstrate the use of \u00b5LF by proving some properties about functions manipulating guarded streams and by implementing an example involving parametricity predicates.\n                  <\/jats:p>","DOI":"10.1145\/3704844","type":"journal-article","created":{"date-parts":[[2025,1,9]],"date-time":"2025-01-09T05:48:42Z","timestamp":1736401722000},"page":"210-240","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["BiSikkel: A Multimode Logical Framework in Agda"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9582-0789","authenticated-orcid":false,"given":"Joris","family":"Ceulemans","sequence":"first","affiliation":[{"name":"KU Leuven, Leuven, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1571-5063","authenticated-orcid":false,"given":"Andreas","family":"Nuyts","sequence":"additional","affiliation":[{"name":"KU Leuven, Leuven, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3862-6856","authenticated-orcid":false,"given":"Dominique","family":"Devriese","sequence":"additional","affiliation":[{"name":"KU Leuven, Leuven, Belgium"}],"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","DOI":"10.1016\/j.tcs.2005.06.002"},{"key":"e_1_3_2_3_1","volume-title":"A Polymorphic Lambda-Calculus with Sized Higher-Order Types","author":"Abel Andreas","year":"2006","unstructured":"Andreas Abel. 2006. A Polymorphic Lambda-Calculus with Sized Higher-Order Types. Ph. D. Dissertation. Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen."},{"key":"e_1_3_2_4_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129508006853"},{"key":"e_1_3_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158111"},{"key":"e_1_3_2_6_1","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-8(1:29)2012"},{"key":"e_1_3_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110277"},{"key":"e_1_3_2_8_1","unstructured":"The Agda Community. 2024. A Standard Library for Cubical Agda. https:\/\/github.com\/agda\/cubical"},{"key":"e_1_3_2_9_1","unstructured":"The Agda Development Team. 2024. Agda. https:\/\/wiki.portal.chalmers.se\/agda"},{"key":"e_1_3_2_10_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000076"},{"key":"e_1_3_2_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-71995-1_1"},{"key":"e_1_3_2_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89366-2_16"},{"key":"e_1_3_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837638"},{"key":"e_1_3_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1292597.1292608"},{"key":"e_1_3_2_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2009.33"},{"key":"e_1_3_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500597"},{"key":"e_1_3_2_17_1","unstructured":"Jeremy Avigad Leonardo de Moura and Soonho Kong. 2017. Theorem Proving in Lean. https:\/\/leanprover.github.io\/theorem_proving_in_lean\/index.html"},{"key":"e_1_3_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78499-9_26"},{"key":"e_1_3_2_19_1","first-page":"65","article-title":"Strict Syntax of Type Theory via Alpha-normalisation","author":"Bense Viktor","year":"2024","unstructured":"Viktor Bense, Ambrus Kaposi, and Szumi Xie. 2024. Strict Syntax of Type Theory via Alpha-normalisation. In 30th International Conference on Types for Proofs and Programs (TYPES). 65\u201367. https:\/\/types2024.itu.dk\/abstracts.pdf#page=75","journal-title":"30th International Conference on Types for Proofs and Programs (TYPES)"},{"key":"e_1_3_2_20_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129519000197"},{"key":"e_1_3_2_21_1","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-8(4:1)2012"},{"key":"e_1_3_2_22_1","doi-asserted-by":"publisher","DOI":"10.1016\/0168-0072(86)90053-9"},{"key":"e_1_3_2_23_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.360.5"},{"key":"e_1_3_2_24_1","unstructured":"Joris Ceulemans Andreas Nuyts and Dominique Devriese. 2024a. BiSikkel. https:\/\/github.com\/JorisCeulemans\/bisikkel"},{"key":"e_1_3_2_25_1","doi-asserted-by":"publisher","unstructured":"Joris Ceulemans Andreas Nuyts and Dominique Devriese. 2024b. BiSikkel (a multimode logical framework in Agda) VM. https:\/\/doi.org\/10.5281\/zenodo.13939916 10.5281\/zenodo.13939916","DOI":"10.5281\/zenodo.13939916"},{"key":"e_1_3_2_26_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.TYPES.2023.4"},{"key":"e_1_3_2_27_1","doi-asserted-by":"publisher","unstructured":"James Chapman. 2009. Type Theory Should Eat Itself. Electronic Notes in Theoretical Computer Science 228 (2009) 21\u201336. https:\/\/doi.org\/10.1016\/j.entcs.2008.12.114 10.1016\/j.entcs.2008.12.114 Proceedings of the International Workshop on Logical Frameworks and Metalangu ages: Theory and Practice (LFMTP 2008).","DOI":"10.1016\/j.entcs.2008.12.114"},{"key":"e_1_3_2_28_1","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-12(3:7)2016"},{"key":"e_1_3_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692915.2628139"},{"key":"e_1_3_2_30_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.TYPES.2015.5"},{"key":"e_1_3_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498715"},{"key":"e_1_3_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3531130.3532398"},{"key":"e_1_3_2_33_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.FSCD.2022.23"},{"key":"e_1_3_2_34_1","doi-asserted-by":"publisher","DOI":"10.46298\/lmcs-17(3:11)2021"},{"key":"e_1_3_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3209108.3209148"},{"key":"e_1_3_2_36_1","unstructured":"Martin Hofmann. 1995. Extensional Concepts in Intensional Type Theory. Ph. D. Dissertation. University of Edinburgh. College of Science and Engineering. https:\/\/era.ed.ac.uk\/handle\/1842\/399"},{"key":"e_1_3_2_37_1","first-page":"79","volume-title":"Syntax and Semantics of Dependent Types","author":"Hofmann Martin","year":"1997","unstructured":"Martin Hofmann. 1997. Syntax and Semantics of Dependent Types. Cambridge University Press, Cambridge, Chapter 4, 79\u2013130."},{"key":"e_1_3_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3437992.3439922"},{"key":"e_1_3_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2933575.2935320"},{"key":"e_1_3_2_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2012.49"},{"key":"e_1_3_2_41_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2011.09.026"},{"key":"e_1_3_2_42_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.FSCD.2018.22"},{"key":"e_1_3_2_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-27683-0_16"},{"key":"e_1_3_2_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45413-6_27"},{"key":"e_1_3_2_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78499-9_2"},{"key":"e_1_3_2_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2000.855774"},{"key":"e_1_3_2_47_1","unstructured":"nLab authors. 2024. Functoriality of Categories of Presheaves. https:\/\/ncatlab.org\/nlab\/show\/functoriality+of+categories+of+presheaves Revision 7."},{"key":"e_1_3_2_48_1","unstructured":"Paige Randall North. 2018. Towards a Directed Homotopy Type Theory. CoRR abs\/1807.10566 (2018) 17 pages. arXiv:1807.10566 http:\/\/arxiv.org\/abs\/1807.10566"},{"key":"e_1_3_2_49_1","unstructured":"Andreas Nuyts. 2023a. Higher Pro-arrows: Towards a Model for Naturality Pretype Theory. In Workshop on Homotopy Type Theory \/ Univalent Foundations. 4 pages. https:\/\/hott-uf.github.io\/2023\/HoTTUF_2023_paper_1410.pdf"},{"key":"e_1_3_2_50_1","unstructured":"Andreas Nuyts. 2023b. A Lock Calculus for Multimode Type Theory. In 29th International Conference on Types for Proofs and Programs (TYPES). 3 pages. https:\/\/lirias.kuleuven.be\/retrieve\/720873"},{"key":"e_1_3_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3209108.3209119"},{"key":"e_1_3_2_52_1","first-page":"4","article-title":"Menkar: Towards a Multimode Presheaf Proof Assistant","author":"Nuyts Andreas","year":"2019","unstructured":"Andreas Nuyts and Dominique Devriese. 2019. Menkar: Towards a Multimode Presheaf Proof Assistant. In TYPES. 4 pages. https:\/\/www.ii.uib.no\/~bezem\/abstracts\/TYPES_2019_paper_33","journal-title":"TYPES"},{"key":"e_1_3_2_53_1","doi-asserted-by":"publisher","DOI":"10.46298\/lmcs-20(2:16)2024"},{"key":"e_1_3_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110276"},{"key":"e_1_3_2_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2001.932499"},{"key":"e_1_3_2_56_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129501003322"},{"key":"e_1_3_2_57_1","unstructured":"Josselin Poiret Lucas Escot Joris Ceulemans Malin Altenm\u00fcller and Andreas Nuyts. 2023. Read the Mode and Stay Positive. In 29th International Conference on Types for Proofs and Programs (TYPES). 3 pages. https:\/\/lirias.kuleuven.be\/retrieve\/720869"},{"key":"e_1_3_2_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/10930755_16"},{"key":"e_1_3_2_59_1","first-page":"513","volume-title":"Information Processing 83, Proceedings of the IFIP 9th World Computer Congress, Paris, France, September 19-23, 1983","author":"Reynolds John C","year":"1983","unstructured":"John C. Reynolds. 1983. Types, Abstraction and Parametric Polymorphism. In Information Processing 83, Proceedings of the IFIP 9th World Computer Congress, Paris, France, September 19-23, 1983, R. E. A. Mason (Ed.). North-Holland\/IFIP, Amsterdam, 513\u2013523."},{"key":"e_1_3_2_60_1","doi-asserted-by":"publisher","DOI":"10.46298\/entics.12300"},{"key":"e_1_3_2_61_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.TYPES.2022.6"},{"key":"e_1_3_2_62_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.FSCD.2019.31"},{"key":"e_1_3_2_63_1","unstructured":"The Univalent Foundations Program. 2013. Homotopy Type Theory: Univalent Foundations of Mathematics. http:\/\/homotopytypetheory.org\/book Institute for Advanced Study."},{"key":"e_1_3_2_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/3372885.3373814"},{"key":"e_1_3_2_65_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796821000034"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704844","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3704844","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T10:14:45Z","timestamp":1770200085000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3704844"}},"issued":{"date-parts":[[2025,1,7]]},"references-count":64,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2025,1,7]]}},"alternative-id":["10.1145\/3704844"],"URL":"https:\/\/doi.org\/10.1145\/3704844","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"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"}}]},{"indexed":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T20:20:28Z","timestamp":1770236428443,"version":"3.49.0"},"reference-count":56,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2024,8,15]],"date-time":"2024-08-15T00:00:00Z","timestamp":1723680000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Hong Kong Research Grant Council","award":["26208821"],"award-info":[{"award-number":["26208821"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,8,15]]},"abstract":"<jats:p>\n                    Deforestation is a compiler optimization that removes intermediate data structure allocations from functional programs to improve their efficiency. This is an old idea, but previous approaches have proved limited or impractical \u2014 they either only worked on compositions of predefined combinators (shortcut fusion), or involved the aggressive unfolding of recursive definitions until a depth limit was reached or a reoccurring pattern was found to tie the recursive knot, resulting in impractical algorithmic complexity and large amounts of code duplication. We present Lumberhack, a general-purpose deforestation approach for purely functional call-by-need\n                    <jats:italic toggle=\"yes\">and<\/jats:italic>\n                    call-by-value programs. Lumberhack uses subtype inference to reason about data structure production and consumption and uses an elaboration pass to fuse the corresponding recursive definitions. It fuses large classes of mutually recursive definitions while avoiding much of the unproductive (and sometimes counter-productive) code duplication inherent in previous approaches. We prove the soundness of Lumberhack using step-indexed logical relations and experimentally demonstrate significant speedups in the standard\n                    <jats:italic toggle=\"yes\">nofib<\/jats:italic>\n                    benchmark suite. We manually adapted\n                    <jats:italic toggle=\"yes\">nofib<\/jats:italic>\n                    programs to call-by-value semantics and compiled them using the OCaml compiler. The average speedup over the 38 benchmarked programs is\n                    <jats:inline-formula>\n                      <mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"inline\">\n                        <mml:mrow>\n                          <mml:mn>8.2<\/mml:mn>\n                          <mml:mo>%<\/mml:mo>\n                        <\/mml:mrow>\n                      <\/mml:math>\n                    <\/jats:inline-formula>\n                    while the average code size increases by just about\n                    <jats:inline-formula>\n                      <mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"inline\">\n                        <mml:mn>1<\/mml:mn>\n                        <mml:mo>.<\/mml:mo>\n                        <mml:mn>79<\/mml:mn>\n                        <mml:mtext>x<\/mml:mtext>\n                      <\/mml:math>\n                    <\/jats:inline-formula>\n                    . In particular, 19 programs see their performance mostly unchanged, 17 programs improve significantly (by an average speedup of\n                    <jats:inline-formula>\n                      <mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"inline\">\n                        <mml:mrow>\n                          <mml:mn>16.6<\/mml:mn>\n                          <mml:mo>%<\/mml:mo>\n                        <\/mml:mrow>\n                      <\/mml:math>\n                    <\/jats:inline-formula>\n                    ), and only two programs visibly worsen (by an average slowdown of\n                    <jats:inline-formula>\n                      <mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"inline\">\n                        <mml:mrow>\n                          <mml:mn>1.8<\/mml:mn>\n                          <mml:mo>%<\/mml:mo>\n                        <\/mml:mrow>\n                      <\/mml:math>\n                    <\/jats:inline-formula>\n                    ). As a point of comparison, we measured that the well-proven but\n                    <jats:italic toggle=\"yes\">semi-manual<\/jats:italic>\n                    list fusion technique of the Glasgow Haskell Compiler (GHC), which only works for call-by-need programs, had an average speedup of\n                    <jats:inline-formula>\n                      <mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"inline\">\n                        <mml:mrow>\n                          <mml:mn>6.5<\/mml:mn>\n                          <mml:mo>%<\/mml:mo>\n                        <\/mml:mrow>\n                      <\/mml:math>\n                    <\/jats:inline-formula>\n                    . Our technique is still in its infancy and misses some deforestation opportunities. We are confident that further refinements will yield greater performance improvements in the future.\n                  <\/jats:p>","DOI":"10.1145\/3674634","type":"journal-article","created":{"date-parts":[[2024,8,15]],"date-time":"2024-08-15T12:49:04Z","timestamp":1723726144000},"page":"249-283","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["The Long Way to Deforestation: A Type Inference and Elaboration Technique for Removing Intermediate Data Structures"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0009-0006-1273-8055","authenticated-orcid":false,"given":"Yijia","family":"Chen","sequence":"first","affiliation":[{"name":"The Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8805-0728","authenticated-orcid":false,"given":"Lionel","family":"Parreaux","sequence":"additional","affiliation":[{"name":"The Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,8,15]]},"reference":[{"key":"e_1_3_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_6"},{"key":"e_1_3_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/504709.504712"},{"key":"e_1_3_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863523.1863540"},{"key":"e_1_3_1_5_1","doi-asserted-by":"publisher","DOI":"10.48456\/tr-835"},{"key":"e_1_3_1_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2017.03.001"},{"key":"e_1_3_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/321992.321996"},{"key":"e_1_3_1_8_1","doi-asserted-by":"publisher","unstructured":"YijiaChen and LionelParreaux. 2024. The Long Way to Deforestation: A Type Inference and Elaboration Technique for Removing Intermediate Data Structures (Artifact). https:\/\/doi.org\/10.5281\/zenodo.11500626 10.5281\/zenodo.11500626","DOI":"10.5281\/zenodo.11500626"},{"key":"e_1_3_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/141478.141494"},{"key":"e_1_3_1_10_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800001179"},{"key":"e_1_3_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/647978.743362"},{"key":"e_1_3_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1291151.1291199"},{"key":"e_1_3_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/3180976"},{"key":"e_1_3_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3093333.3009882"},{"key":"e_1_3_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408986"},{"key":"e_1_3_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-62503-8_12"},{"key":"e_1_3_1_17_1","article-title":"Programming with polymorphic variants","author":"Garrigue Jacques","year":"1998","unstructured":"JacquesGarrigue. 1998. Programming with polymorphic variants. ACM Workshop on ML. https:\/\/caml.inria.fr\/pub\/papers\/garrigue-polymorphic_variants-ml98.pdf","journal-title":"ACM Workshop on ML"},{"key":"e_1_3_1_18_1","article-title":"Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity","author":"Gibbons Jeremy","year":"2021","unstructured":"JeremyGibbons. 2021. Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity. arXiv preprint arXiv:2111.10413(2021).","journal-title":"arXiv preprint arXiv:2111.10413"},{"key":"e_1_3_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165214"},{"key":"e_1_3_1_20_1","volume-title":"Cheap deforestation for non-strict functional languages. Ph. D. Dissertation","author":"Gill Andrew John","year":"1996","unstructured":"Andrew JohnGill. 1996. Cheap deforestation for non-strict functional languages. Ph. D. Dissertation. University of Glasgow."},{"key":"e_1_3_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/646451.692805"},{"key":"e_1_3_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1244381.1244391"},{"key":"e_1_3_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-3196-0_11"},{"key":"e_1_3_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/232629.232637"},{"key":"e_1_3_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480916"},{"key":"e_1_3_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1929501.1929507"},{"key":"e_1_3_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/224164.224223"},{"key":"e_1_3_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/291891.291892"},{"key":"e_1_3_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-49727-7_14"},{"key":"e_1_3_1_30_1","unstructured":"John W.Lloyd. 1995. An Algorithm of Generalization in Positive Supercompilation. 465\u2013479."},{"key":"e_1_3_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0019-9958(86)80019-5"},{"key":"e_1_3_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-3215-8_14"},{"key":"e_1_3_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2187671.2187672"},{"key":"e_1_3_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863588"},{"key":"e_1_3_1_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-85373-2_9"},{"key":"e_1_3_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190241"},{"key":"e_1_3_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-387-35264-0_4"},{"key":"e_1_3_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268963"},{"key":"e_1_3_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3409006"},{"key":"e_1_3_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3563304"},{"key":"e_1_3_1_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-3215-8_17"},{"key":"e_1_3_1_42_1","volume-title":"Compiling Haskell by Program Transformation: A Report from the Trenches (lecture notes in computer science ed.)","author":"Peyton Jones Simon","year":"1996","unstructured":"SimonPeyton Jones. 1996. Compiling Haskell by Program Transformation: A Report from the Trenches (lecture notes in computer science ed.). Vol. 1058. Springer. https:\/\/www.microsoft.com\/en-us\/research\/publication\/compiling-haskell-by-program-transformation-a-report-from-the-trenches\/"},{"key":"e_1_3_1_43_1","volume-title":"2001 Haskell Workshop (2001 haskell workshop ed.)","author":"Peyton Jones Simon","year":"2001","unstructured":"SimonPeyton Jones, AndrewTolmach, and TonyHoare. 2001. Playing by the rules: rewriting as a practical optimisation technique in GHC. In 2001 Haskell Workshop (2001 haskell workshop ed.). ACM SIGPLAN. https:\/\/www.microsoft.com\/en-us\/research\/publication\/playing-by-the-rules-rewriting-as-a-practical-optimisation-technique-in-ghc\/"},{"key":"e_1_3_1_44_1","doi-asserted-by":"publisher","DOI":"10.5555\/1096899"},{"key":"e_1_3_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/53990.54010"},{"key":"e_1_3_1_46_1","volume-title":"Type Inference in the Presence of Subtyping: from Theory to Practice","author":"Pottier Fran\u00e7ois","year":"1998","unstructured":"Fran\u00e7oisPottier. 1998. Type Inference in the Presence of Subtyping: from Theory to Practice. Research Report RR-3483. INRIA. https:\/\/hal.inria.fr\/inria-00073205"},{"key":"e_1_3_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/373243.360208"},{"key":"e_1_3_1_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-46562-6_10"},{"key":"e_1_3_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535861"},{"key":"e_1_3_1_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-46425-5_25"},{"key":"e_1_3_1_51_1","volume-title":"Master\u2019s thesis, Department of Computer Science","author":"S\u00f8rensen Morten Heine","year":"1994","unstructured":"Morten HeineS\u00f8rensen. 1994. Turchin\u2019s supercompiler revisited. Master\u2019s thesis, Department of Computer Science, University of Copenhagen(1994)."},{"key":"e_1_3_1_52_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-57880-3_32"},{"key":"e_1_3_1_53_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800002008"},{"key":"e_1_3_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/581478.581491"},{"key":"e_1_3_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/5956.5957"},{"key":"e_1_3_1_56_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(90)90147-A"},{"key":"e_1_3_1_57_1","unstructured":"Dana NXu and SimonPeyton Jones. 2005. Arity analysis. Unpublished draft(2005). https:\/\/gallium.inria.fr\/~naxu\/research\/arity.pdf"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3674634","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3674634","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T07:50:43Z","timestamp":1770191443000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3674634"}},"issued":{"date-parts":[[2024,8,15]]},"references-count":56,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2024,8,15]]}},"alternative-id":["10.1145\/3674634"],"URL":"https:\/\/doi.org\/10.1145\/3674634","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2024,8,15]]},"assertion":[{"value":"2024-02-28","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-06-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-08-15","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2025,7,5]],"date-time":"2025-07-05T04:12:37Z","timestamp":1751688757531,"version":"3.41.0"},"reference-count":33,"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":["CCF-2107289, CCF-2007784, CNS-2314323"],"award-info":[{"award-number":["CCF-2107289, CCF-2007784, CNS-2314323"]}],"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>\n            Parallel programs are frequently modeled as\n            <jats:italic toggle=\"yes\">dependency<\/jats:italic>\n            or\n            <jats:italic toggle=\"yes\">cost<\/jats:italic>\n            graphs, which can be used to detect various bugs, or simply to visualize the parallel structure of the code. However, such graphs reflect just one particular execution and are typically constructed in a\n            <jats:italic toggle=\"yes\">post-hoc<\/jats:italic>\n            manner.\n            <jats:italic toggle=\"yes\">Graph types<\/jats:italic>\n            , which were introduced recently to mitigate this problem, can be assigned statically to a program by a type system and compactly represent the family of all graphs that could result from the program.\n          <\/jats:p>\n          <jats:p>\n            Unfortunately, prior work is restricted in its treatment of\n            <jats:italic toggle=\"yes\">futures<\/jats:italic>\n            , an increasingly common and especially dynamic form of parallelism. In short, each instance of a future must be statically paired with a vertex name. Previously, this led to the restriction that futures could not be placed in collections or be used to construct data structures. Doing so is not a niche exercise: such structures form the basis of numerous algorithms that use forms of pipelining to achieve performance not attainable without futures. All but the most limited of these examples are out of reach of prior graph type systems.\n          <\/jats:p>\n          <jats:p>\n            In this paper, we propose a graph type system that allows for almost arbitrary combinations of futures and recursive data types. We do so by indexing datatypes with a type-level\n            <jats:italic toggle=\"yes\">vertex structure<\/jats:italic>\n            , a codata structure that supplies unique vertex names to the futures in a data structure. We prove the soundness of the system in a parallel core calculus annotated with vertex structures and associated operations. Although the calculus is annotated, this is merely for convenience in defining the type system. We prove that it is possible to annotate arbitrary recursive types with vertex structures, and show using a prototype inference engine that these annotations can be inferred from OCaml-like source code for several complex parallel algorithms.\n          <\/jats:p>","DOI":"10.1145\/3632859","type":"journal-article","created":{"date-parts":[[2024,1,5]],"date-time":"2024-01-05T20:48:51Z","timestamp":1704487731000},"page":"482-511","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Pipelines and Beyond: Graph Types for ADTs with Futures"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0009-0005-0007-0898","authenticated-orcid":false,"given":"Francis","family":"Rinaldi","sequence":"first","affiliation":[{"name":"Illinois Institute of Technology, Chicago, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3280-9731","authenticated-orcid":false,"given":"june","family":"wunder","sequence":"additional","affiliation":[{"name":"Boston University, Boston, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9916-6614","authenticated-orcid":false,"given":"Arthur","family":"Azevedo de Amorim","sequence":"additional","affiliation":[{"name":"Rochester Institute of Technology, Rochester, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3210-9727","authenticated-orcid":false,"given":"Stefan K.","family":"Muller","sequence":"additional","affiliation":[{"name":"Illinois Institute of Technology, Chicago, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,1,5]]},"reference":[{"key":"e_1_3_1_2_1","unstructured":"[n.d.]. The Rust language. https:\/\/www.rust-lang.org. Accessed: 2023-07-07."},{"key":"e_1_3_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01088832"},{"key":"e_1_3_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1147403.1147416"},{"key":"e_1_3_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498698"},{"key":"e_1_3_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/224164.224210"},{"key":"e_1_3_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/232627.232650"},{"key":"e_1_3_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/258492.258517"},{"key":"e_1_3_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48046-3_17"},{"key":"e_1_3_1_10_1","doi-asserted-by":"publisher","unstructured":"Jingde Cheng. 1993. Process dependence net of distributed programs and its applications in development of distributed systems. In Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC \u201993. 231\u2013240. https:\/\/doi.org\/10.1109\/CMPSAC.1993.404187 10.1109\/CMPSAC.1993.404187","DOI":"10.1109\/CMPSAC.1993.404187"},{"key":"e_1_3_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3229060"},{"key":"e_1_3_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_2"},{"key":"e_1_3_1_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/1097-024X(200009)30:11<1203::AID-SPE338>3.0.CO;2-N"},{"key":"e_1_3_1_14_1","first-page":"87","volume-title":"Advanced Topics in Types and Programming Languages","author":"Henglein Fritz","year":"2005","unstructured":"Fritz Henglein, Henning Makholm, and Henning Niss. 2005. Effect Types and Region-Based Memory Management. In Advanced Topics in Types and Programming Languages, Benjamin C. Pierce (Ed.). MIT Press, Cambridge, Massachusetts, Chapter 3, 87\u2013135."},{"key":"e_1_3_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2808098.2808100"},{"key":"e_1_3_1_16_1","first-page":"275","volume-title":"Proceedings of the General Track of the Annual Conference on USENIX Annual Technical Conference (ATEC \u201902)","author":"Jim Trevor","year":"2002","unstructured":"Trevor Jim, J. Greg Morrisett, Dan Grossman, Michael W. Hicks, James Cheney, and Yanling Wang. 2002. Cyclone: A Safe Dialect of C. In Proceedings of the General Track of the Annual Conference on USENIX Annual Technical Conference (ATEC \u201902). USENIX Association, USA, 275\u2013288."},{"key":"e_1_3_1_17_1","doi-asserted-by":"publisher","DOI":"10.1137\/0114108"},{"key":"e_1_3_1_18_1","doi-asserted-by":"publisher","unstructured":"Y. Kasahara Y. Nomura M. Kamachi J. Cheng and K. Ushijima. 1995. An integrated support environment for distributed software development based on unified program representations. In Proceedings 1995 Asia Pacific Software Engineering Conference. 254\u2013263. https:\/\/doi.org\/10.1109\/APSEC.1995.496974 10.1109\/APSEC.1995.496974","DOI":"10.1109\/APSEC.1995.496974"},{"key":"e_1_3_1_19_1","doi-asserted-by":"publisher","unstructured":"Oleg Kiselyov Ralf L\u00e4mmel and Keean Schupke. 2004. Strongly typed heterogeneous collections. Proceedings of the ACM SIGPLAN 2004 Haskell Workshop Haskell\u201904 (2004) 96\u2013107. https:\/\/doi.org\/10.1145\/1017472.1017488 10.1145\/1017472.1017488","DOI":"10.1145\/1017472.1017488"},{"key":"e_1_3_1_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(87)90102-5"},{"key":"e_1_3_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-50029-0_8"},{"key":"e_1_3_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523443"},{"key":"e_1_3_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498708"},{"key":"e_1_3_1_24_1","doi-asserted-by":"publisher","DOI":"10.1017\/S095679682100023X"},{"key":"e_1_3_1_25_1","unstructured":"Francis Rinaldi june wunder Arthur Aevedo De Amorim and Stefan K. Muller. 2023. Pipelines and Beyond: Graph Types for ADTs with Futures. arXiv: 2311.06984 [cs.PL]"},{"key":"e_1_3_1_26_1","volume-title":"A Graph Model for Parallel Computations","author":"Bezos Jorge E Rodriguez","year":"1969","unstructured":"Jorge E Rodriguez Bezos. 1969. A Graph Model for Parallel Computations. Ph. D. Dissertation. Massachusetts Institute of Technology, Cambridge, Massachusetts."},{"key":"e_1_3_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408995"},{"key":"e_1_3_1_28_1","volume-title":"Scheduling Deterministic Parallel Programs","author":"Spoonhower Daniel","year":"2009","unstructured":"Daniel Spoonhower. 2009. Scheduling Deterministic Parallel Programs. Ph. D. Dissertation. Carnegie Mellon University, Pittsburgh, PA, USA."},{"key":"e_1_3_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951929"},{"key":"e_1_3_1_30_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_3_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"},{"key":"e_1_3_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292560"},{"key":"e_1_3_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103786.2103795"},{"key":"e_1_3_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(97)00062-5"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632859","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632859","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632859","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T20:03:45Z","timestamp":1751659425000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632859"}},"issued":{"date-parts":[[2024,1,2]]},"references-count":33,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2024,1,2]]}},"alternative-id":["10.1145\/3632859"],"URL":"https:\/\/doi.org\/10.1145\/3632859","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2024,1,2]]},"assertion":[{"value":"2024-01-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:09:19Z","timestamp":1750219759978,"version":"3.41.0"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2023,8,30]],"date-time":"2023-08-30T00:00:00Z","timestamp":1693353600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,8,30]]},"abstract":"<jats:p>\n            This paper addresses the question \u201cwhat is a digital circuit?\u201d in relation to the fundamentally analog nature of actual (physical) circuits. A simple informal definition is given and then formalized in the proof assistant Agda. At the heart of this definition is the\n            <jats:italic>timely<\/jats:italic>\n            embedding of\n            <jats:italic>discrete<\/jats:italic>\n            information in temporally\n            <jats:italic>continuous<\/jats:italic>\n            signals. Once this embedding is defined (in constructive logic, i.e., type theory), it is extended in a generic fashion from one signal to many and from simple boolean operations (logic gates) to arbitrarily sophisticated sequential and parallel compositions, i.e., to computational circuits.\n          <\/jats:p>\n          <jats:p>\n            Rather than constructing circuits and\n            <jats:italic>then<\/jats:italic>\n            trying to prove their correctness, a\n            <jats:italic>compositionally correct<\/jats:italic>\n            methodology maintains specification, implementation, timing, and correctness proofs at every step. Compositionality of each aspect and of their combination is supported by a single, shared algebraic vocabulary and related by homomorphisms. After formally defining and proving these notions, a few key transformations are applied to reveal the\n            <jats:italic>linearity<\/jats:italic>\n            of circuit timing (over a suitable semiring), thus enabling practical, modular, and fully verified timing analysis as linear maps over higher-dimensional time intervals.\n          <\/jats:p>\n          <jats:p>An emphasis throughout the paper is simplicity and generality of specification, minimizing circuit-specific definitions and proofs while highlighting a broadly applicable methodology of scalable, compositionally correct engineering through simple denotations and homomorphisms.<\/jats:p>","DOI":"10.1145\/3607861","type":"journal-article","created":{"date-parts":[[2023,8,31]],"date-time":"2023-08-31T17:40:31Z","timestamp":1693503631000},"page":"895-919","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Timely Computation"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9480-9518","authenticated-orcid":false,"given":"Conal","family":"Elliott","sequence":"first","affiliation":[{"name":"Independent, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,8,31]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Agda Team. 2022. https:\/\/github.com\/agda\/agda-stdlib"},{"key":"e_1_2_1_2_1","doi-asserted-by":"crossref","unstructured":"John Baez and Mike Stay. 2010. arxiv:0903.0340 New Structures for Physics. 95\u2013172.","DOI":"10.1007\/978-3-642-12821-9_2"},{"key":"e_1_2_1_3_1","unstructured":"Ana Bove Peter Dybjer and Ulf Norell. 2009. http:\/\/www.cse.chalmers.se\/ ulfn\/papers\/tphols09\/tutorial.pdf Theorem Proving in Higher Order Logics."},{"volume-title":"https:\/\/www.fceia.unr.edu.ar\/ mauro\/pubs\/contractions.pdf Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages","author":"Capretta Venanzio","key":"e_1_2_1_4_1","unstructured":"Venanzio Capretta, Graham Hutton, and Mauro Jaskelioff. 2016. https:\/\/www.fceia.unr.edu.ar\/ mauro\/pubs\/contractions.pdf Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages."},{"key":"e_1_2_1_5_1","volume-title":"https:\/\/www.cs.utexas.edu\/ EWD\/transcriptions\/EWD03xx\/EWD340.html Communications of the ACM, 15, 10","author":"Dijkstra Edsger W.","year":"1972","unstructured":"Edsger W. Dijkstra. 1972. https:\/\/www.cs.utexas.edu\/ EWD\/transcriptions\/EWD03xx\/EWD340.html Communications of the ACM, 15, 10 (1972), Turing award lecture"},{"volume-title":"http:\/\/stedolan.net\/research\/semirings.pdf Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201913). 101\u2013110","author":"Dolan Stephen","key":"e_1_2_1_6_1","unstructured":"Stephen Dolan. 2013. http:\/\/stedolan.net\/research\/semirings.pdf Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201913). 101\u2013110."},{"key":"e_1_2_1_7_1","volume-title":"ICFP","author":"Elliott Conal","year":"2017","unstructured":"Conal Elliott. 2017. http:\/\/conal.net\/papers\/compiling-to-categories Proceedings of the ACM on Programming Languages, 1, ICFP (2017), Sept.."},{"key":"e_1_2_1_8_1","volume-title":"ICFP","author":"Elliott Conal","year":"2018","unstructured":"Conal Elliott. 2018. http:\/\/conal.net\/papers\/essence-of-ad\/ Proceedings of the ACM on Programming Languages, 2, ICFP (2018), Article 4, Sept., 29 pages."},{"key":"e_1_2_1_9_1","volume-title":"arxiv:1903.10677 CoRR, abs\/1903.10677","author":"Elliott Conal","year":"2019","unstructured":"Conal Elliott. 2019. arxiv:1903.10677 CoRR, abs\/1903.10677 (2019)."},{"key":"e_1_2_1_10_1","unstructured":"Conal Elliott. 2021. http:\/\/conal.net\/papers\/language-derivatives\/ Proceedings of the ACM on Programming Languages (ICFP)."},{"key":"e_1_2_1_11_1","unstructured":"Conal Elliott. 2023. https:\/\/github.com\/conal\/felix"},{"key":"e_1_2_1_12_1","unstructured":"Jo\u00e3o Paulo Pizani Flor Wouter Swierstra and Yorick Sijsling. 2018. https:\/\/drops.dagstuhl.de\/opus\/volltexte\/2018\/8479\/pdf\/LIPIcs-TYPES-2015-9.pdf 21st International Conference on Types for Proofs and Programs (TYPES 2015) (Leibniz International Proceedings in Informatics)."},{"key":"e_1_2_1_13_1","volume-title":"Symposium on Language Design and Implementation.","author":"Freeman Tim","year":"1991","unstructured":"Tim Freeman and Frank Pfenning. 1991. http:\/\/www.cs.cmu.edu\/ fp\/papers\/pldi91.pdf Proceedings of the SIGPLAN \u201991 Symposium on Language Design and Implementation."},{"key":"e_1_2_1_14_1","unstructured":"Murray Gell-Mann. 2009. https:\/\/www.youtube.com\/watch?v=anHgZru8acg&t=379s Talk given at University of Scranton"},{"key":"e_1_2_1_15_1","volume-title":"arxiv:1703.10247 26th EACSL Annual Conference on Computer Science Logic (CSL","author":"Ghica Dan R","year":"2017","unstructured":"Dan R Ghica, Achim Jung, and Aliaume Lopez. 2017. arxiv:1703.10247 26th EACSL Annual Conference on Computer Science Logic (CSL 2017)."},{"key":"e_1_2_1_16_1","volume-title":"Ghica and Achim Jung","author":"Dan","year":"2016","unstructured":"Dan R. Ghica and Achim Jung. 2016. https:\/\/www.cs.bham.ac.uk\/ axj\/pub\/papers\/Ghica-Jung-2016-Categorical-semantics-of-digital-circuits.pdf 2016 Formal Methods in Computer-Aided Design (FMCAD)."},{"volume-title":"http:\/\/www.cs.ox.ac.uk\/people\/jeremy.gibbons\/publications\/acmmpc-calcfp.pdf Algebraic and Coalgebraic Methods in the Mathematics of Program Construction (Lecture Notes in Computer Science","author":"Gibbons Jeremy","key":"e_1_2_1_17_1","unstructured":"Jeremy Gibbons. 2002. http:\/\/www.cs.ox.ac.uk\/people\/jeremy.gibbons\/publications\/acmmpc-calcfp.pdf Algebraic and Coalgebraic Methods in the Mathematics of Program Construction (Lecture Notes in Computer Science, Vol. 2297). Springer-Verlag. issn:0302-9743"},{"key":"e_1_2_1_18_1","unstructured":"Jonathan S. Golan. 2005. http:\/\/citeseerx.ist.psu.edu\/viewdoc\/summary?doi=10.1.1.318.6696 International Conference on Algebra in Memory of Kostia Beidar."},{"key":"e_1_2_1_19_1","series-title":"Series A: Physical and Engineering Sciences, 339","volume-title":"https:\/\/royalsocietypublishing.org\/doi\/10.1098\/rsta.1992.0029 Philosophical Transactions of the Royal Society of London","author":"Hanna F. K.","year":"1992","unstructured":"F. K. Hanna and Neil Daeche. 1992. https:\/\/royalsocietypublishing.org\/doi\/10.1098\/rsta.1992.0029 Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences, 339 (1992)."},{"key":"e_1_2_1_20_1","unstructured":"William L. Harrison Chris Hathhorn and Gerard Allwein. 2021. (https:\/\/harrisonwl.github.io\/assets\/papers\/ppdp21.pdf) 23rd International Symposium on Principles and Practice of Declarative Programming."},{"key":"e_1_2_1_21_1","volume-title":"https:\/\/www.cse.chalmers.se\/ rjmh\/Papers\/whyfp.html Computer Journal, 32, 2","author":"Hughes John","year":"1989","unstructured":"John Hughes. 1989. https:\/\/www.cse.chalmers.se\/ rjmh\/Papers\/whyfp.html Computer Journal, 32, 2 (1989)."},{"key":"e_1_2_1_22_1","unstructured":"Graham Hutton and Mauro Jaskelioff. 2011. https:\/\/www.cs.nott.ac.uk\/ pszgmh\/contractive.pdf Submitted to the Journal of Functional Programming."},{"key":"e_1_2_1_23_1","volume-title":"Saxe","author":"Leiserson Charles E.","year":"1991","unstructured":"Charles E. Leiserson and James B. Saxe. 1991. https:\/\/citeseerx.ist.psu.edu\/doc\/10.1.1.368.3222 Algorithmica, 6, 1\u20136 (1991), June."},{"key":"e_1_2_1_24_1","volume-title":"http:\/\/www.cs.cmu.edu\/ fp\/papers\/tlca09.pdf Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications (TLCA","author":"Lovas William","year":"2009","unstructured":"William Lovas and Frank Pfenning. 2009. http:\/\/www.cs.cmu.edu\/ fp\/papers\/tlca09.pdf Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications (TLCA 2009)."},{"volume-title":"Categories for the working mathematician","author":"Lane Saunders Mac","key":"e_1_2_1_25_1","unstructured":"Saunders Mac Lane. 1998. Categories for the working mathematician, second edition. Springer."},{"key":"e_1_2_1_26_1","volume-title":"http:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642312001402 Science of Computer Programming, 78, 11","author":"Macedo Hugo Daniel","year":"2013","unstructured":"Hugo Daniel Macedo and Jos\u00e9 Nuno Oliveira. 2013. http:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642312001402 Science of Computer Programming, 78, 11 (2013)."},{"volume-title":"https:\/\/launchbury.files.wordpress.com\/2019\/01\/microporocessor-specification-in-hawk.pdf Proceedings of the 1998 International Conference on Computer Languages","author":"Matthews John","key":"e_1_2_1_27_1","unstructured":"John Matthews, Byron Cook, and John Launchbury. 1998. https:\/\/launchbury.files.wordpress.com\/2019\/01\/microporocessor-specification-in-hawk.pdf Proceedings of the 1998 International Conference on Computer Languages. IEEE Computer Society."},{"key":"e_1_2_1_28_1","unstructured":"Ulf Norell. 2008. http:\/\/www.cse.chalmers.se\/ ulfn\/papers\/afp08\/tutorial.pdf Revised Lectures of the Sixth International Spring School on Advanced Functional Programming (Lecture Notes in Computer Science)."},{"volume-title":"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/summary?doi=10.1.1.30.3418 IFIP 8th International Symposium on Hardware Description Languages and their Applications","author":"O\u2019Donnell John T.","key":"e_1_2_1_29_1","unstructured":"John T. O\u2019Donnell. 1987. https:\/\/citeseerx.ist.psu.edu\/viewdoc\/summary?doi=10.1.1.30.3418 IFIP 8th International Symposium on Hardware Description Languages and their Applications."},{"volume-title":"http:\/\/mu-chaco.github.io\/ReWire\/assets\/papers\/lctes15.pdf Proceedings of the 16th ACM SIGPLAN\/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROM","author":"Procter Adam M.","key":"e_1_2_1_30_1","unstructured":"Adam M. Procter, William L. Harrison, Ian Graves, Michela Becchi, and Gerard Allwein. 2015. http:\/\/mu-chaco.github.io\/ReWire\/assets\/papers\/lctes15.pdf Proceedings of the 16th ACM SIGPLAN\/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROM."},{"key":"e_1_2_1_31_1","unstructured":"Emily Riehl. 2016. http:\/\/www.math.jhu.edu\/\u1ebdriehl\/context.pdf"},{"key":"e_1_2_1_32_1","volume-title":"Oliveira","author":"Santos Armando","year":"2020","unstructured":"Armando Santos and Jos\u00e9 N. Oliveira. 2020. http:\/\/davinci.di.uminho.pt\/publications\/type-your-matrices.pdf Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell."},{"key":"e_1_2_1_33_1","unstructured":"Mary Sheeran. 1984. https:\/\/dl.acm.org\/doi\/10.1145\/800055.802026 Proceedings of the 1984 ACM Symposium on LISP and Functional Programming."},{"key":"e_1_2_1_34_1","volume-title":"IFIP Workshop on The Fusion of Hardware Design and Verification.","author":"Sheeran Mary","year":"1988","unstructured":"Mary Sheeran. 1988. Slowdown and retiming in Ruby. In IFIP Workshop on The Fusion of Hardware Design and Verification."},{"key":"e_1_2_1_35_1","volume-title":"https:\/\/lib.jucs.org\/article\/28436\/list\/9\/ JUCS - Journal of Universal Computer Science, 11, 7","author":"Sheeran Mary","year":"2005","unstructured":"Mary Sheeran. 2005. https:\/\/lib.jucs.org\/article\/28436\/list\/9\/ JUCS - Journal of Universal Computer Science, 11, 7 (2005)."},{"key":"e_1_2_1_36_1","volume-title":"Edwards","author":"Townsend Richard","year":"2015","unstructured":"Richard Townsend, Martha A. Kim, and Stephen A. Edwards. 2015. http:\/\/www1.cs.columbia.edu\/ sedwards\/papers\/townsend2015hardware.pdf Columbia University, Department of Computer Science."},{"key":"e_1_2_1_37_1","volume-title":"https:\/\/homepages.inf.ed.ac.uk\/wadler\/topics\/history.html#propositions-as-types Commun. ACM, 58, 12","author":"Wadler Philip","year":"2015","unstructured":"Philip Wadler. 2015. https:\/\/homepages.inf.ed.ac.uk\/wadler\/topics\/history.html#propositions-as-types Commun. ACM, 58, 12 (2015)."},{"volume-title":"https:\/\/www.escholar.manchester.ac.uk\/uk-ac-man-scw:246131 Ph. D. Dissertation","author":"Wilding David","key":"e_1_2_1_38_1","unstructured":"David Wilding. 2015. https:\/\/www.escholar.manchester.ac.uk\/uk-ac-man-scw:246131 Ph. D. Dissertation. University of Manchester."},{"key":"e_1_2_1_39_1","volume-title":"Edwards","author":"Zhai Kuangya","year":"2015","unstructured":"Kuangya Zhai, Richard Townsend, Lianne Lairmore, Martha A. Kim, and Stephen A. Edwards. 2015. http:\/\/arcade.cs.columbia.edu\/hardware-codes15.pdf 2015 International Conference on Hardware\/Software Codesign and System Synthesis (CODES+ISSS)."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3607861","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3607861","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:06Z","timestamp":1750178226000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3607861"}},"issued":{"date-parts":[[2023,8,30]]},"references-count":39,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2023,8,30]]}},"alternative-id":["10.1145\/3607861"],"URL":"https:\/\/doi.org\/10.1145\/3607861","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2023,8,30]]},"assertion":[{"value":"2023-08-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,5,18]],"date-time":"2026-05-18T07:02:57Z","timestamp":1779087777410,"version":"3.51.4"},"reference-count":84,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T00:00:00Z","timestamp":1667174400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2022,10,31]]},"abstract":"<jats:p>Today\u2019s distributed systems must satisfy both<jats:italic>qualitative<\/jats:italic>and<jats:italic>quantitative<\/jats:italic>properties. These properties are analyzed using very different formal frameworks: expressive untimed and non-probabilistic frameworks, such as TLA+ and Hoare\/separation logics, for qualitative properties; and timed\/probabilistic-automaton-based ones, such as Uppaal and Prism, for quantitative ones. This requires developing two quite different models of the same system, without guarantees of semantic consistency between them. Furthermore, it is very hard or impossible to<jats:italic>represent<\/jats:italic>intrinsic features of distributed object systems\u2014such as unbounded data structures, dynamic object creation, and an unbounded number of messages\u2014using finite automata.<\/jats:p><jats:p>In this paper we bridge this semantic gap, overcome the problem of manually having to develop two different models of a system, and solve the representation problem by: (i) defining a transformation from a very general class of distributed systems (a generalization of Agha\u2019s actor model) that maps an untimed non-probabilistic distributed system model suitable for qualitative analysis to a probabilistic timed model suitable for quantitative analysis; and (ii) proving the two models semantically consistent. We formalize our models in rewriting logic, and can therefore use the Maude tool to analyze qualitative properties, and statistical model checking with PVeStA to analyze quantitative properties. We have automated this transformation and integrated it, together with the PVeStA statistical model checker, into the<jats:italic>Actors2PMaude<\/jats:italic>tool. We illustrate the expressiveness of our framework and our tool\u2019s ease of use by automatically transforming untimed, qualitative models of numerous distributed system designs\u2014including an industrial data store and a state-of-the-art transaction system\u2014into quantitative models to analyze and compare the performance of different designs.<\/jats:p>","DOI":"10.1145\/3563299","type":"journal-article","created":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T20:23:35Z","timestamp":1667247815000},"page":"315-344","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":16,"title":["Bridging the semantic gap between qualitative and quantitative models of distributed systems"],"prefix":"10.1145","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3578-7432","authenticated-orcid":false,"given":"Si","family":"Liu","sequence":"first","affiliation":[{"name":"ETH Zurich, Switzerland"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4779-3848","authenticated-orcid":false,"given":"Jose","family":"Meseguer","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0708-3721","authenticated-orcid":false,"given":"Peter Csaba","family":"\u00d6lveczky","sequence":"additional","affiliation":[{"name":"University of Oslo, Norway"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1938-2902","authenticated-orcid":false,"given":"Min","family":"Zhang","sequence":"additional","affiliation":[{"name":"East China Normal University, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2952-939X","authenticated-orcid":false,"given":"David","family":"Basin","sequence":"additional","affiliation":[{"name":"ETH Zurich, Switzerland"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,10,31]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.58.1"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/7929"},{"key":"e_1_2_1_3_1","volume-title":"Formal Modeling and Analysis of DoS Using Probabilistic Rewrite Theories. In Workshop on Foundations of Computer Security (FCS).","author":"Agha Gul","year":"2005","unstructured":"Gul Agha , Carl Gunter , Michael Greenwald , Sanjeev Khanna , Jose Meseguer , Koushik Sen , and Prasanna Thati . 2005 . Formal Modeling and Analysis of DoS Using Probabilistic Rewrite Theories. In Workshop on Foundations of Computer Security (FCS). Gul Agha, Carl Gunter, Michael Greenwald, Sanjeev Khanna, Jose Meseguer, Koushik Sen, and Prasanna Thati. 2005. Formal Modeling and Analysis of DoS Using Probabilistic Rewrite Theories. In Workshop on Foundations of Computer Security (FCS)."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158668"},{"key":"e_1_2_1_5_1","volume-title":"PMaude: Rewrite-based Specification Language for Probabilistic Object Systems. Electr. Notes Theor. Comput. Sci., 153, 2","author":"Agha Gul A.","year":"2006","unstructured":"Gul A. Agha , Jos\u00e9 Meseguer , and Koushik Sen . 2006. PMaude: Rewrite-based Specification Language for Probabilistic Object Systems. Electr. Notes Theor. Comput. Sci., 153, 2 ( 2006 ). Gul A. Agha, Jos\u00e9 Meseguer, and Koushik Sen. 2006. PMaude: Rewrite-based Specification Language for Probabilistic Object Systems. Electr. Notes Theor. Comput. Sci., 153, 2 (2006)."},{"key":"e_1_2_1_6_1","volume-title":"CALCO\u201911 (LNCS","author":"AlTurki Musab","unstructured":"Musab AlTurki and Jos\u00e9 Meseguer . 2011. PVeStA: A Parallel Statistical Model Checking and Quantitative Analysis Tool . In CALCO\u201911 (LNCS , Vol. 6859). Springer, 386\u2013 392 . Musab AlTurki and Jos\u00e9 Meseguer. 2011. PVeStA: A Parallel Statistical Model Checking and Quantitative Analysis Tool. In CALCO\u201911 (LNCS, Vol. 6859). Springer, 386\u2013392."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2009.02.069"},{"key":"e_1_2_1_8_1","volume-title":"Pre-computed Reveal Strategies. In Formal Methods. FM 2019 International Workshops (LNCS","volume":"349","author":"Musab","unstructured":"Musab A. Alturki and Grigore Rosu. 2019. Statistical Model Checking of RANDAO\u2019s Resilience to Pre-computed Reveal Strategies. In Formal Methods. FM 2019 International Workshops (LNCS , Vol. 12232). Springer, 337\u2013 349 . Musab A. Alturki and Grigore Rosu. 2019. Statistical Model Checking of RANDAO\u2019s Resilience to Pre-computed Reveal Strategies. In Formal Methods. FM 2019 International Workshops (LNCS, Vol. 12232). Springer, 337\u2013349."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2728816.2728827"},{"key":"e_1_2_1_10_1","unstructured":"Amazon. Accessed April 2022. Amazon EC2. https:\/\/aws.amazon.com\/ec2\/ Amazon. Accessed April 2022. Amazon EC2. https:\/\/aws.amazon.com\/ec2\/"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-25540-4_29"},{"key":"e_1_2_1_12_1","volume-title":"Handbook of Model Checking, Edmund M","author":"Baier Christel","unstructured":"Christel Baier , Luca de Alfaro , Vojtech Forejt , and Marta Kwiatkowska . 2018. Model Checking Probabilistic Systems . In Handbook of Model Checking, Edmund M . Clarke, Thomas A. Henzinger, Helmut Veith, and Roderick Bloem (Eds.). Springer , 963\u2013999. Christel Baier, Luca de Alfaro, Vojtech Forejt, and Marta Kwiatkowska. 2018. Model Checking Probabilistic Systems. In Handbook of Model Checking, Edmund M. Clarke, Thomas A. Henzinger, Helmut Veith, and Roderick Bloem (Eds.). Springer, 963\u2013999."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2909870"},{"key":"e_1_2_1_14_1","volume-title":"CMC 2016 (Lecture Notes in Computer Science","volume":"135","author":"Bakir Mehmet Emin","year":"2017","unstructured":"Mehmet Emin Bakir , Marian Gheorghe , Savas Konur , and Mike Stannett . 2017 . Comparative Analysis of Statistical Model Checking Tools. In Membrane Computing - 17th International Conference , CMC 2016 (Lecture Notes in Computer Science , Vol. 10105). Springer, 119\u2013 135 . Mehmet Emin Bakir, Marian Gheorghe, Savas Konur, and Mike Stannett. 2017. Comparative Analysis of Statistical Model Checking Tools. In Membrane Computing - 17th International Conference, CMC 2016 (Lecture Notes in Computer Science, Vol. 10105). Springer, 119\u2013135."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2011.27"},{"key":"e_1_2_1_16_1","volume-title":"Maltz","author":"Benson Theophilus","year":"2010","unstructured":"Theophilus Benson , Aditya Akella , and David A . Maltz . 2010 . Network traffic characteristics of data centers in the wild. In IMC\u201910. ACM , 267\u2013280. Theophilus Benson, Aditya Akella, and David A. Maltz. 2010. Network traffic characteristics of data centers in the wild. In IMC\u201910. ACM, 267\u2013280."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24310-3_6"},{"key":"e_1_2_1_18_1","volume-title":"Survivability: Design, Formal Modeling, and Validation of Cloud Storage Systems Using Maude. In Assured Cloud Computing","author":"Bobba Rakesh","year":"2018","unstructured":"Rakesh Bobba , Jon Grov , Indranil Gupta , Si Liu , Jos\u00e9 Meseguer , Peter Csaba \u00d6lveczky , and Stephen Skeirik . 2018 . Survivability: Design, Formal Modeling, and Validation of Cloud Storage Systems Using Maude. In Assured Cloud Computing . Wiley-IEEE Computer Society Press , 10\u201348. Rakesh Bobba, Jon Grov, Indranil Gupta, Si Liu, Jos\u00e9 Meseguer, Peter Csaba \u00d6lveczky, and Stephen Skeirik. 2018. Survivability: Design, Formal Modeling, and Validation of Cloud Storage Systems Using Maude. In Assured Cloud Computing. Wiley-IEEE Computer Society Press, 10\u201348."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-21461-5_4"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-54580-5_9"},{"key":"e_1_2_1_21_1","unstructured":"Apache Cassandra. Accessed April 2022. Open Source NoSQL Database. https:\/\/cassandra.apache.org Apache Cassandra. Accessed April 2022. Open Source NoSQL Database. https:\/\/cassandra.apache.org"},{"key":"e_1_2_1_22_1","volume-title":"Talcott","author":"Clavel Manuel","year":"2007","unstructured":"Manuel Clavel , Francisco Dur\u00e1n , Steven Eker , Patrick Lincoln , Narciso Mart\u00ed-Oliet , Jos\u00e9 Meseguer , and Carolyn L . Talcott . 2007 . All About Maude (LNCS, Vol . 4350). Springer . Manuel Clavel, Francisco Dur\u00e1n, Steven Eker, Patrick Lincoln, Narciso Mart\u00ed-Oliet, Jos\u00e9 Meseguer, and Carolyn L. Talcott. 2007. All About Maude (LNCS, Vol. 4350). Springer."},{"key":"e_1_2_1_23_1","unstructured":"CloudLab. Accessed April 2022. CloudLab: Flexible scientific infrastructure for research on the future of cloud computing. https:\/\/www.cloudlab.us\/ CloudLab. Accessed April 2022. CloudLab: Flexible scientific infrastructure for research on the future of cloud computing. https:\/\/www.cloudlab.us\/"},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Brian F. Cooper Adam Silberstein Erwin Tam Raghu Ramakrishnan and Russell Sears. 2010. Benchmarking cloud serving systems with YCSB. In SOCC\u201910. ACM 143\u2013154. Brian F. Cooper Adam Silberstein Erwin Tam Raghu Ramakrishnan and Russell Sears. 2010. Benchmarking cloud serving systems with YCSB. In SOCC\u201910. ACM 143\u2013154.","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10009-014-0361-y"},{"key":"e_1_2_1_26_1","volume-title":"CMSB 2008 (LNCS","volume":"287","author":"Donaldson Robin","unstructured":"Robin Donaldson and David R. Gilbert . 2008. A Model Checking Approach to the Parameter Estimation of Biochemical Pathways . In CMSB 2008 (LNCS , Vol. 5307). Springer, 269\u2013 287 . Robin Donaldson and David R. Gilbert. 2008. A Model Checking Approach to the Parameter Estimation of Biochemical Pathways. In CMSB 2008 (LNCS, Vol. 5307). Springer, 269\u2013287."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-46520-3_8"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28872-2_6"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ALLERTON.2018.8635877"},{"key":"e_1_2_1_30_1","doi-asserted-by":"crossref","unstructured":"Giacomo Giuliari Dominik Roos Marc Wyss Juan \u00c1ngel Garc\u00eda-Pardo Markus Legner and Adrian Perrig. 2021. Colibri: a cooperative lightweight inter-domain bandwidth-reservation infrastructure. In CoNEXT\u201921. ACM 104\u2013118. Giacomo Giuliari Dominik Roos Marc Wyss Juan \u00c1ngel Garc\u00eda-Pardo Markus Legner and Adrian Perrig. 2021. Colibri: a cooperative lightweight inter-domain bandwidth-reservation infrastructure. In CoNEXT\u201921. ACM 104\u2013118.","DOI":"10.1145\/3485983.3494871"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(92)90302-V"},{"key":"e_1_2_1_32_1","volume-title":"Alvin AuYoung, Kimberly Keeton, and Indranil Gupta.","author":"Golab Wojciech M.","year":"2014","unstructured":"Wojciech M. Golab , Muntasir Raihan Rahman , Alvin AuYoung, Kimberly Keeton, and Indranil Gupta. 2014 . Client-Centric Benchmarking of Eventual Consistency for Cloud Storage Systems. In ICDCS. IEEE Computer Society , 493\u2013502. Wojciech M. Golab, Muntasir Raihan Rahman, Alvin AuYoung, Kimberly Keeton, and Indranil Gupta. 2014. Client-Centric Benchmarking of Eventual Consistency for Cloud Storage Systems. In ICDCS. IEEE Computer Society, 493\u2013502."},{"key":"e_1_2_1_33_1","doi-asserted-by":"crossref","unstructured":"G. Grimmett and D. Stirzaker. 2001. Probability and Random Processes (3rd Ed.). Oxford University Press. G. Grimmett and D. Stirzaker. 2001. Probability and Random Processes (3rd Ed.). Oxford University Press.","DOI":"10.1093\/oso\/9780198572237.001.0001"},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","unstructured":"Jon Grov and Peter Csaba \u00d6lveczky. 2014. Formal Modeling and Analysis of Google\u2019s Megastore in Real-Time Maude. In Specification Algebra and Software (LNCS Vol. 8373). Springer. Jon Grov and Peter Csaba \u00d6lveczky. 2014. Formal Modeling and Analysis of Google\u2019s Megastore in Real-Time Maude. In Specification Algebra and Software (LNCS Vol. 8373). Springer.","DOI":"10.1007\/978-3-642-54624-2_25"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/11422778_62"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01211866"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54862-8_51"},{"key":"e_1_2_1_38_1","volume-title":"Proc. QEST","author":"Henriques David","year":"2012","unstructured":"David Henriques , Jo\u00e3o G. Martins , Paolo Zuliani , Andr\u00e9 Platzer , and Edmund M. Clarke . 2012. Statistical Model Checking for Markov Decision Processes . In Proc. QEST 2012 . IEEE Computer Society, 84\u201393. David Henriques, Jo\u00e3o G. Martins, Paolo Zuliani, Andr\u00e9 Platzer, and Edmund M. Clarke. 2012. Statistical Model Checking for Markov Decision Processes. In Proc. QEST 2012. IEEE Computer Society, 84\u201393."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2016.01.004"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2016.03.004"},{"key":"e_1_2_1_41_1","volume-title":"LTSmin: High-Performance Language-Independent Model Checking. In TACAS 2015 (LNCS","volume":"707","author":"Kant Gijs","unstructured":"Gijs Kant , Alfons Laarman , Jeroen Meijer , Jaco van de Pol, Stefan Blom, and Tom van Dijk. 2015 . LTSmin: High-Performance Language-Independent Model Checking. In TACAS 2015 (LNCS , Vol. 9035). Springer, 692\u2013 707 . Gijs Kant, Alfons Laarman, Jeroen Meijer, Jaco van de Pol, Stefan Blom, and Tom van Dijk. 2015. LTSmin: High-Performance Language-Independent Model Checking. In TACAS 2015 (LNCS, Vol. 9035). Springer, 692\u2013707."},{"key":"e_1_2_1_42_1","volume-title":"Proc. FMOODS 2008 (LNCS","volume":"169","author":"Katelman Michael","unstructured":"Michael Katelman , Jos\u00e9 Meseguer , and Jennifer C. Hou . 2008. Redesign of the LMST Wireless Sensor Protocol through Formal Modeling and Statistical Model Checking . In Proc. FMOODS 2008 (LNCS , Vol. 5051). Springer, 150\u2013 169 . Michael Katelman, Jos\u00e9 Meseguer, and Jennifer C. Hou. 2008. Redesign of the LMST Wireless Sensor Protocol through Formal Modeling and Statistical Model Checking. In Proc. FMOODS 2008 (LNCS, Vol. 5051). Springer, 150\u2013169."},{"key":"e_1_2_1_43_1","volume-title":"Probability Theory","author":"Klenke Achim","unstructured":"Achim Klenke . 2006. Probability Theory . Springer . Achim Klenke. 2006. Probability Theory. Springer."},{"key":"e_1_2_1_44_1","doi-asserted-by":"crossref","unstructured":"M. Kwiatkowska G. Norman and D. Parker. 2011. PRISM 4.0: Verification of Probabilistic Real-time Systems. In CAV\u201911 (LNCS Vol. 6806). Springer 585\u2013591. M. Kwiatkowska G. Norman and D. Parker. 2011. PRISM 4.0: Verification of Probabilistic Real-time Systems. In CAV\u201911 (LNCS Vol. 6806). Springer 585\u2013591.","DOI":"10.1007\/978-3-642-22110-1_47"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2245276.2231984"},{"key":"e_1_2_1_46_1","volume-title":"Exploring Design Alternatives for Replicated RAMP Transactions Using Maude","author":"Liang Lei","unstructured":"Lei Liang and Si Liu . 2021. Exploring Design Alternatives for Replicated RAMP Transactions Using Maude . In TASE. IEEE , 111\u2013118. Lei Liang and Si Liu. 2021. Exploring Design Alternatives for Replicated RAMP Transactions Using Maude. In TASE. IEEE, 111\u2013118."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3494517"},{"key":"e_1_2_1_48_1","article-title":"Quantitative Analysis of Consistency in NoSQL Key-Value Stores","volume":"4","author":"Liu Si","year":"2017","unstructured":"Si Liu , Jatin Ganhotra , Muntasir Rahman , Son Nguyen , Indranil Gupta , and Jos\u00e9 Meseguer . 2017 . Quantitative Analysis of Consistency in NoSQL Key-Value Stores . Leibniz Transactions on Embedded Systems , 4 , 1 (2017), 03:1\u201303:26. Si Liu, Jatin Ganhotra, Muntasir Rahman, Son Nguyen, Indranil Gupta, and Jos\u00e9 Meseguer. 2017. Quantitative Analysis of Consistency in NoSQL Key-Value Stores. Leibniz Transactions on Embedded Systems, 4, 1 (2017), 03:1\u201303:26.","journal-title":"Leibniz Transactions on Embedded Systems"},{"key":"e_1_2_1_49_1","unstructured":"Si Liu Jos\u00e9 Meseguer Peter Csaba \u00d6lveczky Min Zhang and David Basin. 2022. Bridging the Semantic Gap between Qualitative and Quantitative Models of Distributed Systems. http:\/\/hdl.handle.net\/20.500.11850\/563291 Si Liu Jos\u00e9 Meseguer Peter Csaba \u00d6lveczky Min Zhang and David Basin. 2022. Bridging the Semantic Gap between Qualitative and Quantitative Models of Distributed Systems. http:\/\/hdl.handle.net\/20.500.11850\/563291"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7071693"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-68690-5_18"},{"key":"e_1_2_1_52_1","volume-title":"Software, Services, and Systems (LNCS","author":"Liu Si","unstructured":"Si Liu , Peter Csaba \u00d6lveczky , and Jos\u00e9 Meseguer . 2015. Formal Analysis of Leader Election in MANETs Using Real-Time Maude . In Software, Services, and Systems (LNCS , Vol. 8950). Springer, 231\u2013 252 . Si Liu, Peter Csaba \u00d6lveczky, and Jos\u00e9 Meseguer. 2015. Formal Analysis of Leader Election in MANETs Using Real-Time Maude. In Software, Services, and Systems (LNCS, Vol. 8950). Springer, 231\u2013252."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2015.05.002"},{"key":"e_1_2_1_54_1","volume-title":"Jatin Ganhotra, Indranil Gupta, and Jos\u00e9 Meseguer.","author":"Liu Si","year":"2016","unstructured":"Si Liu , Peter Csaba \u00d6lveczky , Muntasir Raihan Rahman , Jatin Ganhotra, Indranil Gupta, and Jos\u00e9 Meseguer. 2016 . Formal modeling and analysis of RAMP transaction systems. In SAC. ACM. Si Liu, Peter Csaba \u00d6lveczky, Muntasir Raihan Rahman, Jatin Ganhotra, Indranil Gupta, and Jos\u00e9 Meseguer. 2016. Formal modeling and analysis of RAMP transaction systems. In SAC. ACM."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00165-019-00489-w"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-99840-4_8"},{"key":"e_1_2_1_57_1","volume-title":"TACAS\u201919 (LNCS","author":"Liu Si","unstructured":"Si Liu , Peter Csaba \u00d6lveczky , Min Zhang , Qi Wang , and Jos\u00e9 Meseguer . 2019. Automatic Analysis of Consistency Properties of Distributed Transaction Systems in Maude . In TACAS\u201919 (LNCS , Vol. 11428). Springer, 40\u2013 57 . Si Liu, Peter Csaba \u00d6lveczky, Min Zhang, Qi Wang, and Jos\u00e9 Meseguer. 2019. Automatic Analysis of Consistency Properties of Distributed Transaction Systems in Maude. In TACAS\u201919 (LNCS, Vol. 11428). Springer, 40\u201357."},{"key":"e_1_2_1_58_1","volume-title":"Stephen Skeirik, Indranil Gupta, and Jos\u00e9 Meseguer.","author":"Liu Si","year":"2014","unstructured":"Si Liu , Muntasir Raihan Rahman , Stephen Skeirik, Indranil Gupta, and Jos\u00e9 Meseguer. 2014 . Formal Modeling and Analysis of Cassandra in Maude. In ICFEM (LNCS , Vol. 8829). Springer. Si Liu, Muntasir Raihan Rahman, Stephen Skeirik, Indranil Gupta, and Jos\u00e9 Meseguer. 2014. Formal Modeling and Analysis of Cassandra in Maude. In ICFEM (LNCS, Vol. 8829). Springer."},{"key":"e_1_2_1_59_1","doi-asserted-by":"crossref","unstructured":"Si Liu Atul Sandur Jos\u00e9 Meseguer Peter Csaba \u00d6lveczky and Qi Wang. 2020. Generating Correct-by-Construction Distributed Implementations from Formal Maude Designs. In NFM\u201920 (LNCS Vol. 12229). Springer. Si Liu Atul Sandur Jos\u00e9 Meseguer Peter Csaba \u00d6lveczky and Qi Wang. 2020. Generating Correct-by-Construction Distributed Implementations from Formal Maude Designs. In NFM\u201920 (LNCS Vol. 12229). Springer.","DOI":"10.1007\/978-3-030-55754-6_2"},{"key":"e_1_2_1_60_1","volume-title":"ATVA\u201918 (LNCS","author":"Mediouni Braham Lotfi","unstructured":"Braham Lotfi Mediouni , Ayoub Nouri , Marius Bozga , Mahieddine Dellabani , Axel Legay , and Saddek Bensalem . 2018. SBIP 2.0 : Statistical Model Checking Stochastic Real-Time Systems . In ATVA\u201918 (LNCS , Vol. 11138). Springer, 536\u2013 542 . Braham Lotfi Mediouni, Ayoub Nouri, Marius Bozga, Mahieddine Dellabani, Axel Legay, and Saddek Bensalem. 2018. SBIP 2.0: Statistical Model Checking Stochastic Real-Time Systems. In ATVA\u201918 (LNCS, Vol. 11138). Springer, 536\u2013542."},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(92)90182-F"},{"key":"e_1_2_1_62_1","volume-title":"Research Directions in Concurrent Object-Oriented Programming","author":"Meseguer Jos\u00e9","unstructured":"Jos\u00e9 Meseguer . 1993. A Logical Theory of Concurrent Objects and its realization in the Maude Language . In Research Directions in Concurrent Object-Oriented Programming , Gul Agha, Peter Wegner, and Akinori Yonezawa (Eds.). MIT Press , 314\u2013390. Jos\u00e9 Meseguer. 1993. A Logical Theory of Concurrent Objects and its realization in the Maude Language. In Research Directions in Concurrent Object-Oriented Programming, Gul Agha, Peter Wegner, and Akinori Yonezawa (Eds.). MIT Press, 314\u2013390."},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlap.2009.07.003"},{"key":"e_1_2_1_64_1","volume-title":"Specification and Analysis of Distributed Object-Based Stochastic Hybrid Systems. In HSCC (LNCS","volume":"475","author":"Meseguer J.","unstructured":"J. Meseguer and R. Sharykin . 2006 . Specification and Analysis of Distributed Object-Based Stochastic Hybrid Systems. In HSCC (LNCS , Vol. 3927). Springer, 460\u2013 475 . J. Meseguer and R. Sharykin. 2006. Specification and Analysis of Distributed Object-Based Stochastic Hybrid Systems. In HSCC (LNCS, Vol. 3927). Springer, 460\u2013475."},{"key":"e_1_2_1_65_1","unstructured":"Microsoft. 2018. High-level TLA+ specifications for the five consistency levels offered by Azure Cosmos DB. https:\/\/github.com\/Azure\/azure-cosmos-tla Microsoft. 2018. High-level TLA+ specifications for the five consistency levels offered by Azure Cosmos DB. https:\/\/github.com\/Azure\/azure-cosmos-tla"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/2699417"},{"key":"e_1_2_1_67_1","volume-title":"Designing Reliable Distributed Systems - A Formal Methods Approach Based on Executable Modeling in Maude","author":"\u00d6lveczky Peter Csaba","unstructured":"Peter Csaba \u00d6lveczky . 2017. Designing Reliable Distributed Systems - A Formal Methods Approach Based on Executable Modeling in Maude . Springer . Peter Csaba \u00d6lveczky. 2017. Designing Reliable Distributed Systems - A Formal Methods Approach Based on Executable Modeling in Maude. Springer."},{"key":"e_1_2_1_68_1","first-page":"1","article-title":"Ad hoc On-Demand Distance Vector (AODV) Routing","volume":"3561","author":"Perkins Charles E.","year":"2003","unstructured":"Charles E. Perkins , Elizabeth M. Belding-Royer , and Samir R. Das . 2003 . Ad hoc On-Demand Distance Vector (AODV) Routing . RFC , 3561 (2003), 1 \u2013 37 . Charles E. Perkins, Elizabeth M. Belding-Royer, and Samir R. Das. 2003. Ad hoc On-Demand Distance Vector (AODV) Routing. RFC, 3561 (2003), 1\u201337.","journal-title":"RFC"},{"key":"e_1_2_1_69_1","unstructured":"PRISM. Accessed April 2022. PRISM-SMC. https:\/\/www.prismmodelchecker.org\/manual\/RunningPRISM\/StatisticalModelChecking PRISM. Accessed April 2022. PRISM-SMC. https:\/\/www.prismmodelchecker.org\/manual\/RunningPRISM\/StatisticalModelChecking"},{"key":"e_1_2_1_70_1","doi-asserted-by":"crossref","unstructured":"R. Rubinstein and D.P. Kroese. 2017. Simulation and the Monte Carlo Method (3rd Ed.). J. Wiley & Sons. R. Rubinstein and D.P. Kroese. 2017. Simulation and the Monte Carlo Method (3rd Ed.). J. Wiley & Sons.","DOI":"10.1002\/9781118631980"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2021.100700"},{"key":"e_1_2_1_72_1","volume-title":"SCION: Scalability, Control, and Isolation on Next-Generation Networks. https:\/\/scion-architecture.net\/","author":"Accessed April SCION.","year":"2022","unstructured":"SCION. Accessed April , 2022 . SCION: Scalability, Control, and Isolation on Next-Generation Networks. https:\/\/scion-architecture.net\/ SCION. Accessed April, 2022. SCION: Scalability, Control, and Isolation on Next-Generation Networks. https:\/\/scion-architecture.net\/"},{"key":"e_1_2_1_73_1","unstructured":"Stefano Sebastio and Andrea Vandin. 2013. MultiVeStA: Statistical Model Checking for Discrete Event Simulators. In ValueTools. ICST\/ACM 310\u2013315. Stefano Sebastio and Andrea Vandin. 2013. MultiVeStA: Statistical Model Checking for Discrete Event Simulators. In ValueTools. ICST\/ACM 310\u2013315."},{"key":"e_1_2_1_74_1","unstructured":"Koushik Sen Mahesh Viswanathan and Gul Agha. 2005. On Statistical Model Checking of Stochastic Systems. In CAV\u201905 (LNCS Vol. 3576). Springer. Koushik Sen Mahesh Viswanathan and Gul Agha. 2005. On Statistical Model Checking of Stochastic Systems. In CAV\u201905 (LNCS Vol. 3576). Springer."},{"key":"e_1_2_1_75_1","volume-title":"Agha","author":"Sen Koushik","year":"2005","unstructured":"Koushik Sen , Mahesh Viswanathan , and Gul A . Agha . 2005 . VESTA : A Statistical Model-checker and Analyzer for Probabilistic Systems. In QEST\u201905. IEEE Computer Society , 251\u2013252. Koushik Sen, Mahesh Viswanathan, and Gul A. Agha. 2005. VESTA: A Statistical Model-checker and Analyzer for Probabilistic Systems. In QEST\u201905. IEEE Computer Society, 251\u2013252."},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.5555\/2370686.2370691"},{"key":"e_1_2_1_77_1","doi-asserted-by":"crossref","unstructured":"Stephen Skeirik Rakesh B. Bobba and Jos\u00e9 Meseguer. 2013. Formal Analysis of Fault-tolerant Group Key Management Using ZooKeeper. In CCGRID. 636\u2013641. Stephen Skeirik Rakesh B. Bobba and Jos\u00e9 Meseguer. 2013. Formal Analysis of Fault-tolerant Group Key Management Using ZooKeeper. In CCGRID. 636\u2013641.","DOI":"10.1109\/CCGrid.2013.98"},{"key":"e_1_2_1_78_1","volume-title":"Vivek Nigam, Andre Scedrov, and Carolyn L. Talcott.","author":"Urquiza Abra\u00e3o Aires","year":"2019","unstructured":"Abra\u00e3o Aires Urquiza , Musab A. AlTurki , Max I. Kanovich , Tajana Ban Kirigin , Vivek Nigam, Andre Scedrov, and Carolyn L. Talcott. 2019 . Resource-Bounded Intruders in Denial of Service Attacks. In CSF. IEEE , 382\u2013396. Abra\u00e3o Aires Urquiza, Musab A. AlTurki, Max I. Kanovich, Tajana Ban Kirigin, Vivek Nigam, Andre Scedrov, and Carolyn L. Talcott. 2019. Resource-Bounded Intruders in Denial of Service Attacks. In CSF. IEEE, 382\u2013396."},{"key":"e_1_2_1_79_1","volume-title":"Boon Thau Loo, and Andre Scedrov","author":"Wang Anduo","year":"2011","unstructured":"Anduo Wang , Carolyn L. Talcott , Limin Jia , Boon Thau Loo, and Andre Scedrov . 2011 . Analyzing BGP Instances in Maude. In FMOODS\u201911 (LNCS , Vol. 6722). Springer, 334\u2013 348 . Anduo Wang, Carolyn L. Talcott, Limin Jia, Boon Thau Loo, and Andre Scedrov. 2011. Analyzing BGP Instances in Maude. In FMOODS\u201911 (LNCS, Vol. 6722). Springer, 334\u2013348."},{"key":"e_1_2_1_80_1","volume-title":"ICDCS Workshop on Distributed System Validation and Verification","author":"Wang Bow-Yaw","year":"2000","unstructured":"Bow-Yaw Wang , Jos\u00e9 Meseguer , and Carl A. Gunter . 2000. Specification and Formal Analysis of a PLAN Algorithm in Maude . In ICDCS Workshop on Distributed System Validation and Verification 2000 . E49\u2013E56. Bow-Yaw Wang, Jos\u00e9 Meseguer, and Carl A. Gunter. 2000. Specification and Formal Analysis of a PLAN Algorithm in Maude. In ICDCS Workshop on Distributed System Validation and Verification 2000. E49\u2013E56."},{"key":"e_1_2_1_81_1","volume-title":"59th IEEE Conference on Decision and Control, CDC","author":"Wang Yu","year":"2020","unstructured":"Yu Wang , Nima Roohi , Matthew West , Mahesh Viswanathan , and Geir E. Dullerud . 2020. Statistically Model Checking PCTL Specifications on Markov Decision Processes via Reinforcement Learning . In 59th IEEE Conference on Decision and Control, CDC 2020 . IEEE, 1392\u20131397. Yu Wang, Nima Roohi, Matthew West, Mahesh Viswanathan, and Geir E. Dullerud. 2020. Statistically Model Checking PCTL Specifications on Markov Decision Processes via Reinforcement Learning. In 59th IEEE Conference on Decision and Control, CDC 2020. IEEE, 1392\u20131397."},{"key":"e_1_2_1_82_1","volume-title":"N-Tube: Formally Verified Secure Bandwidth Reservation in Path-Aware Internet Architectures. In CSF","author":"Weghorn Thilo","year":"2022","unstructured":"Thilo Weghorn , Si Liu , Christoph Sprenger , Adrian Perrig , and David Basin . 2022 . N-Tube: Formally Verified Secure Bandwidth Reservation in Path-Aware Internet Architectures. In CSF 2022. IEEE. To appear Thilo Weghorn, Si Liu, Christoph Sprenger, Adrian Perrig, and David Basin. 2022. N-Tube: Formally Verified Secure Bandwidth Reservation in Path-Aware Internet Architectures. In CSF 2022. IEEE. To appear"},{"key":"e_1_2_1_83_1","volume-title":"An Integrated Experimental Environment for Distributed Systems and Networks","author":"White Brian","unstructured":"Brian White , Jay Lepreau , Leigh Stoller , Robert Ricci , Shashi Guruprasad , Mac Newbold , Mike Hibler , Chad Barb , and Abhijeet Joglekar . 2002. An Integrated Experimental Environment for Distributed Systems and Networks . In OSDI. USENIX Association . Brian White, Jay Lepreau, Leigh Stoller, Robert Ricci, Shashi Guruprasad, Mac Newbold, Mike Hibler, Chad Barb, and Abhijeet Joglekar. 2002. An Integrated Experimental Environment for Distributed Systems and Networks. In OSDI. USENIX Association."},{"key":"e_1_2_1_84_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ic.2006.05.002"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563299","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563299","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:38:10Z","timestamp":1750178290000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563299"}},"issued":{"date-parts":[[2022,10,31]]},"references-count":84,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2022,10,31]]}},"alternative-id":["10.1145\/3563299"],"URL":"https:\/\/doi.org\/10.1145\/3563299","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2022,10,31]]},"assertion":[{"value":"2022-10-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,7,2]],"date-time":"2026-07-02T16:09:54Z","timestamp":1783008594797,"version":"3.54.5"},"reference-count":53,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2024,10,8]],"date-time":"2024-10-08T00:00:00Z","timestamp":1728345600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,10,8]]},"abstract":"<jats:p>We describe the design and implementation of Must, a framework for modeling and automatically verifying distributed systems. Must provides a concurrency API that supports multiple communication models, on top of a mainstream programming language, such as Rust. Given a program using this API, Must verifies it by means of a novel, optimal dynamic partial order reduction algorithm that maintains completeness and optimality for all communication models supported by the API.<\/jats:p>\n                  <jats:p>We use Must to design and verify models of distributed systems in an industrial context. We demonstrate the usability of Must\u2019s API by modeling high-level system idioms (e.g., timeouts, leader election, versioning) as abstractions over the core API, and demonstrate Must\u2019s scalability by verifying systems employed in production (e.g., replicated logs, distributed transaction management protocols), the verification of which lies beyond the capacity of previous model checkers.<\/jats:p>","DOI":"10.1145\/3689778","type":"journal-article","created":{"date-parts":[[2024,10,8]],"date-time":"2024-10-08T03:23:04Z","timestamp":1728357784000},"page":"1900-1927","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Model Checking Distributed Protocols in Must"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2727-8865","authenticated-orcid":false,"given":"Constantin","family":"Enea","sequence":"first","affiliation":[{"name":"AWS, Paris, France"},{"name":"Ecole Polytechnique, Paris, France"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-1158-526X","authenticated-orcid":false,"given":"Dimitra","family":"Giannakopoulou","sequence":"additional","affiliation":[{"name":"AWS, Santa Clara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7905-9739","authenticated-orcid":false,"given":"Michalis","family":"Kokologiannakis","sequence":"additional","affiliation":[{"name":"ETH Zurich, Zurich, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2136-0542","authenticated-orcid":false,"given":"Rupak","family":"Majumdar","sequence":"additional","affiliation":[{"name":"MPI-SWS, Kaiserslautern, Germany"},{"name":"AWS, T\u00fcbingen, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,10,8]]},"reference":[{"key":"e_1_3_1_2_1","first-page":"353","volume-title":"TACAS 2015 (LNCS)","author":"Abdulla Parosh Aziz","year":"2015","unstructured":"Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, and Konstantinos Sagonas. 2015. \u201cStateless model checking for TSO and PSO.\u201d In: TACAS 2015 (LNCS). Vol. 9035. Springer, Berlin, Heidelberg, 353\u2013367. https:\/\/doi.org\/10.1007\/978-3-662-46681-0_28 10.1007\/978-3-662-46681-0_28."},{"key":"e_1_3_1_3_1","first-page":"373","volume-title":"POPL 2014","author":"Abdulla Parosh Aziz","year":"2014","unstructured":"Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. \u201cOptimal dynamic partial order reduction.\u201d In: POPL 2014. ACM, New York, NY, USA, 373\u2013384. https:\/\/doi.org\/10.1145\/2535838.2535845 10.1145\/2535838.2535845."},{"key":"e_1_3_1_4_1","first-page":"150:1","article-title":"Optimal stateless model checking for reads-from equivalence under sequential consistency","volume":"3","author":"Abdulla Parosh Aziz","year":"2019","unstructured":"Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, Magnus Lang, Tuan Phong Ngo, and Konstantinos Sagonas. Oct. 10, 2019. \u201cOptimal stateless model checking for reads-from equivalence under sequential consistency.\u201d Proc. ACM Program. Lang., 3, (Oct. 10, 2019), 150:1\u2013150:29, OOPSLA, (Oct. 10, 2019). https:\/\/doi.org\/10.1145\/3360576 10.1145\/3360576.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_5_1","first-page":"134","volume-title":"CAV 2016 (LNCS)","author":"Abdulla Parosh Aziz","year":"2016","unstructured":"Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, and Carl Leonardsson. 2016. \u201cStateless model checking for POWER.\u201d In: CAV 2016 (LNCS). Vol. 9780. Springer, Berlin, Heidelberg, 134\u2013156. https:\/\/doi.org\/10.1007\/978-3-319-41540-6_8 10.1007\/978-3-319-41540-6_8."},{"key":"e_1_3_1_6_1","first-page":"135:1","article-title":"Optimal stateless model checking under the release-acquire semantics","volume":"2","author":"Abdulla Parosh Aziz","year":"2018","unstructured":"Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, and Tuan Phong Ngo. Oct. 2018. \u201cOptimal stateless model checking under the release-acquire semantics.\u201d Proc. ACM Program. Lang., 2, OOPSLA, (Oct. 2018), 135:1\u2013135:29. https:\/\/doi.org\/10.1145\/3276505 10.1145\/3276505.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_7_1","first-page":"105","volume-title":"TACAS 2023 (LNCS)","author":"Abdulla Parosh Aziz","year":"2023","unstructured":"Parosh Aziz Abdulla, Mohamed Faouzi Atig, S. Krishna, Ashutosh Gupta, and Omkar Tuppe. 2023. \u201cOptimal Stateless Model Checking for Causal Consistency.\u201d In: TACAS 2023 (LNCS). Ed. by Sriram Sankaranarayanan and Natasha Sharygina. Vol. 13993. Springer, 105\u2013125. https:\/\/doi.org\/10.1007\/978-3-031-30823-9_6 10.1007\/978-3-031-30823-9_6."},{"key":"e_1_3_1_8_1","first-page":"341","volume-title":"CAV 2021","author":"Agarwal Pratyush","year":"2021","unstructured":"Pratyush Agarwal, Krishnendu Chatterjee, Shreya Pathak, Andreas Pavlogiannis, and Viktor Toman. July 2021. \u201cStateless Model Checking Under a Reads-Value-From Equivalence.\u201d In: CAV 2021. Ed. by Alexandra Silva and K. Rustan M. Leino. Springer International Publishing, Cham, (July 2021), 341\u2013366. isbn: 978-3-030-81685-8. https:\/\/doi.org\/10.1007\/978-3-030-81685-8_16 10.1007\/978-3-030-81685-8_16."},{"key":"e_1_3_1_9_1","first-page":"526","volume-title":"CAV 2017","author":"Albert Elvira","year":"2017","unstructured":"Elvira Albert, Puri Arenas, Mar\u00eda Garc\u00eda de la Banda, Miguel Gomez-Zamalloa, and Peter J. Stuckey. 2017. \u201cContext-sensitive dynamic partial order reduction.\u201d In: CAV 2017. Ed. by Rupak Majumdar and Viktor Kuncak. Springer International Publishing, Cham, 526\u2013543. isbn: 978-3-319-63387-9. https:\/\/doi.org\/10.1007\/978-3-319-63387-9_26 10.1007\/978-3-319-63387-9_26."},{"key":"e_1_3_1_10_1","first-page":"392","volume-title":"CAV 2018","author":"Albert Elvira","year":"2018","unstructured":"Elvira Albert, Miguel Gomez-Zamalloa, Miguel Isabel, and Albert Rubio. 2018. \u201cConstrained dynamic partial order reduction.\u201d In: CAV 2018. Ed. by Hana Chockler and Georg Weissenbacher. Springer International Publishing, Cham, 392\u2013410. isbn: 978-3-319-96142-2. https:\/\/doi.org\/10.1007\/978-3-319-96142-2_24 10.1007\/978-3-319-96142-2_24."},{"key":"e_1_3_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627752"},{"key":"e_1_3_1_12_1","volume-title":"Data-centric Programming for Distributed Systems","author":"Alvaro Peter","year":"2015","unstructured":"Peter Alvaro. 2015. \u201cData-centric Programming for Distributed Systems.\u201d Ph.D. Dissertation. University of California, Santa Cruz, USA. http:\/\/www.escholarship.org\/uc\/item\/2296w4q3."},{"key":"e_1_3_1_13_1","first-page":"229","volume-title":"TACAS 2018 (LNCS)","author":"Aronis Stavros","year":"2018","unstructured":"Stavros Aronis, Bengt Jonsson, Magnus L\u00e4ng, and Konstantinos Sagonas. 2018. \u201cOptimal dynamic partial order reduction with observers.\u201d In: TACAS 2018 (LNCS). Vol. 10806. Springer, 229\u2013248. https:\/\/doi.org\/10.1007\/978-3-319-89963-3_14 10.1007\/978-3-319-89963-3_14."},{"key":"e_1_3_1_14_1","article-title":"Dynamic Partial Order Reduction for Checking Correctness against Transaction Isolation Levels","volume":"7","author":"Bouajjani Ahmed","year":"2023","unstructured":"Ahmed Bouajjani, Constantin Enea, and Enrique Rom\u00e1n-Calvo. June 2023. \u201cDynamic Partial Order Reduction for Checking Correctness against Transaction Isolation Levels.\u201d Proc. ACM Program. Lang., 7, PLDI, (June 2023). https:\/\/doi.org\/10.1145\/3591243 10.1145\/3591243.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_15_1","first-page":"31:1","article-title":"Data-centric dynamic partial order reduction","volume":"2","author":"Chalupa Marek","year":"2017","unstructured":"Marek Chalupa, Krishnendu Chatterjee, Andreas Pavlogiannis, Nishant Sinha, and Kapil Vaidya. Dec. 2017. \u201cData-centric dynamic partial order reduction.\u201d Proc. ACM Program. Lang., 2, POPL, (Dec. 2017), 31:1\u201331:30. https:\/\/doi.org\/10.1145\/3158119 10.1145\/3158119.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_16_1","article-title":"Value-Centric Dynamic Partial Order Reduction","volume":"3","author":"Chatterjee Krishnendu","year":"2019","unstructured":"Krishnendu Chatterjee, Andreas Pavlogiannis, and Viktor Toman. Oct. 2019. \u201cValue-Centric Dynamic Partial Order Reduction.\u201d Proc. ACM Program. Lang., 3, OOPSLA, (Oct. 2019). https:\/\/doi.org\/10.1145\/3360550 10.1145\/3360550.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_17_1","first-page":"154","volume-title":"Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015","author":"Deligiannis Pantazis","year":"2015","unstructured":"Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Akash Lal, and Paul Thomson. 2015. \u201cAsynchronous programming, analysis and testing with state machines.\u201d In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015. Ed. by David Grove and Stephen M. Blackburn. ACM, 154\u2013164. https:\/\/doi.org\/10.1145\/2737924.2737996 10.1145\/2737924.2737996."},{"key":"e_1_3_1_18_1","first-page":"108","volume-title":"SoCC \u201821: ACM Symposium on Cloud Computing, Seattle, WA, USA, November 1 - 4, 2021","author":"Deligiannis Pantazis","year":"2021","unstructured":"Pantazis Deligiannis, Narayanan Ganapathy, Akash Lal, and Shaz Qadeer. 2021. \u201cBuilding Reliable Cloud Services Using Coyote Actors.\u201d In: SoCC \u201821: ACM Symposium on Cloud Computing, Seattle, WA, USA, November 1 - 4, 2021. Ed. by Carlo Curino, Georgia Koutrika, and Ravi Netravali. ACM, 108\u2013121. https:\/\/doi.org\/10.1145\/3472883.3486983 10.1145\/3472883.3486983."},{"key":"e_1_3_1_19_1","first-page":"433","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems - 29th International Conference, TACAS 2023, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Paris, France, April 22-27, 2023, Proceedings, Part II (Lecture Notes in Computer Science)","author":"Deligiannis Pantazis","year":"2023","unstructured":"Pantazis Deligiannis, Aditya Senthilnathan, Fahad Nayyar, Chris Lovett, and Akash Lal. 2023. \u201cIndustrial-Strength Controlled Concurrency Testing for sc C tt # Programs with sc Coyote.\u201d In: Tools and Algorithms for the Construction and Analysis of Systems - 29th International Conference, TACAS 2023, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Paris, France, April 22-27, 2023, Proceedings, Part II (Lecture Notes in Computer Science). Ed. by Sriram Sankaranarayanan and Natasha Sharygina. Vol. 13994. Springer, 433\u2013452. https:\/\/doi.org\/10.1007\/978-3-031-30820-8_26 10.1007\/978-3-031-30820-8_26."},{"key":"e_1_3_1_20_1","first-page":"321","volume-title":"ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI \u201813, Seattle, WA, USA, June 16-19, 2013","author":"Desai Ankush","year":"2013","unstructured":"Ankush Desai, Vivek Gupta, Ethan K. Jackson, Shaz Qadeer, Sriram K. Rajamani, and Damien Zufferey. 2013. \u201cP: safe asynchronous event-driven programming.\u201d In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI \u201813, Seattle, WA, USA, June 16-19, 2013. Ed. by Hans-Juergen Boehm and Cormac Flanagan. ACM, 321\u2013332. https:\/\/doi.org\/10.1145\/2491956.2462184 10.1145\/2491956.2462184."},{"key":"e_1_3_1_21_1","first-page":"159:1","article-title":"Compositional programming and testing of dynamic distributed systems","volume":"2","author":"Desai Ankush","year":"2018","unstructured":"Ankush Desai, Amar Phanishayee, Shaz Qadeer, and Sanjit A. Seshia. 2018. \u201cCompositional programming and testing of dynamic distributed systems.\u201d Proc. ACM Program. Lang., 2, OOPSLA, 159:1\u2013159:30. https:\/\/doi.org\/10.1145\/3276529 10.1145\/3276529.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_22_1","article-title":"A Partial Order View of Message-Passing Communication Models","volume":"7","author":"Di Giusto Cinzia","year":"2023","unstructured":"Cinzia Di Giusto, Davide Ferr\u00e9, Laetitia Laversa, and Etienne Lozes. 2023. \u201cA Partial Order View of Message-Passing Communication Models.\u201d Proc. ACM Program. Lang., 7, POPL. https:\/\/doi.org\/10.1145\/3571248 10.1145\/3571248.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_23_1","unstructured":"Erlang. 2023. Concurrent Programming. (). Retrieved July 12 2023 from https:\/\/www.erlang.org\/doc\/getting_started\/conc_prog.html."},{"key":"e_1_3_1_24_1","first-page":"110","volume-title":"POPL 2005","author":"Flanagan Cormac","year":"2005","unstructured":"Cormac Flanagan and Patrice Godefroid. 2005. \u201cDynamic partial-order reduction for model checking software.\u201d In: POPL 2005. ACM, New York, NY, USA, 110\u2013121. https:\/\/doi.org\/10.1145\/1040305.1040315 10.1145\/1040305.1040315."},{"key":"e_1_3_1_25_1","first-page":"174","article-title":"Model checking for programming languages using VeriSoft","author":"Godefroid Patrice","year":"1997","unstructured":"Patrice Godefroid. 1997. \u201cModel checking for programming languages using VeriSoft.\u201d In: POPL 1997. ACM, Paris, France, 174\u2013186. https:\/\/doi.org\/10.1145\/263699.263717 10.1145\/263699.263717.","journal-title":"POPL 1997"},{"key":"e_1_3_1_26_1","doi-asserted-by":"publisher","DOI":"10.5555\/547238"},{"key":"e_1_3_1_27_1","first-page":"51","volume-title":"Erlang 2011","author":"Gotovos Alkis","year":"2011","unstructured":"Alkis Gotovos, Maria Christakis, and Konstantinos Sagonas. 2011. \u201cTest-Driven Development of Concurrent Programs Using Concuerror.\u201d In: Erlang 2011. ACM, Tokyo, Japan, 51\u201361. isbn: 9781450308595. https:\/\/doi.org\/10.1145\/2034654.2034664 10.1145\/2034654.2034664."},{"key":"e_1_3_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.588521"},{"key":"e_1_3_1_29_1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3485534","article-title":"QuickSilver: modeling and parameterized verification for distributed agreement-based systems","volume":"5","author":"Jaber Nouraldin","year":"2021","unstructured":"Nouraldin Jaber, Christopher Wagner, Swen Jacobs, Milind Kulkarni, and Roopsha Samanta. 2021. \u201cQuickSilver: modeling and parameterized verification for distributed agreement-based systems.\u201d Proc. ACM Program. Lang., 5, OOPSLA, 1\u201331. https:\/\/doi.org\/10.1145\/3485534 10.1145\/3485534.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_30_1","volume-title":"NSDI 2007","author":"Killian Charles","year":"2007","unstructured":"Charles Killian, James W. Anderson, Ranjit Jhala, and Amin Vahdat. Apr. 2007. \u201cLife, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code.\u201d In: NSDI 2007. USENIX Association, Cambridge, MA, (Apr. 2007). https:\/\/www.usenix.org\/conference\/nsdi-07\/life-death-and-critical-transition-finding-liveness-bugs-systems-code."},{"key":"e_1_3_1_31_1","first-page":"179","volume-title":"PLDI 2007","author":"Killian Charles Edwin","year":"2007","unstructured":"Charles Edwin Killian, James W. Anderson, Ryan Braud, Ranjit Jhala, and Amin M. Vahdat. 2007. \u201cMace: Language Support for Building Distributed Systems.\u201d In: PLDI 2007. ACM, San Diego, California, USA, 179\u2013188. isbn: 9781595936332. https:\/\/doi.org\/10.1145\/1250734.1250755 10.1145\/1250734.1250755."},{"key":"e_1_3_1_32_1","article-title":"Truly stateless, optimal dynamic partial order reduction","volume":"6","author":"Kokologiannakis Michalis","year":"2022","unstructured":"Michalis Kokologiannakis, Iason Marmanis, Vladimir Gladstein, and Viktor Vafeiadis. Jan. 2022. \u201cTruly stateless, optimal dynamic partial order reduction.\u201d Proc. ACM Program. Lang., 6, POPL, (Jan. 2022). https:\/\/doi.org\/10.1145\/3498711 10.1145\/3498711.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_33_1","doi-asserted-by":"crossref","unstructured":"Michalis Kokologiannakis Iason Marmanis and Viktor Vafeiadis. 2023. \u201cUnblocking Dynamic Partial Order Reduction.\u201d In: CAV 2023.","DOI":"10.1007\/978-3-031-37706-8_12"},{"key":"e_1_3_1_34_1","volume-title":"PLDI 2019","author":"Kokologiannakis Michalis","year":"2019","unstructured":"Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis. 2019. \u201cModel checking for weakly consistent libraries.\u201d In: PLDI 2019. ACM, New York, NY, USA. https:\/\/doi.org\/10.1145\/3314221.3314609 10.1145\/3314221.3314609."},{"key":"e_1_3_1_35_1","first-page":"1157","volume-title":"ASPLOS 2020 (ASPLOS \u201820)","author":"Kokologiannakis Michalis","year":"2020","unstructured":"Michalis Kokologiannakis and Viktor Vafeiadis. 2020. \u201cHMC: Model checking for hardware memory models.\u201d In: ASPLOS 2020 (ASPLOS \u201820). ACM, Lausanne, Switzerland, 1157\u20131171. isbn: 9781450371025. https:\/\/doi.org\/10.1145\/3373376.3378480 10.1145\/3373376.3378480."},{"key":"e_1_3_1_36_1","volume-title":"Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers","author":"Lamport Leslie","year":"2002","unstructured":"Leslie Lamport. 2002. Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley. isbn: 0-3211-4306-X. http:\/\/research.microsoft.com\/users\/lamport\/tla\/book.html."},{"key":"e_1_3_1_37_1","doi-asserted-by":"crossref","unstructured":"Steven Lauterburg Mirco Dotta Darko Marinov and Gul Agha. 2009. \u201cA Framework for State-Space Exploration of Java-Based Actor Programs.\u201d In: ASE 2009 468\u2013479. https:\/\/doi.org\/10.1109\/ASE.2009.88 10.1109\/ASE.2009.88.","DOI":"10.1109\/ASE.2009.88"},{"key":"e_1_3_1_38_1","unstructured":"Loom. (). Retrieved July 6 2023 from https:\/\/github.com\/tokio-rs\/loom."},{"key":"e_1_3_1_39_1","first-page":"680","article-title":"Partial Order Reduction for Event-Driven Multithreaded Programs","author":"Maiya Pallavi","year":"2016","unstructured":"Pallavi Maiya, Rahul Gupta, Aditya Kanade, and Rupak Majumdar. 2016. \u201cPartial Order Reduction for Event-Driven Multithreaded Programs.\u201d In: TACAS 2016. Springer Berlin Heidelberg, Berlin, Heidelberg, 680\u2013697. isbn: 978-3-662-49674-9. https:\/\/doi.org\/10.1007\/978-3-662-49674-9_44 10.1007\/978-3-662-49674-9_44.","journal-title":"TACAS 2016"},{"key":"e_1_3_1_40_1","article-title":"Distributed System Fuzzing","author":"Meng Ruijie","year":"2023","unstructured":"Ruijie Meng, George Pirlea, Abhik Roychoudhury, and Ilya Sergey. 2023. \u201cDistributed System Fuzzing.\u201d CoRR, abs\/2305.02601. arXiv: 2305.02601. https:\/\/arxiv.org\/abs\/2305.02601 https:\/\/doi.org\/10.48550\/ARXIV.2305.02601 10.48550\/ARXIV.2305.02601.","journal-title":"CoRR"},{"key":"e_1_3_1_41_1","first-page":"267","article-title":"Finding and Reproducing Heisenbugs in Concurrent Programs","author":"Musuvathi Madanlal","year":"2008","unstructured":"Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, G\u00e9rard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. 2008. \u201cFinding and Reproducing Heisenbugs in Concurrent Programs.\u201d In: 8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008, December 8-10, 2008, San Diego, California, USA, Proceedings. Ed. by Richard Draves and Robbert van Renesse. USENIX Association, 267\u2013280. http:\/\/www.usenix.org\/events\/osdi08\/tech\/full%5C_papers\/musuvathi\/musuvathi.pdf.","journal-title":"8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008, December 8-10, 2008, San Diego, California, USA, Proceedings"},{"key":"e_1_3_1_42_1","first-page":"131","article-title":"CDSChecker: Checking concurrent data structures written with C\/C++ atomics","author":"Norris Brian","year":"2013","unstructured":"Brian Norris and Brian Demsky. 2013. \u201cCDSChecker: Checking concurrent data structures written with C\/C++ atomics.\u201d In: OOPSLA 2013. ACM, 131\u2013150. https:\/\/doi.org\/10.1145\/2509136.2509514 10.1145\/2509136.2509514.","journal-title":"OOPSLA 2013"},{"key":"e_1_3_1_43_1","first-page":"160:1","article-title":"Randomized testing of distributed systems with probabilistic guarantees","volume":"2","author":"Ozkan Burcu Kulahcioglu","year":"2018","unstructured":"Burcu Kulahcioglu Ozkan, Rupak Majumdar, Filip Niksic, Mitra Tabaei Befrouei, and Georg Weissenbacher. 2018. \u201cRandomized testing of distributed systems with probabilistic guarantees.\u201d Proc. ACM Program. Lang., 2, OOPSLA, 160:1\u2013160:28. https:\/\/doi.org\/10.1145\/3276530 10.1145\/3276530.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_44_1","first-page":"614","volume-title":"Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13-17, 2016","author":"Padon Oded","year":"2016","unstructured":"Oded Padon, Kenneth L. McMillan, Aurojit Panda, Mooly Sagiv, and Sharon Shoham. 2016. \u201cIvy: safety verification by interactive generalization.\u201d In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13-17, 2016. Ed. by Chandra Krintz and Emery D. Berger. ACM, 614\u2013630. https:\/\/doi.org\/10.1145\/2908080.2908118 10.1145\/2908080.2908118."},{"key":"e_1_3_1_45_1","first-page":"91","article-title":"Chain Replication for Supporting High Throughput and Availability","author":"Renesse Robbert","year":"2004","unstructured":"Robbert van Renesse and Fred B. Schneider. 2004. \u201cChain Replication for Supporting High Throughput and Availability.\u201d In: 6th Symposium on Operating System Design and Implementation (OSDI 2004), San Francisco, California, USA, December 6-8, 2004. Ed. by Eric A. Brewer and Peter Chen. USENIX Association, 91\u2013104. http:\/\/www.usenix.org\/events\/osdi04\/tech\/renesse.html.","journal-title":"6th Symposium on Operating System Design and Implementation (OSDI 2004), San Francisco, California, USA, December 6-8, 2004"},{"key":"e_1_3_1_46_1","first-page":"456","volume-title":"CONCUR 2015 (LIPIcs)","author":"Rodr\u00edguez C\u00e9sar","year":"2015","unstructured":"C\u00e9sar Rodr\u00edguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. \u201cUnfolding-based Partial Order Reduction.\u201d In: CONCUR 2015 (LIPIcs). Vol. 42. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 456\u2013469. https:\/\/doi.org\/10.4230\/LIPIcs.CONCUR.2015.456 10.4230\/LIPIcs.CONCUR.2015.456."},{"key":"e_1_3_1_47_1","first-page":"339","volume-title":"FASE 2006","author":"Sen Koushik","year":"2006","unstructured":"Koushik Sen and Gul Agha. 2006. \u201cAutomated Systematic Testing of Open Distributed Programs.\u201d In: FASE 2006. Ed. by Luciano Baresi and Reiko Heckel. Springer Berlin Heidelberg, Berlin, Heidelberg, 339\u2013356. isbn: 978-3-540-33094-3. https:\/\/doi.org\/10.1007\/11693017_25 10.1007\/11693017_25."},{"key":"e_1_3_1_48_1","first-page":"28:1","article-title":"Programming and proving with distributed protocols","volume":"2","author":"Sergey Ilya","year":"2018","unstructured":"Ilya Sergey, James R. Wilcox, and Zachary Tatlock. 2018. \u201cProgramming and proving with distributed protocols.\u201d Proc. ACM Program. Lang., 2, POPL, 28:1\u201328:30. https:\/\/doi.org\/10.1145\/3158116 10.1145\/3158116.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_49_1","unstructured":"Shuttle. (). Retrieved July 6 2023 from https:\/\/github.com\/awslabs\/shuttle."},{"key":"e_1_3_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/TNET.2002.808407"},{"key":"e_1_3_1_51_1","first-page":"219","volume-title":"FORTE 2012","author":"Tasharofi Samira","year":"2012","unstructured":"Samira Tasharofi, Rajesh K. Karmani, Steven Lauterburg, Axel Legay, Darko Marinov, and Gul Agha. 2012. \u201cTransDPOR: A Novel Dynamic Partial-Order Reduction Technique for Testing Actor Programs.\u201d In: FORTE 2012. Ed. by Holger Giese and Grigore Rosu. Springer Berlin Heidelberg, Berlin, Heidelberg, 219\u2013234. https:\/\/doi.org\/10.1007\/978-3-642-30793-5_14 10.1007\/978-3-642-30793-5_14."},{"key":"e_1_3_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3586053"},{"key":"e_1_3_1_53_1","article-title":"Mostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking Functions","volume":"8","author":"Yao Jianan","year":"2024","unstructured":"Jianan Yao, Runzhou Tao, Ronghui Gu, and Jason Nieh. Jan. 2024. \u201cMostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking Functions.\u201d Proc. ACM Program. Lang., 8, POPL, (Jan. 2024). https:\/\/doi.org\/10.1145\/3632877 10.1145\/3632877.","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_54_1","first-page":"366","volume-title":"Proceedings of the 2018 ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC\/SIGSOFT FSE 2018, Lake Buena Vista, FL, USA, November 04-09, 2018","author":"Yi Qiuping","year":"2018","unstructured":"Qiuping Yi and Jeff Huang. 2018. \u201cConcurrency verification with maximal path causality.\u201d In: Proceedings of the 2018 ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC\/SIGSOFT FSE 2018, Lake Buena Vista, FL, USA, November 04-09, 2018. Ed. by Gary T. Leavens, Alessandro Garcia, and Corina S. Pasareanu. ACM, 366\u2013376. https:\/\/doi.org\/10.1145\/3236024.3236048 10.1145\/3236024.3236048."}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3689778","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3689778","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T09:06:17Z","timestamp":1770195977000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3689778"}},"issued":{"date-parts":[[2024,10,8]]},"references-count":53,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2024,10,8]]}},"alternative-id":["10.1145\/3689778"],"URL":"https:\/\/doi.org\/10.1145\/3689778","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2024,10,8]]},"assertion":[{"value":"2024-04-06","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-08-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-10-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}],"items-per-page":20,"query":{"start-index":0,"search-terms":null}}}