{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T17:24:50Z","timestamp":1787592290115,"version":"build-2736575974"},"reference-count":42,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA1","license":[{"start":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T00:00:00Z","timestamp":1744156800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"DOI":"10.13039\/501100003246","name":"Nederlandse Organisatie voor Wetenschappelijk Onderzoek","doi-asserted-by":"publisher","award":["17933"],"award-info":[{"award-number":["17933"]}],"id":[{"id":"10.13039\/501100003246","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,4,9]]},"abstract":"<jats:p>\n                    Modern Integrated Development Environments (IDEs) offer automated refactorings to aid programmers in developing and maintaining software. However, implementing sound automated refactorings is challenging, as refactorings may inadvertently introduce name-binding errors or cause references to resolve to incorrect declarations. To address these issues, previous work by Sch\u00e4fer et al. proposed replacing concrete references with\n                    <jats:italic toggle=\"yes\">locked references<\/jats:italic>\n                    to separate binding preservation from transformation. Locked references vacuously resolve to a specific declaration, and after transformation must be replaced with concrete references that also resolve to that declaration. Synthesizing these references requires a faithful inverse of the name lookup functions of the underlying language.\n                  <\/jats:p>\n                  <jats:p>\n                    Manually implementing such inverse lookup functions is challenging due to the complex name-binding features in modern programming languages. Instead, we propose to automatically derive this function from type system specifications written in the Statix meta-DSL. To guide the synthesis of qualified references we use\n                    <jats:italic toggle=\"yes\">scope graphs<\/jats:italic>\n                    , which represent the binding structure of a program, to infer their names and discover their syntactic structure.\n                  <\/jats:p>\n                  <jats:p>We evaluate our approach by synthesizing concrete references for locked references in 2528 Java, 196 ChocoPy, and 49 Featherweight Generic Java test programs. Our approach yields a principled languageparametric method for synthesizing references.<\/jats:p>","DOI":"10.1145\/3720481","type":"journal-article","created":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T13:48:26Z","timestamp":1744206506000},"page":"1213-1238","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Language-Parametric Reference Synthesis"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0196-0567","authenticated-orcid":false,"given":"Daniel A. A.","family":"Pelsmaeker","sequence":"first","affiliation":[{"name":"Delft University of Technology, Delft, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1818-4245","authenticated-orcid":false,"given":"Aron","family":"Zwaan","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Delft, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0622-7639","authenticated-orcid":false,"given":"Casper","family":"Bach","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Delft, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-9566-7696","authenticated-orcid":false,"given":"Arjan J.","family":"Mooij","sequence":"additional","affiliation":[{"name":"TNO-ESI, Eindhoven, Netherlands"},{"name":"Z\u00fcrich University of Applied Sciences, Winterthur, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,4,9]]},"reference":[{"key":"e_1_3_2_2_2","volume-title":"The theory of parsing, translation, and compiling","author":"Aho Alfred V.","year":"1972","unstructured":"Alfred V. Aho and Jeffrey D. Ullman. 1972. The theory of parsing, translation, and compiling. Prentice-Hall, Inc., Upper Saddle River, NJ, USA."},{"key":"e_1_3_2_3_2","volume-title":"The Lambda Calculus - Its Syntax and Semantics","author":"Barendregt Hendrik Pieter","year":"1984","unstructured":"Hendrik Pieter Barendregt. 1984. The Lambda Calculus - Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematics, Vol. volume 103. North-Holland."},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/2427048.2427050"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297029"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/1636642.1636647"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44202-9_20"},{"key":"e_1_3_2_8_2","volume-title":"Refactoring - Improving the Design of Existing Code","author":"Fowler Martin","year":"1999","unstructured":"Martin Fowler. 1999. Refactoring - Improving the Design of Existing Code. Addison-Wesley.http:\/\/martinfowler.com\/books\/refactoring.html"},{"key":"e_1_3_2_9_2","unstructured":"James Gosling Bill Joy Guy Steele Gilad Bracha and Alex Buckley. 2015. The Java Language Specification - Java SE 8 Edition.https:\/\/docs.oracle.com\/javase\/specs\/jls\/se8\/html\/"},{"key":"e_1_3_2_10_2","unstructured":"William G. Griswold. 1992. Program Restructuring As an Aid to Software Maintenance. Ph. D. Dissertation. Seattle WA USA."},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/1869542.1869592"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/871895.871899"},{"key":"e_1_3_2_14_2","volume-title":"The Proceedings of 12th International Erlang\/OTP User Conference","author":"Li Huiqing","year":"2006","unstructured":"Huiqing Li, Simon Thompson, L\u00e1szl\u00f3 L\u00f6vei, Zolt\u00e1n Horv\u00e1th, Tam\u00e1s Kozsik, Anik\u00f3 V\u00edg, and Tam\u00e1s Nagy. 2006. Refactoring Erlang Programs. In The Proceedings of 12th International Erlang\/OTP User Conference. Stockholm, Sweden.http:\/\/www.cs.kent.ac.uk\/pubs\/2006\/2455"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2005.02.053"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/2328876.2328881"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.1265817"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_9"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009900"},{"key":"e_1_3_2_20_2","unstructured":"William F. Opdyke. 1992. Refactoring Object-Oriented Frameworks. Ph. D. Dissertation. University of Illinois Urbana-Champaign IL USA. Advisor(s) Ralph E. Johnson."},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3358711.3361627"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.5555\/174517"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/3527329"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.14592164"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","unstructured":"Daniel A. A. Pelsmaeker Aron Zwaan Casper Bach and Arjan J. Mooij. 2025. Language-Parametric Reference Synthesis (Extended). (2025).doi:10.48550\/arXiv.2502.19143arxiv:arXiv:2502.19143 [cs.PL]","DOI":"10.48550\/arXiv.2502.19143"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.5555\/509043"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/3158104"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3428248"},{"key":"e_1_3_2_29_2","volume-title":"23rd European Conference on Object-Oriented Programming (ECOOP \u201909)","author":"Sch\u00e4fer Max","year":"2009","unstructured":"Max Sch\u00e4fer, Mathieu Verbaere, Torbj\u00f6rn Ekman, and Oege de Moor. 2009. Stepping Stones over the Refactoring Rubicon -- Lightweight Language Extensions to Easily Realise Refactorings. In 23rd European Conference on Object-Oriented Programming (ECOOP \u201909).Springer-Verlag, Berlin, Heidelberg."},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869485"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449787"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2012.13"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/3156016"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74061-2_1"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/2847538.2847543"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/3276915"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/3276484"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.4230\/DARTS.7.2.1"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2021.1"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45127-7_27"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/289423.289425"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2024.47"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.4230\/OASIcs.EVCS.2023.32"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720481","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3720481","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T16:29:33Z","timestamp":1787588973000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720481"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,4,9]]},"references-count":42,"journal-issue":{"issue":"OOPSLA1","published-print":{"date-parts":[[2025,4,9]]}},"alternative-id":["10.1145\/3720481"],"URL":"https:\/\/doi.org\/10.1145\/3720481","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,4,9]]},"assertion":[{"value":"2024-10-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-02-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-04-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}