{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2467,"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,6,8]],"date-time":"2026-06-08T20:07:41Z","timestamp":1780949261179,"version":"3.54.1"},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T00:00:00Z","timestamp":1780876800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2237379"],"award-info":[{"award-number":["2237379"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2450426"],"award-info":[{"award-number":["2450426"]}],"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":[[2026,6,8]]},"abstract":"<jats:p>During chip development, engineers must target different technologies, such as simulation and various ASIC and FPGA technologies. Conventionally, they split parts of the code (e.g., memories) into separate technology-specialized blocks implementing the same high-level behavior. This leads to brittle code, with multiple but subtly different blocks describing the same semantic behavior, harming verification, agility, and extensibility.<\/jats:p>\n                  <jats:p>We propose fungible memories, an HDL-level \"write once, map anywhere\" memory abstraction with rich enough semantics to automatically target all relevant technologies using a single generic interface. We incorporate fungible memories into a compiler called Memo. For designs without a specific technology mapping, we also present a memory decompiler which lifts memories from an existing gate-level design to Memo, enabling automated technology re-targeting, which is a holy grail for digital designers. We present a structure-aware equality saturation technique which scales to netlists with millions of cells and identifies memories that the state of the art cannot. We demonstrate that Memo effectively targets backends across different technology platforms (simulation, ASIC, and FPGA) over a suite of representative designs, including a RISC-V multicore SoC.<\/jats:p>","DOI":"10.1145\/3808294","type":"journal-article","created":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T18:04:09Z","timestamp":1780941849000},"page":"1178-1201","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Fungible Memories for Automated Technology Mapping and Retargeting"],"prefix":"10.1145","volume":"10","author":[{"ORCID":"https:\/\/orcid.org\/0009-0003-8349-7701","authenticated-orcid":false,"given":"Zachary D.","family":"Sisco","sequence":"first","affiliation":[{"name":"The Chinese University of Hong Kong, Shenzhen, Shenzhen, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-8249-0668","authenticated-orcid":false,"given":"Sijie","family":"Kong","sequence":"additional","affiliation":[{"name":"University of California, Santa Barbara, Santa Barbara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0555-6919","authenticated-orcid":false,"given":"Daniel","family":"Ruelas-Petrisko","sequence":"additional","affiliation":[{"name":"University of Washington, Seattle, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-3509-4018","authenticated-orcid":false,"given":"Jingtao","family":"Xia","sequence":"additional","affiliation":[{"name":"University of California, Santa Barbara, Santa Barbara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-6946-800X","authenticated-orcid":false,"given":"Julian","family":"Springer","sequence":"additional","affiliation":[{"name":"Technische Universit\u00e4t Berlin, Berlin, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-0524-5513","authenticated-orcid":false,"given":"Varun","family":"Rao","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, Berkeley, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-0721-1053","authenticated-orcid":false,"given":"Spencer","family":"Wang","sequence":"additional","affiliation":[{"name":"University of California, Santa Barbara, Santa Barbara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9754-233X","authenticated-orcid":false,"given":"Gus Henry","family":"Smith","sequence":"additional","affiliation":[{"name":"Southmountain Research, Seattle, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-1199-6129","authenticated-orcid":false,"given":"Ben","family":"Hardekopf","sequence":"additional","affiliation":[{"name":"University of California, Santa Barbara, Santa Barbara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1443-1373","authenticated-orcid":false,"given":"Jonathan","family":"Balkind","sequence":"additional","affiliation":[{"name":"University of California, Santa Barbara, Santa Barbara, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,6,8]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/IEEESTD.2001.93352"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2016.45"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.13154\/tches.v2020.i4.309-336"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228584"},{"key":"e_1_2_1_5_1","first-page":"197","article-title":"Berkeley logic interchange format (BLIF)","volume":"2","author":"Berkeley UC","year":"1992","unstructured":"UC Berkeley. 1992. Berkeley logic interchange format (BLIF). Oct Tools Distribution, 2 (1992), 197\u2013247.","journal-title":"Oct Tools Distribution"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14295-6_5"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/DAC63849.2025.11133110"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3649329.3656246"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.23919\/FPL.2017.8056860"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH54963.2022.00016"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2024.3410154"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-79876-5_37"},{"key":"e_1_2_1_13_1","unstructured":"RISC-V Foundation. 2025. The RISC-V Instruction Set Manual Volume I: Unprivileged Architecture."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/EWME.2014.6877402"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2966986.2980098"},{"key":"e_1_2_1_16_1","volume-title":"Patterson","author":"Hennessy John L.","year":"2017","unstructured":"John L. Hennessy and David A. Patterson. 2017. Computer Architecture: A Quantitative Approach (sixth ed.). Morgan Kaufmann."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCAD66269.2025.11240672"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00961871"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629629"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1723112.1723122"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386012"},{"key":"e_1_2_1_22_1","volume-title":"Techniques for program verification","author":"Nelson Charles Gregory","unstructured":"Charles Gregory Nelson. 1980. Techniques for program verification. Stanford University."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2020.2996145"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3583781.3590239"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591237"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.19090603"},{"key":"e_1_2_1_27_1","volume-title":"Haobin Ni, and Chandrakana Nandi.","author":"Smith Gus Henry","year":"2024","unstructured":"Gus Henry Smith, Colin Knizek, Daniel Petrisko, Zachary Tatlock, Jonathan Balkind, Gilbert Louis Bernstein, Haobin Ni, and Chandrakana Nandi. 2024. Scaling Program Synthesis Based Technology Mapping with Equality Saturation. arXiv preprint arXiv:2411.11036."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.48550\/arXiv.2404.00786"},{"key":"e_1_2_1_29_1","unstructured":"Wilson Snyder. 2024. Verilator. https:\/\/www.veripool.org\/verilator\/"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/TETC.2013.2294918"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.7873\/DATE.2013.264"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1594834.1480915"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3195970.3199848"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2021.3096794"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM53951.2022.9786123"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/IEEECONF59524.2023.10476812"},{"key":"e_1_2_1_37_1","unstructured":"Claire Wolf. 2024. Memory handling. https:\/\/yosyshq.readthedocs.io\/projects\/yosys\/en\/latest\/using_yosys\/synthesis\/memory.html"},{"key":"e_1_2_1_38_1","unstructured":"Claire Wolf. 2024. Yosys Open SYnthesis Suite. https:\/\/www.yosyshq.com"},{"key":"e_1_2_1_39_1","unstructured":"Xilinx. 2024. UltraScale Architecture Memory Resources. https:\/\/docs.amd.com\/v\/u\/en-US\/ug573-ultrascale-memory-resources"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591239"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3808294","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3808294","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T19:56:13Z","timestamp":1780948573000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3808294"}},"issued":{"date-parts":[[2026,6,8]]},"references-count":40,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2026,6,8]]}},"alternative-id":["10.1145\/3808294"],"URL":"https:\/\/doi.org\/10.1145\/3808294","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2026,6,8]]},"assertion":[{"value":"2025-11-14","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-04-03","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-06-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,6,19]],"date-time":"2026-06-19T07:53:10Z","timestamp":1781855590145,"version":"3.54.5"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2021,1,4]],"date-time":"2021-01-04T00:00:00Z","timestamp":1609718400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100008398","name":"VILLUM Foundation","doi-asserted-by":"crossref","award":["25804"],"award-info":[{"award-number":["25804"]}],"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":[[2021,1,4]]},"abstract":"<jats:p>We present the first specification and verification of an implementation of a causally-consistent distributed database that supports modular verification of full functional correctness properties of clients and servers. We specify and reason about the causally-consistent distributed database in Aneris, a higher-order distributed separation logic for an ML-like programming language with network primitives for programming distributed systems. We demonstrate that our specifications are useful, by proving the correctness of small, but tricky, synthetic examples involving causal dependency and by verifying a session manager library implemented on top of the distributed database. We use Aneris's facilities for modular specification and verification to obtain a highly modular development, where each component is verified in isolation, relying only on the specifications (not the implementations) of other components. We have used the Coq formalization of the Aneris logic to formalize all the results presented in the paper in the Coq proof assistant.<\/jats:p>","DOI":"10.1145\/3434323","type":"journal-article","created":{"date-parts":[[2021,1,4]],"date-time":"2021-01-04T12:34:24Z","timestamp":1609763664000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["Distributed causal memory: modular specification and verification in higher-order distributed separation logic"],"prefix":"10.1145","volume":"5","author":[{"given":"L\u00e9on","family":"Gondelman","sequence":"first","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6045-5232","authenticated-orcid":false,"given":"Simon Oddershede","family":"Gregersen","sequence":"additional","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2741-8119","authenticated-orcid":false,"given":"Abel","family":"Nieto","sequence":"additional","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2237-851X","authenticated-orcid":false,"given":"Amin","family":"Timany","sequence":"additional","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1320-0098","authenticated-orcid":false,"given":"Lars","family":"Birkedal","sequence":"additional","affiliation":[{"name":"Aarhus University, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,1,4]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-47958-3_4"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01784241"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14295-6_25"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290384"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463676.2465279"},{"key":"e_1_2_1_7_1","unstructured":"Lars Birkedal and Ale\u0161 Bizjak. 2017. Lecture Notes on Iris: Higher-Order Concurrent Separation Log. ( 2017 ). http:\/\/irisproject.org\/tutorial-pdfs\/iris-lecture-notes.pdf"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2076450.2076465"},{"key":"e_1_2_1_9_1","volume-title":"Parkinson","author":"Bornat Richard","year":"2015","unstructured":"Richard Bornat, Jade Alglave, and Matthew J. Parkinson. 2015. New Lace and Arsenic: adventures in weak memory with a program logic. CoRR abs\/1512.01416 ( 2015 ). arXiv: 1512.01416 http:\/\/arxiv.org\/abs\/1512.01416"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009888"},{"key":"e_1_2_1_11_1","first-page":"152","article-title":"From Session Causality to Causal Consistency","author":"Brzezinski Jerzy","year":"2004","unstructured":"Jerzy Brzezinski, Cezary Sobaniec, and Dariusz Wawrzyniak. 2004. From Session Causality to Causal Consistency. In PDP. IEEE Computer Society, 152-158.","journal-title":"PDP. IEEE Computer Society"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_4"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.CONCUR"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1365815.1365816"},{"key":"e_1_2_1_16_1","unstructured":"Kristina Chodorow and Michael Dirolf. 2010. MongoDB-The Definitive Guide: Powerful and Scalable Data Storage. O'Reilly."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.14778\/1454159.1454167"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676984"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3087801.3087802"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14107-2_24"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-49122-5_20"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/564585.564601"},{"key":"e_1_2_1_24_1","volume-title":"Abel Nieto, Amin Timany, and Lars Birkedal.","author":"Gondelman L\u00e9on","year":"2020","unstructured":"L\u00e9on Gondelman, Simon Oddershede Gregersen, Abel Nieto, Amin Timany, and Lars Birkedal. 2020. Distributed Causal Memory: Modular Specification and Verification in Higher-Order Distributed Separation Logic-Technical Appendix. https:\/\/iris-project.org\/pdfs\/2021-popl-ccddb-appendix.pdf"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837625"},{"key":"e_1_2_1_26_1","volume-title":"Failure Recovery: When the Cure Is Worse Than the Disease. In 14th Workshop on Hot Topics in Operating Systems, HotOS XIV, Santa Ana Pueblo","author":"Guo Zhenyu","year":"2013","unstructured":"Zhenyu Guo, Sean McDirmid, Mao Yang, Li Zhuang, Pu Zhang, Yingwei Luo, Tom Bergan, Madan Musuvathi, Zheng Zhang, and Lidong Zhou. 2013. Failure Recovery: When the Cure Is Worse Than the Disease. In 14th Workshop on Hot Topics in Operating Systems, HotOS XIV, Santa Ana Pueblo, New Mexico, USA, May 13-15, 2013. https:\/\/www.usenix.org\/conference\/ hotos13\/session\/guo"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2815400.2815428"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.588521"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951943"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","unstructured":"Ralf Jung Robbert Krebbers Jacques-Henri Jourdan Ales Bizjak Lars Birkedal and Derek Dreyer. 2018. Iris from the ground up: A modular foundation for higher-order concurrent separation logic. J. Funct. Program. 28 ( 2018 ) e20. https:\/\/doi.org\/10.1017\/S0956796818000151 10.1017\/S0956796818000151","DOI":"10.1017\/S0956796818000151"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676980"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158115"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250755"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","unstructured":"Robbert Krebbers Jacques-Henri Jourdan Ralf Jung Joseph Tassarotti Jan-Oliver Kaiser Amin Timany Arthur Chargu\u00e9raud and Derek Dreyer. 2018. MoSeL: a general extensible modal framework for interactive proofs in separation logic. PACMPL 2 ICFP ( 2018 ) 77 : 1-77 : 30. https:\/\/doi.org\/10.1145\/3236772 10.1145\/3236772","DOI":"10.1145\/3236772"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009855"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-44914-8_13"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3326938.3326942"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385966"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-57318-6_25"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-17511-4_20"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837622"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043593"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31424-7_36"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/SFCS"},{"key":"e_1_2_1_46_1","volume-title":"29th International Conference on Concurrency Theory, CONCUR 2018","volume":"118","author":"Schewe Sven","year":"2018","unstructured":"Sven Schewe and Lijun Zhang (Eds.). 2018. 29th International Conference on Concurrency Theory, CONCUR 2018, September 4-7, 2018, Beijing, China. LIPIcs, Vol. 118. Schloss Dagstuhl-Leibniz-Zentrum f\u00fcr Informatik. http:\/\/www.dagstuhl.de\/ dagpub\/978-3-95977-087-3"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158116"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926393"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2213836.2213945"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37036-6_11"},{"key":"e_1_2_1_51_1","volume-title":"Tanenbaum and Maarten van Steen","author":"Andrew","year":"2007","unstructured":"Andrew S. Tanenbaum and Maarten van Steen. 2007. Distributed systems-principles and paradigms, 2nd Edition. Pearson Education.","edition":"2"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDIS.1994.331722"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660243"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3299869.3314049"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737958"},{"key":"e_1_2_1_57_1","volume-title":"Data Consistency in Transactional Storage Systems: a Centralised Approach. CoRR abs\/","author":"Xiong Shale","year":"1901","unstructured":"Shale Xiong, Andrea Cerone, Azalea Raad, and Philippa Gardner. 2019. Data Consistency in Transactional Storage Systems: a Centralised Approach. CoRR abs\/ 1901.10615 ( 2019 ). arXiv: 1901.10615 http:\/\/arxiv.org\/abs\/ 1901.10615"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3434323","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3434323","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,19]],"date-time":"2026-06-19T07:25:57Z","timestamp":1781853957000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3434323"}},"issued":{"date-parts":[[2021,1,4]]},"references-count":57,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2021,1,4]]}},"alternative-id":["10.1145\/3434323"],"URL":"https:\/\/doi.org\/10.1145\/3434323","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2021,1,4]]},"assertion":[{"value":"2021-01-04","order":3,"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":[[2026,7,16]],"date-time":"2026-07-16T11:05:38Z","timestamp":1784199938044,"version":"3.55.0"},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","funder":[{"DOI":"10.13039\/501100001459","name":"Ministry of Education - Singapore","doi-asserted-by":"publisher","award":["MOE-T2EP20124-0007"],"award-info":[{"award-number":["MOE-T2EP20124-0007"]}],"id":[{"id":"10.13039\/501100001459","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,6,10]]},"abstract":"<jats:p>\n                    Translating software between programming languages is a challenging task, for which automated techniques have been elusive and hard to scale up to larger programs. A key difficulty in cross-language translation is that one has to re-express the intended behavior of the source program into idiomatic constructs of a different target language. This task needs abstracting away from the source language-specific details, while keeping the overall functionality the same. In this work, we propose a novel and systematic approach for making such translation amenable to automation based on a framework we call\n                    <jats:italic toggle=\"yes\">program skeletons.<\/jats:italic>\n                    A program skeleton retains the high- level structure of the source program by abstracting away and effectively summarizing lower-level concrete code fragments, which can be mechanically translated to the target programming language. A skeleton, by design, permits many different ways of filling in the concrete implementation for fragments, which can work in conjunction with existing data-driven code synthesizers. Most importantly, skeletons can conceptually enable\n                    <jats:italic toggle=\"yes\">sound<\/jats:italic>\n                    decomposition, i.e., if each individual fragment is correctly translated, taken together with the mechanically translated skeleton, the final translated program is deemed to be correct as a whole. We present a prototype system called\n                    <jats:sc>Skel<\/jats:sc>\n                    embodying the idea of skeleton-based translation from Python to JavaScript. Our results show promising scalability compared to prior works. For 9 real-world Python programs, some with more than about 1\n                    <jats:italic toggle=\"yes\">k<\/jats:italic>\n                    lines of code, 95% of their code fragments can be automatically translated, while about 5% require manual effort. All the final translations are correct with respect to whole-program test suites.\n                  <\/jats:p>","DOI":"10.1145\/3729287","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"920-944","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Program Skeletons for Automated Program Translation"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1444-0237","authenticated-orcid":false,"given":"Bo","family":"Wang","sequence":"first","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-6180-9060","authenticated-orcid":false,"given":"Tianyu","family":"Li","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2513-1704","authenticated-orcid":false,"given":"Ruishi","family":"Li","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7610-0660","authenticated-orcid":false,"given":"Umang","family":"Mathur","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1875-8675","authenticated-orcid":false,"given":"Prateek","family":"Saxena","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","unstructured":"2002. Chapter 15 - Microsoft Says JUMP\u2014Java User Migration Path. In C# For Java Programmers Brian Bagnall Philip Chen Stephen Goldberg Jeremy Fairdoth and Harold Cabrera (Eds.). doi:10.1016\/B978-193183654-8\/50019-0","DOI":"10.1016\/B978-193183654-8\/50019-0"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","unstructured":"2024. Lost in Translation: A Study of Bugs Introduced by Large Language Models while Translating Code. doi:10.1145\/3597503.3639226 arXiv:2308.03109 [cs].","DOI":"10.1145\/3597503.3639226"},{"key":"e_1_3_2_4_2","unstructured":"2025. SKEL:Program Skeletons for Automated Program Translation (GitHub Repository). https:\/\/github.com\/lty12b9b0a1\/SKEL"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/2914770.2837628"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","unstructured":"Mar\u00eda Alpuente Daniel Pardo and Alicia Villanueva. 2015. Automatic inference of specifications in the K framework. arXiv preprint arXiv:1512.06941 (2015). doi:10.4204\/EPTCS.200.1","DOI":"10.4204\/EPTCS.200.1"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-21668-3_10"},{"key":"e_1_3_2_8_2","unstructured":"Anthropic. [n. d.]. Introducing Claude 3.5 Sonnet. https:\/\/www.anthropic.com\/news\/claude-3-5-sonnet"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2018.00074"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-17524-9_1"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480917"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3689735"},{"key":"e_1_3_2_13_2","unstructured":"Xinyun Chen Chang Liu and Dawn Song. 2018. Tree-to-tree Neural Networks for Program Translation. arXiv:1802.03691 [cs.AI]"},{"issue":"240","key":"e_1_3_2_14_2","first-page":"1","article-title":"Palm: Scaling language modeling with pathways","volume":"24","author":"Chowdhery Aakanksha","year":"2023","unstructured":"Aakanksha Chowdhery, Sharan Narang, Jacob Devlin, Maarten Bosma, Gaurav Mishra, Adam Roberts, Paul Barham, Hyung Won Chung, Charles Sutton, Sebastian Gehrmann, et al. 2023. Palm: Scaling language modeling with pathways. Journal of Machine Learning Research 24, 240 (2023), 1\u2013113.","journal-title":"Journal of Machine Learning Research"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","unstructured":"Michael L. Collard Michael John Decker and Jonathan I. Maletic. 2013. srcML: An Infrastructure for the Exploration Analysis and Manipulation of Source Code: A Tool Demonstration. In 2013 IEEE International Conference on Software Maintenance. 516\u2013519. doi:10.1109\/ICSM.2013.85","DOI":"10.1109\/ICSM.2013.85"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.04.002"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-35873-9_10"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICECCS.2019.00031"},{"key":"e_1_3_2_19_2","volume-title":"Automatic Inference of Permission Specifications","author":"Dohrau J\u00e9r\u00f4me","year":"2022","unstructured":"J\u00e9r\u00f4me Dohrau. 2022. Automatic Inference of Permission Specifications. Ph.D. Dissertation. ETH Zurich. https:\/\/pm.inf.ethz.ch\/publications\/Dohrau2022.pdf"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/3660791"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","unstructured":"Hasan Ferit Eniser Hanliang Zhang Cristina David Meng Wang Brandon Paulsen Joey Dodds and Daniel Kroening. 2024. Towards Translating Real-World Code with LLMs: A Study ofTranslating to Rust. arXiv preprint arXiv:2405.11514 (2024). doi:10.48550\/arXiv.2405.11514","DOI":"10.48550\/arXiv.2405.11514"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.01.015"},{"key":"e_1_3_2_23_2","unstructured":"gotranspile. [n. d.]. cxgo: C to Go Translators. https:\/\/github.com\/gotranspile\/cxgo note = Accessed: Nov 1 2024."},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","unstructured":"Ali Reza Ibrahimzada Kaiyao Ke Mrigank Pawagi Muhammad Salman Abid Rangeet Pan Saurabh Sinha and Reyhaneh Jabbarvand. 2024. Repository-Level Compositional Code Translation and Validation. arXiv preprint arXiv:2410.24117 (2024). doi:10.48550\/arXiv.2410.24117","DOI":"10.48550\/arXiv.2410.24117"},{"key":"e_1_3_2_25_2","unstructured":"Immunant. [n. d.]. c2rust: Migrate C code to Rust. https:\/\/github.com\/immunant\/c2rust. Accessed: Nov 1 2024."},{"key":"e_1_3_2_26_2","unstructured":"AnnaIrrera. 2017. Banks scramble to fix old systems as IT \u2018cowboys\u2019 ride into sunset. https:\/\/www.reuters.com\/article\/us-usa-banks-cobol-idUSKBN17C0D8."},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908117"},{"key":"e_1_3_2_28_2","unstructured":"Marie-Anne Lachaux Baptiste Rozi\u00e8re Lowik Chanussot and Guillaume Lample. 2020. Unsupervised Translation of Programming Languages. CoRR abs\/2006.03511 (2020). arXiv:2006.03511 https:\/\/arxiv.org\/abs\/2006.03511"},{"key":"e_1_3_2_29_2","unstructured":"Marie-Anne Lachaux Baptiste Roziere Lowik Chanussot and Guillaume Lample. 2020. Unsupervised Translation of Programming Languages. arXiv:2006.03511 [cs.CL]"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","unstructured":"Ton Chanh Le Guolong Zheng and ThanhVu Nguyen. 2019. SLING: using dynamic analysis to infer program invariants in separation logic. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 788\u2013801. doi:10.1145\/3314221.3314634","DOI":"10.1145\/3314221.3314634"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","unstructured":"Nelson F. Liu Kevin Lin John Hewitt Ashwin Paranjape Michele Bevilacqua Fabio Petroni and Percy Liang. 2023. Lost in the Middle: How Language Models Use Long Contexts. doi:10.48550\/arXiv.2307.03172 arXiv:2307.03172 [cs.CL]","DOI":"10.48550\/arXiv.2307.03172"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","unstructured":"Anton Lozhkov Raymond Li Loubna Ben Allal Federico Cassano Joel Lamy-Poirier Nouamane Tazi Ao Tang Dmytro Pykhtar Jiawei Liu Yuxiang Wei et al. 2024. Starcoder 2 and the stack v2: The next generation. arXiv preprint arXiv:2402.19173 (2024). doi:10.48550\/arXiv.2402.19173","DOI":"10.48550\/arXiv.2402.19173"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE55347.2025.00129"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1007\/3\u2013540\u201310235\u20133"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/2556782"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","unstructured":"Erik Nijkamp Bo Pang Hiroaki Hayashi Lifu Tu Huan Wang Yingbo Zhou Silvio Savarese and Caiming Xiong. 2022. A conversational paradigm for program synthesis. arXiv preprint arXiv:2203.13474 30 (2022). doi:10.48550\/arXiv.2203.13474","DOI":"10.48550\/arXiv.2203.13474"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908099"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","unstructured":"Jialing Pan Adrien Sad\u00e9 Jin Kim Eric Soriano Guillem Sole and Sylvain Flamant. 2023. SteloCoder: a Decoder-Only LLM for Multi-Language to Python Code Translation. arXiv preprint arXiv:2310.15539 (2023). doi:10.48550\/arXiv.2310.15539","DOI":"10.48550\/arXiv.2310.15539"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3639226"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2012.6227137"},{"key":"e_1_3_2_41_2","unstructured":"Terence Parr. 2024. StringTemplate. https:\/\/www.stringtemplate.org\/"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/2858965.2814310"},{"key":"e_1_3_2_43_2","unstructured":"QualityQuick. 2022. Transcrypt: Python to JavaScript compiler. https:\/\/github.com\/qquick\/Transcrypt"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","unstructured":"Baptiste Roziere Jonas Gehring Fabian Gloeckle Sten Sootla Itai Gat Xiaoqing Ellen Tan Yossi Adi Jingyu Liu Romain Sauvestre Tal Remez et al. 2023. Code llama: Open foundation models for code. arXiv preprint arXiv:2308.12950 (2023). doi:10.48550\/arXiv.2308.12950","DOI":"10.48550\/arXiv.2308.12950"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","unstructured":"Baptiste Roziere Jie M Zhang Francois Charton Mark Harman Gabriel Synnaeve and Guillaume Lample. 2021. Leveraging automated unit tests for unsupervised code translation. arXiv preprint arXiv:2110.06 773 (2021). doi:10.48550\/arXiv.2110.06773","DOI":"10.48550\/arXiv.2110.06773"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","unstructured":"Armando Solar-Lezama Christopher Grant Jones and Rastislav Bod\u00edk. 2008. Sketching concurrent data structures. In Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation Tucson AZ USA June 7\u201313 2008. 136\u2013148. doi:10.1145\/1375581.1375599","DOI":"10.1145\/1375581.1375599"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3656413"},{"key":"e_1_3_2_48_2","unstructured":"Lin Tan Xiaolan Zhang Xiao Ma Weiwei Xiong and Yuanyuan Zhou. 2008. AutolSES: Automatically Inferring Security Specification and Detecting Violations.. In USENIX Security Symposium. 379\u2013394. https:\/\/www.usenix.org\/legacy\/events\/sec08\/tech\/full_papers\/tan_l\/tan_l.pdf"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/52.895180"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","unstructured":"Vasudev Vikram Caroline Lemieux Joshua Sunshine and Rohan Padhye. 2023. Can large language models write good property-based tests? arXiv preprint arXiv:2307.04346 (2023). doi:10.48550\/arXiv.2307.04346","DOI":"10.48550\/arXiv.2307.04346"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3586034"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Ruishi Li Mingkai Li and Prateek Saxena. 2023. TransMap: Pinpointing Mistakes in Neural Code Translation. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 999\u20131011. doi:10.1145\/3611643.3616322","DOI":"10.1145\/3611643.3616322"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Tianyu Li Ruishi Li Umang Mathur and Prateek Saxena. 2025. Program Skeletons for Automated Program Translation (Artifact). doi:10.5281\/zenodo.14994890","DOI":"10.5281\/zenodo.14994890"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Tianyu Li Ruishi Li Umang Mathur and Prateek Saxena. 2025. Program Skeletons for Automated Program Translation (Technical Report). arXiv preprint arXiv:2504.07483 (2025). doi:10.48550\/arXiv.2504.07483","DOI":"10.48550\/arXiv.2504.07483"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","unstructured":"Justin D Weisz Michael Muller Stephanie Houde John Richards Steven I Ross Fernando Martinez Mayank Agarwal and Kartik Talamadupula. 2021. Perfection not required? Human-AI partnerships in code translation. In Proceedings of the 26th International Conference on Intelligent User Interfaces. 402\u2013412. doi:10.1145\/3397481.3450656","DOI":"10.1145\/3397481.3450656"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","unstructured":"Aidan Z. H. Yang Yoshiki Takashima Brandon Paulsen Josiah Dodds and Daniel Kroening. 2024. VERT: Verified Equivalent Rust Transpilation with Large Language Models as Few-Shot Learners. doi:10.48550\/arXiv.2404.18852 arXiv:2404.18852 [cs.PL]","DOI":"10.48550\/arXiv.2404.18852"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","unstructured":"Xin Yin Chao Ni Tien N Nguyen Shaohua Wang and Xiaohu Yang. 2024. Rectifier: Code translation with corrector via llms. arXiv preprint arXiv:2407.07472 (2024). doi:10.48550\/arXiv.2407.07472","DOI":"10.48550\/arXiv.2407.07472"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","unstructured":"Juan Zhai Yu Shi Minxue Pan Guian Zhou Yongxiang Liu Chunrong Fang Shiqing Ma Lin Tan and Xiangyu Zhang. 2020. C2S: translating natural language comments to formal program specifications. In Proceedings of the 28th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering. 25\u201337. doi:10.1145\/3368089.3409716","DOI":"10.1145\/3368089.3409716"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","unstructured":"Xing Zhang Jiaheng Wen Fangkai Yang Pu Zhao Yu Kang Junhao Wang Maoquan Wang Yufan Huang Elsie Nallipogu Qingwei Lin Yingnong Dang Saravan Rajmohan Dongmei Zhang and Qi Zhang. 2025. Skeleton-Guided- Translation: A Benchmarking Framework for Code Repository Translation with Fine-Grained Quality Evaluation. doi:10.48550\/arXiv.2501.16050 arXiv:2501.16050 [cs.SE]","DOI":"10.48550\/arXiv.2501.16050"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","unstructured":"Zibin Zheng Kaiwen Ning Yanlin Wang Jingwen Zhang Dewu Zheng Mingxi Ye and Jiachi Chen. 2023. A survey of large language models for code: Evolution benchmarking and future trends. arXiv preprint arXiv:2311.10372 (2023). doi:10.48550\/arXiv.2311.10372","DOI":"10.48550\/arXiv.2311.10372"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","unstructured":"Qihao Zhu Daya Guo Zhihong Shao Dejian Yang Peiyi Wang Runxin Xu Y Wu Yukun Li Huazuo Gao Shirong Ma et al. 2024. Deepseek-coder-v2: Breaking the barrier of closed-source models in code intelligence. arXiv preprint arXiv:2406.11931 (2024). doi:10.48550\/arXiv.2406.11931","DOI":"10.48550\/arXiv.2406.11931"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729287","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:05:56Z","timestamp":1784196356000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729287"}},"issued":{"date-parts":[[2025,6,10]]},"references-count":60,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729287"],"URL":"https:\/\/doi.org\/10.1145\/3729287","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]},{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:47:32Z","timestamp":1780994852653,"version":"3.54.1"},"reference-count":29,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T00:00:00Z","timestamp":1686009600000},"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":["2145649,2107206"],"award-info":[{"award-number":["2145649,2107206"]}],"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,6,6]]},"abstract":"<jats:p>Inductive relations offer a powerful and expressive way of writing  \n program specifications while facilitating compositional reasoning.  \n Their widespread use by proof assistant users has made them a  \n particularly attractive target for proof engineering tools such as  \n QuickChick, a property-based testing tool for Coq which can  \n automatically derive generators for values satisfying an inductive  \n relation.  \n However, while such generators are generally efficient, there is  \n an infrequent yet seemingly inevitable situation where their  \n performance greatly degrades: when multiple inductive relations  \n constrain the same piece of data.<\/jats:p>\n          <jats:p>In this paper, we introduce an algorithm for merging two such  \n inductively defined properties that share an index. The algorithm  \n finds shared structure between the two relations, and creates a  \n single merged relation that is provably equivalent to the  \n conjunction of the two.  \n We demonstrate, through a series of case studies,  \n that the merged relations can improve the performance of automatic  \n generation by orders of magnitude, as well as simplify mechanized  \n proofs by getting rid of the need for nested induction and tedious  \n low-level book-keeping.<\/jats:p>","DOI":"10.1145\/3591292","type":"journal-article","created":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T20:06:24Z","timestamp":1686081984000},"page":"1759-1778","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Merging Inductive Relations"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2702-9319","authenticated-orcid":false,"given":"Jacob","family":"Prinz","sequence":"first","affiliation":[{"name":"University of Maryland, College Park, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0269-9815","authenticated-orcid":false,"given":"Leonidas","family":"Lampropoulos","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,6,6]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Andrew W. Appel. 2022. Verified Functional Algorithms (Software Foundations Vol. 3). Electronic textbook. \t\t\t\t  Andrew W. Appel. 2022. Verified Functional Algorithms (Software Foundations Vol. 3). Electronic textbook."},{"key":"e_1_2_1_2_1","volume-title":"2nd International Conference on Certified Programs and Proofs (CPP) (Lecture Notes in Computer Science","volume":"108","author":"Bulwahn Lukas","year":"2012","unstructured":"Lukas Bulwahn . 2012 . The New Quickcheck for Isabelle - Random, Exhaustive and Symbolic Testing under One Roof . In 2nd International Conference on Certified Programs and Proofs (CPP) (Lecture Notes in Computer Science , Vol. 7679). Springer, 92\u2013 108 . https:\/\/www.irisa.fr\/celtique\/genet\/ACF\/BiblioIsabelle\/quickcheckNew.pdf Lukas Bulwahn. 2012. The New Quickcheck for Isabelle - Random, Exhaustive and Symbolic Testing under One Roof. In 2nd International Conference on Certified Programs and Proofs (CPP) (Lecture Notes in Computer Science, Vol. 7679). Springer, 92\u2013108. https:\/\/www.irisa.fr\/celtique\/genet\/ACF\/BiblioIsabelle\/quickcheckNew.pdf"},{"key":"e_1_2_1_3_1","volume-title":"Smart Testing of Functional Programs in Isabelle. In 18th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning (LPAR) (Lecture Notes in Computer Science","volume":"167","author":"Bulwahn Lukas","year":"2012","unstructured":"Lukas Bulwahn . 2012 . Smart Testing of Functional Programs in Isabelle. In 18th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning (LPAR) (Lecture Notes in Computer Science , Vol. 7180). Springer, 153\u2013 167 . isbn:978-3-642-28716-9 http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.229.1307&rep=rep1&type=pdf Lukas Bulwahn. 2012. Smart Testing of Functional Programs in Isabelle. In 18th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning (LPAR) (Lecture Notes in Computer Science, Vol. 7180). Springer, 153\u2013167. isbn:978-3-642-28716-9 http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.229.1307&rep=rep1&type=pdf"},{"key":"e_1_2_1_4_1","volume-title":"Integrating Testing and Interactive Theorem Proving. In 10th International Workshop on the ACL2 Theorem Prover and its Applications (EPTCS","volume":"19","author":"Chamarthi Harsh Raju","year":"2011","unstructured":"Harsh Raju Chamarthi , Peter C. Dillinger , Matt Kaufmann , and Panagiotis Manolios . 2011 . Integrating Testing and Interactive Theorem Proving. In 10th International Workshop on the ACL2 Theorem Prover and its Applications (EPTCS , Vol. 70). 4\u2013 19 . arxiv:1105.4394 Harsh Raju Chamarthi, Peter C. Dillinger, Matt Kaufmann, and Panagiotis Manolios. 2011. Integrating Testing and Interactive Theorem Proving. In 10th International Workshop on the ACL2 Theorem Prover and its Applications (EPTCS, Vol. 70). 4\u201319. arxiv:1105.4394"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796815000143"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351266"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.4501022"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796814000069"},{"key":"e_1_2_1_9_1","doi-asserted-by":"crossref","unstructured":"Carl Eastlund. 2009. DoubleCheck Your Theorems. In ACL2. http:\/\/www.ccs.neu.edu\/scheme\/pubs\/acl209-e.pdf \t\t\t\t  Carl Eastlund. 2009. DoubleCheck Your Theorems. In ACL2. http:\/\/www.ccs.neu.edu\/scheme\/pubs\/acl209-e.pdf","DOI":"10.1145\/1637837.1637844"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_16"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000058"},{"key":"e_1_2_1_12_1","volume-title":"20th International Symposium on Trends in Functional Programming.","author":"Hughes John","year":"2019","unstructured":"John Hughes . 2019 . How to Specify It! . 20th International Symposium on Trends in Functional Programming. John Hughes. 2019. How to Specify It!. 20th International Symposium on Trends in Functional Programming."},{"key":"e_1_2_1_13_1","unstructured":"Hsiang-Shang Ko and Jeremy Gibbons. 2011. Modularising inductive families. In WGP@ICFP. \t\t\t\t  Hsiang-Shang Ko and Jeremy Gibbons. 2011. Modularising inductive families. In WGP@ICFP."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000307"},{"key":"e_1_2_1_15_1","volume-title":"Random Testing for Language Design. Ph. D. Dissertation","author":"Lampropoulos Leonidas","unstructured":"Leonidas Lampropoulos . 2018. Random Testing for Language Design. Ph. D. Dissertation . University of Pennsylvania . Leonidas Lampropoulos. 2018. Random Testing for Language Design. Ph. D. Dissertation. University of Pennsylvania."},{"key":"e_1_2_1_16_1","unstructured":"Leonidas Lampropoulos. 2023. QuickChick 2.0 release. Github. https:\/\/github.com\/QuickChick\/QuickChick\/releases\/tag\/v.2.0+beta.16 \t\t\t\t  Leonidas Lampropoulos. 2023. QuickChick 2.0 release. Github. https:\/\/github.com\/QuickChick\/QuickChick\/releases\/tag\/v.2.0+beta.16"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009868"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158133"},{"key":"e_1_2_1_19_1","volume-title":"Pierce","author":"Lampropoulos Leonidas","year":"2018","unstructured":"Leonidas Lampropoulos and Benjamin C . Pierce . 2018 . QuickChick: Property- Based Testing In Coq. Electronic textbook. http:\/\/www.cis.upenn.edu\/~bcpierce\/sf Leonidas Lampropoulos and Benjamin C. Pierce. 2018. QuickChick: Property-Based Testing In Coq. Electronic textbook. http:\/\/www.cis.upenn.edu\/~bcpierce\/sf"},{"key":"e_1_2_1_20_1","volume-title":"Property Directed Generation of First-Order Test Data. In 8th Symposium on Trends in Functional Programming (Trends in Functional Programming","volume":"123","author":"Lindblad Fredrik","year":"2007","unstructured":"Fredrik Lindblad . 2007 . Property Directed Generation of First-Order Test Data. In 8th Symposium on Trends in Functional Programming (Trends in Functional Programming , Vol. 8). Intellect, 105\u2013 123 . isbn:978-1-84150-196-3 http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.116.2439&rep=rep1&type=pdf Fredrik Lindblad. 2007. Property Directed Generation of First-Order Test Data. In 8th Symposium on Trends in Functional Programming (Trends in Functional Programming, Vol. 8). Intellect, 105\u2013123. isbn:978-1-84150-196-3 http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.116.2439&rep=rep1&type=pdf"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110259"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1481861.1481862"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1982595.1982615"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523707"},{"key":"e_1_2_1_25_1","volume-title":"Chris Casinghino, Marco Gaboardi, Michael Greenberg, C\u01cet\u01celin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey.","author":"Pierce Benjamin C.","year":"2018","unstructured":"Benjamin C. Pierce , Arthur Azevedo de Amorim , Chris Casinghino, Marco Gaboardi, Michael Greenberg, C\u01cet\u01celin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey. 2018 . Logical Foundations. Electronic textbook, Version 5.5. http:\/\/www.cis.upenn.edu\/~bcpierce\/sf Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, C\u01cet\u01celin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey. 2018. Logical Foundations. Electronic textbook, Version 5.5. http:\/\/www.cis.upenn.edu\/~bcpierce\/sf"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0054170"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7709704"},{"key":"e_1_2_1_28_1","unstructured":"Philip Wadler. 1990. Linear Types can Change the World!. In Programming Concepts and Methods. \t\t\t\t  Philip Wadler. 1990. Linear Types can Change the World!. In Programming Concepts and Methods."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993532"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591292","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3591292","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:47:20Z","timestamp":1750178840000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591292"}},"issued":{"date-parts":[[2023,6,6]]},"references-count":29,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2023,6,6]]}},"alternative-id":["10.1145\/3591292"],"URL":"https:\/\/doi.org\/10.1145\/3591292","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2023,6,6]]},"assertion":[{"value":"2023-06-06","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":[[2025,10,9]],"date-time":"2025-10-09T21:17:06Z","timestamp":1760044626926,"version":"3.41.0"},"reference-count":25,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2018,7,30]],"date-time":"2018-07-30T00:00:00Z","timestamp":1532908800000},"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":["1319880, 1521539"],"award-info":[{"award-number":["1319880, 1521539"]}],"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":[[2018,7,30]]},"abstract":"<jats:p>Good tools can bring mechanical verification to programs written in mainstream functional languages. We use &lt;pre&gt;hs-to-coq&lt;\/pre&gt; to translate significant portions of Haskell\u2019s &lt;pre&gt;containers&lt;\/pre&gt; library into Coq, and verify it against specifications that we derive from a variety of sources including type class laws, the library\u2019s test suite, and interfaces from Coq\u2019s standard library. Our work shows that it is feasible to verify mature, widely-used, highly optimized, and unmodified Haskell code. We also learn more about the theory of weight-balanced trees, extend &lt;pre&gt;hs-to-coq&lt;\/pre&gt; to handle partiality, and \u2013 since we found no bugs \u2013 attest to the superb quality of well-tested functional code.<\/jats:p>","DOI":"10.1145\/3236784","type":"journal-article","created":{"date-parts":[[2018,7,31]],"date-time":"2018-07-31T19:41:18Z","timestamp":1533066078000},"page":"1-16","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["Ready, set, verify! applying hs-to-coq to real-world Haskell code (experience report)"],"prefix":"10.1145","volume":"2","author":[{"given":"Joachim","family":"Breitner","sequence":"first","affiliation":[{"name":"University of Pennsylvania, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Antal","family":"Spector-Zabusky","sequence":"additional","affiliation":[{"name":"University of Pennsylvania, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yao","family":"Li","sequence":"additional","affiliation":[{"name":"University of Pennsylvania, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christine","family":"Rizkallah","sequence":"additional","affiliation":[{"name":"UNSW, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"John","family":"Wiegley","sequence":"additional","affiliation":[{"name":"BAE Systems, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stephanie","family":"Weirich","sequence":"additional","affiliation":[{"name":"University of Pennsylvania, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,7,30]]},"reference":[{"key":"e_1_2_2_1_1","first-page":"92","article-title":"Implementing sets efficiently in a functional language","author":"Adams Stephen","year":"1992","unstructured":"Stephen Adams . 1992 . Implementing sets efficiently in a functional language ,. Research Report CSTR 92 - 10 . University of Southampton. Stephen Adams. 1992. Implementing sets efficiently in a functional language,. Research Report CSTR 92-10. University of Southampton.","journal-title":"Research Report CSTR"},{"key":"e_1_2_2_2_1","article-title":"Position paper: the science of deep specification","volume":"375","author":"Appel Andrew W.","year":"2017","unstructured":"Andrew W. Appel , Lennart Beringer , Adam Chlipala , Benjamin C. Pierce , Zhong Shao , Stephanie Weirich , and Steve Zdancewic . 2017 . Position paper: the science of deep specification . Philosophical Transactions of the Royal Society of London A: Mathematical, Physical and Engineering Sciences 375 , 2104 (2017). Andrew W. Appel, Lennart Beringer, Adam Chlipala, Benjamin C. Pierce, Zhong Shao, Stephanie Weirich, and Steve Zdancewic. 2017. Position paper: the science of deep specification. Philosophical Transactions of the Royal Society of London A: Mathematical, Physical and Engineering Sciences 375, 2104 (2017).","journal-title":"Philosophical Transactions of the Royal Society of London A: Mathematical, Physical and Engineering Sciences"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03359-9_6"},{"key":"e_1_2_2_4_1","unstructured":"Edwin Brady. 2017. Type-driven Development With Idris. Manning.  Edwin Brady. 2017. Type-driven Development With Idris. Manning."},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236784"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14052-5_15"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351266"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111056"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000104"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/11814771_48"},{"key":"e_1_2_2_11_1","volume-title":"Informal proceedings, 7th International Workshop on Satisfiability Modulo Theories at CADE","volume":"22","author":"Kr\u00f6ning Daniel","year":"2009","unstructured":"Daniel Kr\u00f6ning , Philipp R\u00fcmmer , and Georg Weissenbacher . 2009 . A proposal for a theory of finite sets, lists, and maps for the SMT-LIB standard . In Informal proceedings, 7th International Workshop on Satisfiability Modulo Theories at CADE , Vol. 22 . Daniel Kr\u00f6ning, Philipp R\u00fcmmer, and Georg Weissenbacher. 2009. A proposal for a theory of finite sets, lists, and maps for the SMT-LIB standard. In Informal proceedings, 7th International Workshop on Satisfiability Modulo Theories at CADE, Vol. 22."},{"key":"e_1_2_2_12_1","unstructured":"The Coq development team. 2016. The Coq proof assistant reference manual. LogiCal Project. http:\/\/coq.inria.fr Version 8.6.1.  The Coq development team. 2016. The Coq proof assistant reference manual. LogiCal Project. http:\/\/coq.inria.fr Version 8.6.1."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/321479.321481"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/800152.804906"},{"key":"e_1_2_2_15_1","volume-title":"Archive of Formal Proofs (March","author":"Nipkow Tobias","year":"2018","unstructured":"Tobias Nipkow and Stefan Dirix . 2018. Weight-Balanced Trees . Archive of Formal Proofs (March 2018 ). http:\/\/isa-afp.org\/ entries\/Weight_Balanced_Trees.html , Formal proof development. Tobias Nipkow and Stefan Dirix. 2018. Weight-Balanced Trees. Archive of Formal Proofs (March 2018). http:\/\/isa-afp.org\/ entries\/Weight_Balanced_Trees.html , Formal proof development."},{"volume-title":"Lecture Notes in Computer Science","author":"Nipkow Tobias","key":"e_1_2_2_16_1","unstructured":"Tobias Nipkow , Lawrence C. Paulson , and Markus Wenzel . 2002. Isabelle\/ HOL - A Proof Assistant for Higher-Order Logic . Lecture Notes in Computer Science , Vol. 2283 . Springer . Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. 2002. Isabelle\/HOL - A Proof Assistant for Higher-Order Logic. Lecture Notes in Computer Science, Vol. 2283. Springer."},{"volume-title":"Purely functional data structures","author":"Okasaki Chris","key":"e_1_2_2_17_1","unstructured":"Chris Okasaki . 1999. Purely functional data structures . Cambridge University Press . Chris Okasaki. 1999. Purely functional data structures. Cambridge University Press."},{"key":"e_1_2_2_18_1","volume-title":"Fast Mergeable Integer Maps. In In Workshop on ML. 77\u201386","author":"Okasaki Chris","year":"1998","unstructured":"Chris Okasaki and Andrew Gill . 1998 . Fast Mergeable Integer Maps. In In Workshop on ML. 77\u201386 . Chris Okasaki and Andrew Gill. 1998. Fast Mergeable Integer Maps. In In Workshop on ML. 77\u201386."},{"key":"e_1_2_2_19_1","volume-title":"Haskell Workshop.","author":"Jones Simon Peyton","year":"2001","unstructured":"Simon Peyton Jones , Andrew Tolmach , and Tony Hoare . 2001 . Playing by the rules: rewriting as a practical optimisation technique in GHC . In Haskell Workshop. Simon Peyton Jones, Andrew Tolmach, and Tony Hoare. 2001. Playing by the rules: rewriting as a practical optimisation technique in GHC. In Haskell Workshop."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3167092"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863523.1863526"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122955.3122963"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37036-6_13"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628161"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158141"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236784","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3236784","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3236784","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:41:28Z","timestamp":1750282888000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236784"}},"issued":{"date-parts":[[2018,7,30]]},"references-count":25,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2018,7,30]]}},"alternative-id":["10.1145\/3236784"],"URL":"https:\/\/doi.org\/10.1145\/3236784","ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"published":{"date-parts":[[2018,7,30]]},"assertion":[{"value":"2018-07-30","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,2,24]],"date-time":"2026-02-24T18:54:35Z","timestamp":1771959275757,"version":"3.50.1"},"reference-count":48,"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\/"}],"funder":[{"name":"TCS Foundation","award":["TCS Research Fellow"],"award-info":[{"award-number":["TCS Research Fellow"]}]}],"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>Context-sensitive inter-procedural alias analyses are more precise than intra-procedural alias analyses. However, context-sensitive inter-procedural alias analyses are not scalable. As a consequence, most of the production compilers sacrifice precision for scalability and implement intra-procedural alias analysis. The alias analysis is used by many compiler optimizations, including loop transformations. Due to the imprecision of alias analysis, the program\u2019s performance may suffer, especially in the presence of loops.<\/jats:p>\n          <jats:p>Previous work proposed a general approach based on code-versioning with dynamic checks to disambiguate pointers at runtime. However, the overhead of dynamic checks in this approach is O(log n), which is substantially high to enable interesting optimizations. Other suggested approaches, e.g., polyhedral and symbolic range analysis, have O(1) overheads, but they only work for loops with certain constraints. The production compilers, such as LLVM and GCC, use scalar evolution analysis to compute an O(1) range check for loops to resolve memory dependencies at runtime. However, this approach also can only be applied to loops with certain constraints.<\/jats:p>\n          <jats:p>In this work, we present our tool, Scout, that can disambiguate two pointers at runtime using single memory access. Scout is based on the key idea to constrain the allocation size and alignment during memory allocations. Scout can also disambiguate array accesses within a loop for which the existing O(1) range checks technique cannot be applied. In addition, Scout uses feedback from static optimizations to reduce the number of dynamic checks needed for optimizations.<\/jats:p>\n          <jats:p>Our technique enabled new opportunities for loop-invariant code motion, dead store elimination, loop vectorization, and load elimination in an already optimized code. Our performance improvements are up to 51.11% for Polybench and up to 0.89% for CPU SPEC 2017 suites. The geometric means for our allocator\u2019s CPU and memory overheads for CPU SPEC 2017 benchmarks are 1.05%, and 7.47%, respectively. For Polybench benchmarks, the geometric mean of CPU and memory overheads are 0.21% and 0.13%, respectively.<\/jats:p>","DOI":"10.1145\/3563316","type":"journal-article","created":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T20:23:35Z","timestamp":1667247815000},"page":"786-810","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["The road not taken: exploring alias analysis based optimizations missed by the compiler"],"prefix":"10.1145","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6950-1055","authenticated-orcid":false,"given":"Khushboo","family":"Chitre","sequence":"first","affiliation":[{"name":"IIIT Delhi, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9569-4089","authenticated-orcid":false,"given":"Piyus","family":"Kedia","sequence":"additional","affiliation":[{"name":"IIIT Delhi, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8677-0601","authenticated-orcid":false,"given":"Rahul","family":"Purandare","sequence":"additional","affiliation":[{"name":"IIIT Delhi, India \/ University of Nebraska-Lincoln, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,10,31]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2016 (accessed Apr 14 2022). Intel 64 and ia-32 architectures software developer\u2019s manual volume 2b. https:\/\/www.intel.com\/content\/dam\/www\/public\/us\/en\/documents\/manuals\/64-ia-32-architectures-software-developer-vol-2b-manual.pdf \t\t\t\t  2016 (accessed Apr 14 2022). Intel 64 and ia-32 architectures software developer\u2019s manual volume 2b. https:\/\/www.intel.com\/content\/dam\/www\/public\/us\/en\/documents\/manuals\/64-ia-32-architectures-software-developer-vol-2b-manual.pdf"},{"key":"e_1_2_1_2_1","unstructured":"2019 (accessed Apr 13 2022). Restrict Keyword in LLVM. https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-March\/131127.html \t\t\t\t  2019 (accessed Apr 13 2022). Restrict Keyword in LLVM. https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-March\/131127.html"},{"key":"e_1_2_1_3_1","volume-title":"CPU SPEC 2017 benchmark suite. https:\/\/www.spec.org\/cpu2017\/Docs\/overview.html##benchmarks","author":"Apr","year":"2022","unstructured":"2021 (accessed Apr 13 , 2022 ). CPU SPEC 2017 benchmark suite. https:\/\/www.spec.org\/cpu2017\/Docs\/overview.html##benchmarks 2021 (accessed Apr 13, 2022). CPU SPEC 2017 benchmark suite. https:\/\/www.spec.org\/cpu2017\/Docs\/overview.html##benchmarks"},{"key":"e_1_2_1_4_1","unstructured":"2022 (accessed Apr 13 2022). Intrinsic Functions. https:\/\/llvm.org\/docs\/LangRef.html##intrinsic-functions \t\t\t\t  2022 (accessed Apr 13 2022). Intrinsic Functions. https:\/\/llvm.org\/docs\/LangRef.html##intrinsic-functions"},{"key":"e_1_2_1_5_1","unstructured":"2022 (accessed Apr 13 2022). Runtime Checks of Pointers. https:\/\/llvm.org\/docs\/Vectorizers.html##runtime-checks-of-pointers \t\t\t\t  2022 (accessed Apr 13 2022). Runtime Checks of Pointers. https:\/\/llvm.org\/docs\/Vectorizers.html##runtime-checks-of-pointers"},{"key":"e_1_2_1_6_1","unstructured":"2022 (accessed Apr 13 2022). \u2018noalias\u2019 and \u2018alias.scope\u2019 Metadata. https:\/\/llvm.org\/docs\/LangRef.html##noalias-and-alias-scope-metadata \t\t\t\t  2022 (accessed Apr 13 2022). \u2018noalias\u2019 and \u2018alias.scope\u2019 Metadata. https:\/\/llvm.org\/docs\/LangRef.html##noalias-and-alias-scope-metadata"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7089827"},{"key":"e_1_2_1_8_1","unstructured":"2022 (accessed Sep 9 2022). Scout Artifact Github Repository. https:\/\/github.com\/khushboochitre\/Scout-Artifact.git \t\t\t\t  2022 (accessed Sep 9 2022). Scout Artifact Github Repository. https:\/\/github.com\/khushboochitre\/Scout-Artifact.git"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814285"},{"key":"e_1_2_1_10_1","unstructured":"Lars Ole Andersen and Peter Lee. 2005. Program Analysis and Specialization for the C Programming Language. \t\t\t\t  Lars Ole Andersen and Peter Lee. 2005. Program Analysis and Specialization for the C Programming Language."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/780822.781144"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375595"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3185768.3185771"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24723-4_5"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/258915.258940"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75282"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168908"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/277650.277670"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863748"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407835"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/645989.674312"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250767"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480911"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2011.5764696"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/325478.325519"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/192007.192012"},{"key":"e_1_2_1_27_1","volume-title":"Demand-driven Alias Analysis : Formalizing Bidirectional Analyses for Soundness and Precision. ArXiv, abs\/1802.00932","author":"Jaiswal S.","year":"2018","unstructured":"S. Jaiswal , Uday P. Khedker , and Supratik Chakraborty . 2018. Demand-driven Alias Analysis : Formalizing Bidirectional Analyses for Soundness and Precision. ArXiv, abs\/1802.00932 ( 2018 ). S. Jaiswal, Uday P. Khedker, and Supratik Chakraborty. 2018. Demand-driven Alias Analysis : Formalizing Bidirectional Analyses for Soundness and Precision. ArXiv, abs\/1802.00932 (2018)."},{"key":"e_1_2_1_28_1","volume-title":"Whole-Function Vectorization. In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO \u201911)","author":"Karrenberg Ralf","year":"2011","unstructured":"Ralf Karrenberg and Sebastian Hack . 2011 . Whole-Function Vectorization. In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO \u201911) . IEEE Computer Society, USA. 141\u2013150. isbn:9781612843568 Ralf Karrenberg and Sebastian Hack. 2011. Whole-Function Vectorization. In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO \u201911). IEEE Computer Society, USA. 141\u2013150. isbn:9781612843568"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/161494.161501"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250766"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781164"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353534.1346296"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 2004 GCC Developers Summit. 105\u2013118","author":"Naishlos Dorit","year":"2004","unstructured":"Dorit Naishlos . 2004 . Autovectorization in GCC . In Proceedings of the 2004 GCC Developers Summit. 105\u2013118 . Dorit Naishlos. 2004. Autovectorization in GCC. In Proceedings of the 2004 GCC Developers Summit. 105\u2013118."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660205"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854050"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1290520.1290524"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/186025.186041"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/358438.349325"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079079.3079098"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.5555\/647166.717860"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892225"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237727"},{"key":"e_1_2_1_43_1","doi-asserted-by":"crossref","unstructured":"Rishi Surendran Rajkishore Barik Jisheng Zhao and Vivek Sarkar. 2014. Inter-iteration Scalar Replacement Using Array SSA Form. In CC. \t\t\t\t  Rishi Surendran Rajkishore Barik Jisheng Zhao and Vivek Sarkar. 2014. Inter-iteration Scalar Replacement Using Array SSA Form. In CC.","DOI":"10.1007\/978-3-642-54807-9_3"},{"key":"e_1_2_1_44_1","unstructured":"R Van Engelen. 2000. Symbolic evaluation of chains of recurrences for loop optimization. Citeseer. \t\t\t\t  R Van Engelen. 2000. Symbolic evaluation of chains of recurrences for loop optimization. Citeseer."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45306-7_9"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996859"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328897.1328464"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065579.1065798"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563316","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563316","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\/3563316"}},"issued":{"date-parts":[[2022,10,31]]},"references-count":48,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2022,10,31]]}},"alternative-id":["10.1145\/3563316"],"URL":"https:\/\/doi.org\/10.1145\/3563316","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,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,2,5]],"date-time":"2026-02-05T11:17:14Z","timestamp":1770290234559,"version":"3.49.0"},"reference-count":38,"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\/4.0\/"}],"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>Iso-recursive types are often taken as a type-theoretic model for type recursion as present in many programming languages, e.g., classes in object-oriented languages or algebraic datatypes in functional languages. Their main advantage over an equi-recursive semantics is that they are simpler and algorithmically less expensive, which is an important consideration when the cost of type checking matters, such as for intermediate or low-level code representations, virtual machines, or runtime casts. However, a closer look reveals that iso-recursion cannot, in its standard form, efficiently express essential type system features like mutual recursion or non-uniform recursion. While it has been folklore that mutual recursion and non-uniform type parameterisation can nicely be handled by generalising to higher kinds, this encoding breaks down when combined with subtyping: the classic \u201cAmber\u201d rule for subtyping iso-recursive types is too weak to express mutual recursion without falling back to encodings of quadratic size.<\/jats:p><jats:p>We present a foundational core calculus of iso-recursive types with<jats:italic>declared<\/jats:italic>subtyping that can express both inter- and intra-recursion subtyping without such blowup, including subtyping between constructors of higher or mixed kind. In a second step, we identify a syntactic fragment of this general calculus that allows for more efficient type checking without \u201cdeep\u201d substitutions, by observing that higher-kinded iso-recursive types can be inserted to \u201cguard\u201d against unwanted \u03b2-reductions. This fragment closely resembles the structure of typical nominal subtype systems, but without requiring nominal semantics. It has been used as the basis for a proposed extension of WebAssembly with recursive types.<\/jats:p>","DOI":"10.1145\/3622809","type":"journal-article","created":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T15:41:29Z","timestamp":1697470889000},"page":"347-373","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Mutually Iso-Recursive Subtyping"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3137-3160","authenticated-orcid":false,"given":"Andreas","family":"Rossberg","sequence":"first","affiliation":[{"name":"Independent, Munich, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,10,16]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Principles of Programming Languages (POPL)","author":"Abadi Mart\u00edn","unstructured":"Mart\u00edn Abadi , Luca Cardelli , and Ramesh Viswanathan . 1996. An Interpretation of Objects and Object Types . In Principles of Programming Languages (POPL) . ACM Press , 396\u2013409. Mart\u00edn Abadi, Luca Cardelli, and Ramesh Viswanathan. 1996. An Interpretation of Objects and Object Types. In Principles of Programming Languages (POPL). ACM Press, 396\u2013409."},{"key":"e_1_2_1_2_1","volume-title":"Logic in Computer Science","author":"Abadi Mart\u00edn","unstructured":"Mart\u00edn Abadi and Marcelo Fiore . 1996. Syntactic considerations on recursive types . In Logic in Computer Science . IEEE , 242\u2013252. Mart\u00edn Abadi and Marcelo Fiore. 1996. Syntactic considerations on recursive types. In Logic in Computer Science. IEEE, 242\u2013252."},{"key":"e_1_2_1_3_1","first-page":"3","article-title":"Implementing a normalizer using sized heterogeneous types","volume":"19","author":"Abel Andreas","year":"2009","unstructured":"Andreas Abel . 2009 . Implementing a normalizer using sized heterogeneous types . Journal of Functional Programming , 19 , 3 \u2013 4 (2009), 287\u2013310. Andreas Abel. 2009. Implementing a normalizer using sized heterogeneous types. Journal of Functional Programming, 19, 3\u20134 (2009), 287\u2013310.","journal-title":"Journal of Functional Programming"},{"key":"e_1_2_1_4_1","volume-title":"Syntactic Metatheory of Higher-Order Subtyping","author":"Abel Andreas","unstructured":"Andreas Abel and Dulma Rodriguez . 2008. Syntactic Metatheory of Higher-Order Subtyping . In Computer Science Logic, Michael Kaminski and Simone Martini (Eds.). Springer-Verlag , 446\u2013460. Andreas Abel and Dulma Rodriguez. 2008. Syntactic Metatheory of Higher-Order Subtyping. In Computer Science Logic, Michael Kaminski and Simone Martini (Eds.). Springer-Verlag, 446\u2013460."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/155183.155231"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1999.2802"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/2379036.2379037"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1999.2829"},{"key":"e_1_2_1_9_1","volume-title":"Conference on Functional Programming Languages and Computer Architecture. ACM Press, 273\u2013280","author":"Canning Peter","year":"1989","unstructured":"Peter Canning , William Cook , Walter Hill , John Mitchell , and William Olthoff . 1989 . F-bounded polymorphism for object-oriented programming . In Conference on Functional Programming Languages and Computer Architecture. ACM Press, 273\u2013280 . Peter Canning, William Cook, Walter Hill, John Mitchell, and William Olthoff. 1989. F-bounded polymorphism for object-oriented programming. In Conference on Functional Programming Languages and Computer Architecture. ACM Press, 273\u2013280."},{"key":"e_1_2_1_10_1","volume-title":"Amber","author":"Cardelli Luca","unstructured":"Luca Cardelli . 1986. Amber . In Combinators and Functional Programming Languages, Guy Cousineau, Pierre-Louis Curien, and Bernard Robinet (Eds.) (LNCS, 242). Springer-Verlag , 21\u201347. Luca Cardelli. 1986. Amber. In Combinators and Functional Programming Languages, Guy Cousineau, Pierre-Louis Curien, and Bernard Robinet (Eds.) (LNCS, 242). Springer-Verlag, 21\u201347."},{"key":"e_1_2_1_11_1","volume-title":"Theoretical Aspects of Object-Oriented Programming","author":"Cardelli Luca","unstructured":"Luca Cardelli . 1994. Extensible Records in a Pure Calculus of Subtyping . In Theoretical Aspects of Object-Oriented Programming . MIT Press , 373\u2013425. Luca Cardelli. 1994. Extensible Records in a Pure Calculus of Subtyping. In Theoretical Aspects of Object-Oriented Programming. MIT Press, 373\u2013425."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_2_1_13_1","volume-title":"Annual Conference of the European Association for Computer Science Logic (CSL \u201994)","author":"Compagnoni Adriana","year":"1995","unstructured":"Adriana Compagnoni . 1995 . Decidability of higher-order subtyping with intersection types . In Annual Conference of the European Association for Computer Science Logic (CSL \u201994) (LNCS, 933). Springer-Verlag, 46\u201360. Adriana Compagnoni. 1995. Decidability of higher-order subtyping with intersection types. In Annual Conference of the European Association for Computer Science Logic (CSL \u201994) (LNCS, 933). Springer-Verlag, 46\u201360."},{"key":"e_1_2_1_14_1","volume-title":"Principles of Programming Languages (POPL)","author":"Cook William","unstructured":"William Cook , Walter Hill , and Peter Canning . 1989. Inheritance Is Not Subtyping . In Principles of Programming Languages (POPL) . ACM Press , 125\u2013135. William Cook, Walter Hill, and Peter Canning. 1989. Inheritance Is Not Subtyping. In Principles of Programming Languages (POPL). ACM Press, 125\u2013135."},{"key":"e_1_2_1_15_1","volume-title":"What is a recursive module? In Programming Language Design and Implementation (PLDI)","author":"Crary Karl","unstructured":"Karl Crary , Robert Harper , and Sidd Puri . 1999. What is a recursive module? In Programming Language Design and Implementation (PLDI) . ACM Press , Boston, USA. 50\u201363. Karl Crary, Robert Harper, and Sidd Puri. 1999. What is a recursive module? In Programming Language Design and Implementation (PLDI). ACM Press, Boston, USA. 50\u201363."},{"key":"e_1_2_1_16_1","first-page":"80","article-title":"Implementing Statically Typed Object-Oriented Programming","volume":"43","author":"Ducournau Roland","year":"2011","unstructured":"Roland Ducournau . 2011 . Implementing Statically Typed Object-Oriented Programming Languages. Comput. Surveys , 43 , 4 (2011), 80 \u2013 131 . Roland Ducournau. 2011. Implementing Statically Typed Object-Oriented Programming Languages. Comput. Surveys, 43, 4 (2011), 80\u2013131.","journal-title":"Languages. Comput. Surveys"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796802004318"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1997.2662"},{"key":"e_1_2_1_19_1","volume-title":"Object-oriented Programming, Systems, Languages and Applications (OOPSLA)","author":"Glew Neal","unstructured":"Neal Glew . 2000. An efficient class and object encoding . In Object-oriented Programming, Systems, Languages and Applications (OOPSLA) . ACM Press , 311\u2013324. Neal Glew. 2000. An efficient class and object encoding. In Object-oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 311\u2013324."},{"key":"e_1_2_1_20_1","volume-title":"Subtyping for F-Bounded Quantifiers and Equirecursive Types","author":"Glew Neal","unstructured":"Neal Glew . 2012. Subtyping for F-Bounded Quantifiers and Equirecursive Types . Springer-Verlag , 66\u201382. Neal Glew. 2012. Subtyping for F-Bounded Quantifiers and Equirecursive Types. Springer-Verlag, 66\u201382."},{"key":"e_1_2_1_21_1","doi-asserted-by":"crossref","first-page":"185","DOI":"10.1145\/3140587.3062363","article-title":"Bringing the Web up to Speed with WebAssembly","volume":"52","author":"Haas Andreas","year":"2017","unstructured":"Andreas Haas , Andreas Rossberg , Derek Schuff , Ben Titzer , Michael Holman , Dan Gohman , Luke Wagner , Alon Zakai , and JF Bastien . 2017 . Bringing the Web up to Speed with WebAssembly . SIGPLAN Notices , 52 , 6 (2017), 185 \u2013 200 . Andreas Haas, Andreas Rossberg, Derek Schuff, Ben Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, and JF Bastien. 2017. Bringing the Web up to Speed with WebAssembly. SIGPLAN Notices, 52, 6 (2017), 185\u2013200.","journal-title":"SIGPLAN Notices"},{"key":"e_1_2_1_22_1","volume-title":"Proof, Language, and Interaction: Essays in Honor of Robin Milner","author":"Harper Robert","unstructured":"Robert Harper and Chris Stone . 2000. A Type-Theoretic Interpretation of Standard ML . In Proof, Language, and Interaction: Essays in Honor of Robin Milner . MIT Press . Robert Harper and Chris Stone. 2000. A Type-Theoretic Interpretation of Standard ML. In Proof, Language, and Interaction: Essays in Honor of Robin Milner. MIT Press."},{"key":"e_1_2_1_23_1","unstructured":"Haruo Hosoya Benjamin Pierce and David Turner. 1998. Datatypes and Subtyping. Haruo Hosoya Benjamin Pierce and David Turner. 1998. Datatypes and Subtyping."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_2_1_25_1","volume-title":"Principles of Programming Languages (POPL)","author":"Kozen Dexter","unstructured":"Dexter Kozen , Jens Palsberg , and Michael Schwartzbach . 1993. Efficient recursive subtyping . In Principles of Programming Languages (POPL) . ACM Press , Charleston, USA. 419\u2013428. Dexter Kozen, Jens Palsberg, and Michael Schwartzbach. 1993. Efficient recursive subtyping. In Principles of Programming Languages (POPL). ACM Press, Charleston, USA. 419\u2013428."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2994596"},{"key":"e_1_2_1_27_1","unstructured":"Sam Lindley Daniel Hillerstr\u00f6m Luna Phipps-Costin Andreas Rossberg Matija Pretnar KC Sivaramakrishnan Arjun Guha and Daan Leijen. 2022. Stack Switching Proposal for WebAssembly. https:\/\/github.com\/WebAssembly\/stack-switching\/ Sam Lindley Daniel Hillerstr\u00f6m Luna Phipps-Costin Andreas Rossberg Matija Pretnar KC Sivaramakrishnan Arjun Guha and Daan Leijen. 2022. Stack Switching Proposal for WebAssembly. https:\/\/github.com\/WebAssembly\/stack-switching\/"},{"key":"e_1_2_1_28_1","unstructured":"Guillaume Martres. 2022. Type-Preserving Compilation of Class-Based Languages. Ph. D. Dissertation. \u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne. Guillaume Martres. 2022. Type-Preserving Compilation of Class-Based Languages. Ph. D. Dissertation. \u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne."},{"key":"e_1_2_1_29_1","volume-title":"International Conference on Functional Programming (ICFP). ACM Press, 28\u201335","author":"Okasaki Chris","year":"1999","unstructured":"Chris Okasaki . 1999 . From fast exponentiation to square matrices: an adventure in types . In International Conference on Functional Programming (ICFP). ACM Press, 28\u201335 . Chris Okasaki. 1999. From fast exponentiation to square matrices: an adventure in types. In International Conference on Functional Programming (ICFP). ACM Press, 28\u201335."},{"key":"e_1_2_1_30_1","volume-title":"Object-oriented Programming, Systems, Languages and Applications (OOPSLA)","author":"Phipps-Costin Luna","unstructured":"Luna Phipps-Costin , Andreas Rossberg , Arjun Guha , Daan Leijen , Daniel Hillerstr\u00f6m , KC Sivaramakrishnan , Matija Pretnar , and Sam Lindley . 2023. Continuing WebAssembly with Effect Handlers . In Object-oriented Programming, Systems, Languages and Applications (OOPSLA) . ACM Press , to appear. Luna Phipps-Costin, Andreas Rossberg, Arjun Guha, Daan Leijen, Daniel Hillerstr\u00f6m, KC Sivaramakrishnan, Matija Pretnar, and Sam Lindley. 2023. Continuing WebAssembly with Effect Handlers. In Object-oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, to appear."},{"key":"e_1_2_1_31_1","volume-title":"Types and Programming Languages","author":"Pierce Benjamin","unstructured":"Benjamin Pierce . 2002. Types and Programming Languages . MIT Press , Boston, USA. Benjamin Pierce. 2002. Types and Programming Languages. MIT Press, Boston, USA."},{"key":"e_1_2_1_32_1","first-page":"1","article-title":"Higher-Order Subtyping","volume":"176","author":"Pierce Benjamin","year":"1997","unstructured":"Benjamin Pierce and Martin Steffen . 1997 . Higher-Order Subtyping . Theoretical Computer Science , 176 , 1 \u2013 2 (1997), 235\u2013282. Benjamin Pierce and Martin Steffen. 1997. Higher-Order Subtyping. Theoretical Computer Science, 176, 1\u20132 (1997), 235\u2013282.","journal-title":"Theoretical Computer Science"},{"key":"e_1_2_1_33_1","volume-title":"Object-Oriented Programming, Systems, Languages and Applications (OOPSLA)","author":"Rompf Tiark","unstructured":"Tiark Rompf and Nada Amin . 2016. Type soundness for dependent object types (DOT) . In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) . ACM Press , 624\u2013641. Tiark Rompf and Nada Amin. 2016. Type soundness for dependent object types (DOT). In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 624\u2013641."},{"key":"e_1_2_1_34_1","unstructured":"Andreas Rossberg. 2022. GC Proposal for WebAssembly. https:\/\/github.com\/WebAssembly\/gc\/ Andreas Rossberg. 2022. GC Proposal for WebAssembly. https:\/\/github.com\/WebAssembly\/gc\/"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"Andreas Rossberg. 2023. Mutually Iso-recursive Subtyping (Expanded). https:\/\/mpi-sws.org\/ rossberg\/publications\/ Andreas Rossberg. 2023. Mutually Iso-recursive Subtyping (Expanded). https:\/\/mpi-sws.org\/ rossberg\/publications\/","DOI":"10.1145\/3622809"},{"key":"e_1_2_1_36_1","unstructured":"Martin Steffen. 1997. Polarized Higher-Order Subtyping. Ph. D. Dissertation. Universit\u00e4t Erlangen-N\u00fcrnberg. Martin Steffen. 1997. Polarized Higher-Order Subtyping. Ph. D. Dissertation. Universit\u00e4t Erlangen-N\u00fcrnberg."},{"key":"e_1_2_1_37_1","volume-title":"Types for Proofs and Programs (LNCS","volume":"377","author":"Watkins Kevin","year":"2004","unstructured":"Kevin Watkins , Iliano Cervesato , Frank Pfenning , and David Walker . 2004 . A Concurrent Logical Framework: The Propositional Fragment . In Types for Proofs and Programs (LNCS , Vol. 3085). Springer-Verlag, 355\u2013 377 . Kevin Watkins, Iliano Cervesato, Frank Pfenning, and David Walker. 2004. A Concurrent Logical Framework: The Propositional Fragment. In Types for Proofs and Programs (LNCS, Vol. 3085). Springer-Verlag, 355\u2013377."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3549537"}],"container-title":["Proceedings of the ACM on Programming Languages"],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622809","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3622809","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:04Z","timestamp":1750178224000},"score":0.0,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622809"}},"issued":{"date-parts":[[2023,10,16]]},"references-count":38,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2023,10,16]]}},"alternative-id":["10.1145\/3622809"],"URL":"https:\/\/doi.org\/10.1145\/3622809","ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"published":{"date-parts":[[2023,10,16]]},"assertion":[{"value":"2023-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}],"items-per-page":20,"query":{"start-index":0,"search-terms":null}}}