{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T20:08:12Z","timestamp":1773778092574,"version":"3.50.1"},"reference-count":84,"publisher":"Association for Computing Machinery (ACM)","issue":"1","funder":[{"name":"NSF","award":["SHF 2237984 and SHF 2412400"],"award-info":[{"award-number":["SHF 2237984 and SHF 2412400"]}]},{"name":"NSF","award":["SHF 1763922, SHF 2007686, 2116372, and 2315884"],"award-info":[{"award-number":["SHF 1763922, SHF 2007686, 2116372, and 2315884"]}]},{"name":"NSF","award":["2030859"],"award-info":[{"award-number":["2030859"]}]},{"name":"NSF","award":["CNS 1823244"],"award-info":[{"award-number":["CNS 1823244"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2026,3,31]]},"abstract":"<jats:p>The component-by-component migration of a program from untyped to typed can trigger unintended performance degradations. When such a degradation occurs, typing well-chosen components can lessen the cost of type enforcement, while typing poorly chosen components can exacerbate it. This article examines whether off-the-shelf profiling tools deliver information that is an effective guide for navigating these migration choices in Typed Racket. Using the rational-programmer method, the article tests this hypothesis with an experiment that involves tens of thousands of performance-debugging scenarios, two different profiler types, and 23 strategies that convert profiler output to migration choices. The most effective strategy relies on a boundary profiler to identify the costliest inter-component boundary and then adds deeply enforced types to both sides. When the output of this profiler fails to identify a boundary, the strategy takes a random migration step\u2014similar to the way many computational approaches resort temporarily to random choices to avoid getting stuck. The strategy completely eliminates the cost of run-time type checks in more than half of the scenarios if at most two performance degradations are tolerable along the way.<\/jats:p>","DOI":"10.1145\/3785004","type":"journal-article","created":{"date-parts":[[2025,12,12]],"date-time":"2025-12-12T03:00:10Z","timestamp":1765508410000},"page":"1-56","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Navigating Mixed-Typed Migration with Profilers"],"prefix":"10.1145","volume":"48","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3525-3350","authenticated-orcid":false,"given":"Nathaniel","family":"Hejduk","sequence":"first","affiliation":[{"name":"Northwestern University, Evanston, Illinois, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7078-9287","authenticated-orcid":false,"given":"Ben","family":"Greenman","sequence":"additional","affiliation":[{"name":"The University of Utah, Salt Lake City, Utah, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6678-1004","authenticated-orcid":false,"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[{"name":"Northeastern University, Boston, Massachusetts, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9338-7034","authenticated-orcid":false,"given":"Christos","family":"Dimoulas","sequence":"additional","affiliation":[{"name":"Northwestern University, Evanston, Illinois, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2026,3,17]]},"reference":[{"issue":"1","key":"e_1_3_3_2_2","first-page":"52","article-title":"Gradual typing for smalltalk","volume":"96","author":"Allende Esteban","year":"2013","unstructured":"Esteban Allende, Oscar Calla\u00fa, Johan Fabry, \u00c9ric Tanter, and Marcus Denker. 2013. Gradual typing for smalltalk. Science of Computer Programming 96, 1 (2013), 52\u201369.","journal-title":"Science of Computer Programming"},{"key":"e_1_3_3_3_2","doi-asserted-by":"crossref","unstructured":"Esteban Allende Johan Fabry and \u00c9ric Tanter. 2013. Cast insertion strategies for gradually-typed objects. In DLS 27\u201336.","DOI":"10.1145\/2508168.2508171"},{"key":"e_1_3_3_4_2","first-page":"459","volume-title":"POPL","author":"An Jong-Hoon (David)","year":"2011","unstructured":"Jong-Hoon (David) An, Avik Chaudhuri, Jeffrey S. Foster, and Michael Hicks. 2011. Dynamic inference of static types for ruby. In POPL, 459\u2013472. DOI: 10.1145\/1926385.1926437"},{"issue":"1","key":"e_1_3_3_5_2","first-page":"34","article-title":"Feature-specific profiling","volume":"41","author":"Andersen Leif","year":"2019","unstructured":"Leif Andersen, Vincent St-Amour, Jan Vitek, and Matthias Felleisen. 2019. Feature-specific profiling. ACM Transactions on Programming Languages and Systems 41, 1, Article 4 (2019), 34 pages.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"e_1_3_3_6_2","first-page":"22","volume-title":"ICFP","author":"Bauman Spenser","year":"2015","unstructured":"Spenser Bauman, Carl Friedrich Bolz, Robert Hirschfeld, Vasily Kirilichev, Tobias Pape, Jeremy G. Siek, and Sam Tobin-Hochstadt. 2015. Pycket: A tracing JIT for a functional language. In ICFP, 22\u201334. DOI: 10.1145\/2784731.2784740"},{"key":"e_1_3_3_7_2","first-page":"54:1","article-title":"Sound gradual typing: Only mostly dead","volume":"1","author":"Bauman Spenser","year":"2017","unstructured":"Spenser Bauman, Carl Friedrich Bolz-Tereick, Jeremy Siek, and Sam Tobin-Hochstadt. 2017. Sound gradual typing: Only mostly dead. Proceedings of the ACM on Programming Languages 1, OOPSLA (2017), 54:1\u201354:24.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_8_2","first-page":"257","volume-title":"ECOOP","author":"Bierman Gavin","year":"2014","unstructured":"Gavin Bierman, Martin Abadi, and Mads Torgersen. 2014. Understanding TypeScript. In ECOOP, 257\u2013281."},{"key":"e_1_3_3_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/175290.175300"},{"key":"e_1_3_3_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/3158103"},{"key":"e_1_3_3_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236793"},{"key":"e_1_3_3_12_2","first-page":"89:1","article-title":"Type-based gradual typing performance optimization","volume":"8","author":"Campora John Peter","year":"2024","unstructured":"John Peter Campora, Mohammad Wahiduzzaman Khan, and Sheng Chen. 2024. Type-based gradual typing performance optimization. Proceedings of the ACM on Programming Languages 8, POPL (2024), 89:1\u201389:33.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_13_2","first-page":"16:1","article-title":"Gradual typing: A new perspective","volume":"4","author":"Castagna Guiseppe","year":"2020","unstructured":"Guiseppe Castagna, Victor Lanvin, Tommaso Petrucciani, and Jeremy G. Siek. 2020. Gradual typing: A new perspective. Proceedings of the ACM on Programming Languages 4, POPL (2020), 16:1\u201316:32.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_14_2","first-page":"410","volume-title":"OOPSLA","author":"Chandra Satish","year":"2016","unstructured":"Satish Chandra, Colin S. Gordon, Jean-Baptiste Jeannin, Cole Schlesinger, Manu Sridharan, Frank Tip, and Youngil Choi. 2016. Type inference for static compilation of JavaScript. In OOPSLA, 410\u2013429. DOI: 10.1145\/2983990.2984017"},{"key":"e_1_3_3_15_2","first-page":"56:1","article-title":"Fast and precise type checking for JavaScript","volume":"1","author":"Chaudhuri Avik","year":"2017","unstructured":"Avik Chaudhuri, Panagiotis Vekris, Sam Goldman, Marshall Roch, and Gabriel Levi. 2017. Fast and precise type checking for JavaScript. Proceedings of the ACM on Programming Languages 1, OOPSLA (2017), 56:1\u201356:30.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_16_2","first-page":"97","volume-title":"MAPLR","author":"Cristiani Fernando","year":"2021","unstructured":"Fernando Cristiani and Peter Thiemann. 2021. Generation of TypeScript declaration files from JavaScript code. In MAPLR, 97\u2013112. DOI: 10.1145\/3475738.3480941"},{"key":"e_1_3_3_17_2","first-page":"1","volume-title":"ATC","author":"Duplyakin Dmitry","year":"2019","unstructured":"Dmitry Duplyakin, Robert Ricci, Aleksander Maricq, Gary Wong, Jonathon Duerig, Eric Eide, Leigh Stoller, Mike Hibler, David Johnson, Kirk Webb, et al. 2019. The design and operation of CloudLab. In ATC, 1\u201314. Retrieved from https:\/\/www.flux.utah.edu\/paper\/duplyakin-atc19"},{"key":"e_1_3_3_18_2","first-page":"133:1","article-title":"Collapsible contracts: Fixing a pathology of gradual typing","volume":"2","author":"Feltey Daniel","year":"2018","unstructured":"Daniel Feltey, Ben Greenman, Christophe Scholliers, Robert Bruce Findler, and Vincent St-Amour. 2018. Collapsible contracts: Fixing a pathology of gradual typing. Proceedings of the ACM on Programming Languages 2, OOPSLA (2018), 133:1\u2013133:27.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_19_2","first-page":"48","volume-title":"ICFP","author":"Findler Robert Bruce","year":"2002","unstructured":"Robert Bruce Findler and Matthias Felleisen. 2002. Contracts for higher-order functions. In ICFP, 48\u201359."},{"key":"e_1_3_3_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/3341642"},{"key":"e_1_3_3_21_2","first-page":"283","volume-title":"OOPSLA","author":"Furr Michael","year":"2009","unstructured":"Michael Furr, Jong-Hoon (David) An, and Jeffrey S. Foster. 2009. Profile-guided static typing for dynamic scripting languages. In OOPSLA, 283\u2013300. DOI: 10.1145\/1640089.1640110"},{"key":"e_1_3_3_22_2","doi-asserted-by":"crossref","first-page":"1859","DOI":"10.1145\/1529282.1529700","volume-title":"SAC","author":"Furr Michael","year":"2009","unstructured":"Michael Furr, Jong-Hoon (David) An, Jeffrey S. Foster, and Michael Hicks. 2009. Static type inference for ruby. In SAC, 1859\u20131866. DOI: 10.1145\/1529282.1529700"},{"key":"e_1_3_3_23_2","first-page":"303","volume-title":"POPL","author":"Garcia Ronald","year":"2015","unstructured":"Ronald Garcia and Matteo Cimini. 2015. Principal type schemes for gradual programs. In POPL, 303\u2013315. DOI: 10.1145\/2676726.2676992"},{"key":"e_1_3_3_24_2","first-page":"58","volume-title":"VMIL","author":"Gariano Isaac Oscar","year":"2019","unstructured":"Isaac Oscar Gariano, Richard Roberts, Stefan Marr, Michael Homer, and James Noble. 2019. Which of my transient type checks are not (almost) free? In VMIL, 58\u201366."},{"key":"e_1_3_3_25_2","first-page":"120","volume-title":"CC","author":"Graham Susan L.","year":"1982","unstructured":"Susan L. Graham, Peter B. Kessler, and Marshall K. Mckusick. 1982. Gprof: A call graph execution profiler. In CC, 120\u2013126. DOI: 10.1145\/800230.806987"},{"key":"e_1_3_3_26_2","first-page":"181","volume-title":"POPL","author":"Greenberg Michael","year":"2015","unstructured":"Michael Greenberg. 2015. Space-efficient manifest contracts. In POPL, 181\u2013194."},{"key":"e_1_3_3_27_2","unstructured":"Ben Greenman. 2020. Deep and Shallow Types. Ph.D. Dissertation. Northeastern University."},{"key":"e_1_3_3_28_2","first-page":"580","volume-title":"PLDI","author":"Greenman Ben","year":"2022","unstructured":"Ben Greenman. 2022. Deep and shallow types for gradual languages. In PLDI, 580\u2013593."},{"key":"e_1_3_3_29_2","doi-asserted-by":"crossref","first-page":"102","DOI":"10.1145\/3589806.3600034","volume-title":"ACM REP","author":"Greenman Ben","year":"2023","unstructured":"Ben Greenman. 2023. GTP benchmarks for gradual typing performance. In ACM REP, 102\u2013114. DOI: 10.1145\/3589806.3600034"},{"key":"e_1_3_3_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/3579833"},{"key":"e_1_3_3_31_2","first-page":"122:1","article-title":"Complete monitors for gradual types","volume":"3","author":"Greenman Ben","year":"2019","unstructured":"Ben Greenman, Matthias Felleisen, and Christos Dimoulas. 2019. Complete monitors for gradual types. Proceedings of the ACM on Programming Languages 3, OOPSLA (2019), 122:1\u2013122:29.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_32_2","doi-asserted-by":"crossref","first-page":"544","DOI":"10.1145\/3622817","article-title":"How profilers can help navigate type migration","volume":"7","author":"Greenman Ben","year":"2023","unstructured":"Ben Greenman, Matthias Felleisen, and Christos Dimoulas. 2023. How profilers can help navigate type migration. Proceedings of the ACM on Programming Languages 7, OOPSLA (2023), 544\u2013573.","journal-title":"Proceedings of the ACM on Programming Languages"},{"issue":"2","key":"e_1_3_3_33_2","first-page":"1","article-title":"A transient semantics for typed racket","volume":"6","author":"Greenman Ben","year":"2022","unstructured":"Ben Greenman, Lukas Lazarek, Christos Dimoulas, and Matthias Felleisen. 2022. A transient semantics for typed racket. Programming 6, 2 (2022), 1\u201325.","journal-title":"Programming"},{"key":"e_1_3_3_34_2","first-page":"30","volume-title":"PEPM","author":"Greenman Ben","year":"2018","unstructured":"Ben Greenman and Zeina Migeed. 2018. On the cost of type-tag soundness. In PEPM, 30\u201339."},{"issue":"4","key":"e_1_3_3_35_2","first-page":"1","article-title":"How to evaluate the performance of gradual type systems","volume":"29","author":"Greenman Ben","year":"2019","unstructured":"Ben Greenman, Asumu Takikawa, Max S. New, Daniel Feltey, Robert Bruce Findler, Jan Vitek, and Matthias Felleisen. 2019. How to evaluate the performance of gradual type systems. Journal of Functional Programming 29, e4 (2019), 1\u201345.","journal-title":"Journal of Functional Programming"},{"key":"e_1_3_3_36_2","first-page":"251","volume-title":"OOPSLA","author":"Hauswirth Matthias","year":"2004","unstructured":"Matthias Hauswirth, Peter F. Sweeney, Amer Diwan, and Michael Hind. 2004. Vertical profiling: Understanding the behavior of object-priented applications. In OOPSLA, 251\u2013269. DOI: 10.1145\/1028976.1028998"},{"issue":"2","key":"e_1_3_3_37_2","doi-asserted-by":"crossref","first-page":"73","DOI":"10.1257\/aer.91.2.73","article-title":"In search of homo economicus: Behavioral experiments in 15 small-scale societies","volume":"91","author":"Henrich Joseph","year":"2001","unstructured":"Joseph Henrich, Robert Boyd, Samuel Bowles, Colin Camerer, Ernst Fehr, Herbert Gintis, and Richard McElreath. 2001. In search of homo economicus: Behavioral experiments in 15 small-scale societies. American Economic Review 91, 2 (2001), 73\u201378.","journal-title":"American Economic Review"},{"issue":"2","key":"e_1_3_3_38_2","doi-asserted-by":"crossref","first-page":"167","DOI":"10.1007\/s10990-011-9066-z","article-title":"Space-efficient gradual typing","volume":"23","author":"Herman David","year":"2010","unstructured":"David Herman, Aaron Tomb, and Cormac Flanagan. 2010. Space-efficient gradual typing. Higher-Order and Symbolic Computation 23, 2 (2010), 167\u2013189.","journal-title":"Higher-Order and Symbolic Computation"},{"key":"e_1_3_3_39_2","first-page":"1483","volume-title":"ESEC\/FSE","author":"Jesse Kevin","year":"2021","unstructured":"Kevin Jesse, Premkumar T. Devanbu, and Toufique Ahmed. 2021. Learning type annotation: Is big data enough? In ESEC\/FSE, 1483\u20131486. DOI: 10.1145\/3468264.3473135"},{"key":"e_1_3_3_40_2","first-page":"261","volume-title":"TASE","author":"Khan Mohammad Wahiduzzaman","year":"2024","unstructured":"Mohammad Wahiduzzaman Khan and Sheng Chen. 2024. Gradual typing performance, micro configurations and macro perspectives. In TASE, 261\u2013278."},{"key":"e_1_3_3_41_2","first-page":"99","volume-title":"FASE","author":"Krogh Kristensen Erik","year":"2017","unstructured":"Erik Krogh Kristensen and Anders M\u00f8ller. 2017. Inference and evolution of TypeScript declaration files. In FASE, 99\u2013115."},{"key":"e_1_3_3_42_2","first-page":"517","volume-title":"PLDI","author":"Kuhlenschmidt Andre","year":"2019","unstructured":"Andre Kuhlenschmidt, Deyaaeldeen Almahallawi, and Jeremy G. Siek. 2019. Toward efficient gradual typing for structural types via coercions. In PLDI, 517\u2013532."},{"key":"e_1_3_3_43_2","first-page":"68:1","article-title":"How to evaluate blame for gradual types","volume":"5","author":"Lazarek Lukas","year":"2021","unstructured":"Lukas Lazarek, Ben Greenman, Matthias Felleisen, and Christos Dimoulas. 2021. How to evaluate blame for gradual types. Proceedings of the ACM on Programming Languages 5, ICFP (2021), 68:1\u201368:29.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_44_2","first-page":"194:1","article-title":"How to evaluate blame for gradual types","volume":"7","author":"Lazarek Lukas","year":"2023","unstructured":"Lukas Lazarek, Ben Greenman, Matthias Felleisen, and Christos Dimoulas. 2023. How to evaluate blame for gradual types. Part 2. Proceedings of the ACM on Programming Languages 7, ICFP (2023), 194:1\u2013194:28.","journal-title":"Part 2. Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_45_2","first-page":"65:1","article-title":"Does blame shifting work","volume":"4","author":"Lazarek Lukas","year":"2020","unstructured":"Lukas Lazarek, Alexis King, Samanvitha Sundar, Robert Bruce Findler, and Christos Dimoulas. 2020. Does blame shifting work? Proceedings of the ACM on Programming Languages 4, POPL (2020), 65:1\u201365:29.","journal-title":"Proceedings of the ACM on Programming Languages"},{"issue":"1","key":"e_1_3_3_46_2","first-page":"2:1","article-title":"Gradual soundness: Lessons from static python","volume":"7","author":"Lu Kuang-Chen","year":"2023","unstructured":"Kuang-Chen Lu, Ben Greenman, Carl Meyer, Dino Viehland, Aniket Panse, and Shriram Krishnamurthi. 2023. Gradual soundness: Lessons from static python. Programming 7, 1 (2023), 2:1\u20132:40.","journal-title":"Programming"},{"key":"e_1_3_3_47_2","first-page":"304","volume-title":"ICSE","author":"Malik Rabee Sohail","year":"2019","unstructured":"Rabee Sohail Malik, Jibesh Patra, and Michael Pradel. 2019. NL2Type: Inferring JavaScript function types from natural language information. In ICSE, 304\u2013315. DOI: 10.1109\/ICSE.2019.00045"},{"key":"e_1_3_3_48_2","article-title":"What is decidable about gradual types","volume":"4","author":"Migeed Zeina","year":"2019","unstructured":"Zeina Migeed and Jens Palsberg. 2019. What is decidable about gradual types? Proceedings of the ACM on Programming Languages 4, POPL, Article 29 (2019), 29 pages. Retrieved from https:\/\/doi.org\/10.1145\/3371097","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_49_2","volume-title":"Essays on Some Unsettled Questions of Political Economy","author":"John Stuart Mill","year":"1874","unstructured":"John Stuart Mill. 1874. Essays on Some Unsettled Questions of Political Economy. Longmans, Green, Reader, and Dyer."},{"key":"e_1_3_3_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290331"},{"key":"e_1_3_3_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3434334"},{"key":"e_1_3_3_52_2","first-page":"56:1","article-title":"Sound gradual typing is nominally alive and well","volume":"1","author":"Muehlboeck Fabian","year":"2017","unstructured":"Fabian Muehlboeck and Ross Tate. 2017. Sound gradual typing is nominally alive and well. Proceedings of the ACM on Programming Languages 1, OOPSLA (2017), 56:1\u201356:30.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/3485504"},{"key":"e_1_3_3_54_2","doi-asserted-by":"crossref","first-page":"265","DOI":"10.1145\/1508244.1508275","volume-title":"ASPLOS","author":"Mytkowicz Todd","year":"2009","unstructured":"Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. 2009. Producing wrong data without doing anything obviously wrong! In ASPLOS. ACM, 265\u2013276."},{"key":"e_1_3_3_55_2","doi-asserted-by":"publisher","DOI":"10.4108\/eai.3-12-2015.2262403"},{"key":"e_1_3_3_56_2","unstructured":"Sanjay Patel. 2016. RotateRight Zoom. Retrieved from https:\/\/github.com\/rotateright\/rrprofile"},{"key":"e_1_3_3_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/3485488"},{"key":"e_1_3_3_58_2","first-page":"481","volume-title":"POPL","author":"Rastogi Aseem","year":"2012","unstructured":"Aseem Rastogi, Avik Chaudhuri, and Basil Hosmer. 2012. The ins and outs of gradual type inference. In POPL, 481\u2013494. DOI: 10.1145\/2103656.2103714"},{"key":"e_1_3_3_59_2","first-page":"167","volume-title":"POPL","author":"Rastogi Aseem","year":"2015","unstructured":"Aseem Rastogi, Nikhil Swamy, C\u00e9dric Fournet, Gavin Bierman, and Panagiotis Vekris. 2015. Safe & efficient gradual typing for TypeScript. In POPL, 167\u2013180."},{"key":"e_1_3_3_60_2","first-page":"55:1","article-title":"The VM already knew that: Leveraging compile-time knowledge to optimize gradual typing","volume":"1","author":"Richards Gregor","year":"2017","unstructured":"Gregor Richards, Ellen Arteca, and Alexi Turcotte. 2017. The VM already knew that: Leveraging compile-time knowledge to optimize gradual typing. Proceedings of the ACM on Programming Languages 1, OOPSLA (2017), 55:1\u201355:27.","journal-title":"Proceedings of the ACM on Programming Languages"},{"key":"e_1_3_3_61_2","first-page":"76","volume-title":"ECOOP","author":"Richards Gregor","year":"2015","unstructured":"Gregor Richards, Francesco Zappa Nardelli, and Jan Vitek. 2015. Concrete types for TypeScript. In ECOOP, 76\u2013100."},{"key":"e_1_3_3_62_2","first-page":"15:1","volume-title":"ECOOP","author":"Roberts Richard","year":"2019","unstructured":"Richard Roberts, Stefan Marr, Michael Homer, and James Noble. 2019. Transient typechecks are (almost) free. In ECOOP, 15:1\u201315:29."},{"key":"e_1_3_3_63_2","unstructured":"Claudiu Saftoiu. 2010. JSTrace: Run-Time Type Discovery for JavaScript. Master\u2019s thesis. Brown University. Retrieved from https:\/\/cs.brown.edu\/research\/pubs\/theses\/ugrad\/2010\/saftoiu.pdf"},{"key":"e_1_3_3_64_2","first-page":"425","volume-title":"PLDI","author":"Siek Jeremy","year":"2015","unstructured":"Jeremy Siek, Peter Thiemann, and Philip Wadler. 2015. Blame and coercion: Together again for the first time. In PLDI, 425\u2013435."},{"key":"e_1_3_3_65_2","first-page":"432","volume-title":"ESOP","author":"Siek Jeremy","year":"2015","unstructured":"Jeremy Siek, Michael M. Vitousek, Matteo Cimini, Sam Tobin-Hochstadt, and Ronald Garcia. 2015. Monotonic references for efficient gradual typing. In ESOP, 432\u2013456."},{"key":"e_1_3_3_66_2","first-page":"17","volume-title":"ESOP","author":"Siek Jeremy G.","year":"2009","unstructured":"Jeremy G. Siek, Ronald Garcia, and Walid Taha. 2009. Exploring the design space of higher-order casts. In ESOP, 17\u201331."},{"key":"e_1_3_3_67_2","first-page":"81","volume-title":"SFP. University of Chicago","author":"Siek Jeremy G.","year":"2006","unstructured":"Jeremy G. Siek and Walid Taha. 2006. Gradual typing for functional languages. In SFP. University of Chicago, TR200606, 81\u201392."},{"key":"e_1_3_3_68_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796821000101"},{"key":"e_1_3_3_69_2","first-page":"7:1","volume-title":"DLS","author":"Siek Jeremy G.","year":"2008","unstructured":"Jeremy G. Siek and Manish Vachharajani. 2008. Gradual typing with unification-based inference. In DLS, 7:1\u20137:12. DOI: 10.1145\/1408681.1408688"},{"key":"e_1_3_3_70_2","volume-title":"Administrative Behavior","author":"Simon Herbert A.","year":"1947","unstructured":"Herbert A. Simon. 1947. Administrative Behavior. MacMillan."},{"key":"e_1_3_3_71_2","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1145\/1168054.1168060","volume-title":"PPPJ","author":"Singer Jeremy","year":"2006","unstructured":"Jeremy Singer and Chris Kirkham. 2006. Dynamic analysis of program concepts in java. In PPPJ, 31\u201339. DOI: 10.1145\/1168054.1168060"},{"key":"e_1_3_3_72_2","unstructured":"Vincent St-Amour. 2015. How to Generate Actionable Advice About Performance Problems. Ph.D. Dissertation. Northeastern University."},{"key":"e_1_3_3_73_2","first-page":"49","volume-title":"CC","author":"St-Amour Vincent","year":"2015","unstructured":"Vincent St-Amour, Leif Andersen, and Matthias Felleisen. 2015. Feature-specific profiling. In CC, 49\u201368."},{"key":"e_1_3_3_74_2","first-page":"425","volume-title":"POPL","author":"Swamy Nikhil","year":"2014","unstructured":"Nikhil Swamy, C\u00e9dric Fournet, Aseem Rastogi, Karthikeyan Bhargavan, Juan Chen, Pierre-Yves Strub, and Gavin Bierman. 2014. Gradual typing embedded securely in JavaScript. In POPL, 425\u2013437."},{"key":"e_1_3_3_75_2","first-page":"456","volume-title":"POPL","author":"Takikawa Asumu","year":"2016","unstructured":"Asumu Takikawa, Daniel Feltey, Ben Greenman, Max S. New, Jan Vitek, and Matthias Felleisen. 2016. Is sound gradual typing dead? In POPL, 456\u2013468."},{"key":"e_1_3_3_76_2","first-page":"964","volume-title":"DLS","author":"Tobin-Hochstadt Sam","year":"2006","unstructured":"Sam Tobin-Hochstadt and Matthias Felleisen. 2006. Interlanguage migration: From scripts to programs. In DLS, 964\u2013974."},{"key":"e_1_3_3_77_2","first-page":"17:1","volume-title":"SNAPL","author":"Tobin-Hochstadt Sam","year":"2017","unstructured":"Sam Tobin-Hochstadt, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Ben Greenman, Andrew M. Kent, Vincent St-Amour, T. Stephen Strickland, and Asumu Takikawa. 2017. Migratory typing: Ten years later. In SNAPL, 17:1\u201317:17."},{"key":"e_1_3_3_78_2","first-page":"8:1","volume-title":"ECOOP","author":"Tsuda Yuya","year":"2020","unstructured":"Yuya Tsuda, Atsushi Igarashi, and Tomoya Tabuchi. 2020. Space-efficient gradual typing in coercion-passing style. In ECOOP, 8:1\u20138:29. DOI: 10.4230\/LIPICS.ECOOP.2020.8"},{"key":"e_1_3_3_79_2","unstructured":"Michael M. Vitousek. 2019. Gradual Typing for Python Unguarded. Ph.D. Dissertation. Indiana University."},{"key":"e_1_3_3_80_2","first-page":"45","volume-title":"DLS","author":"Vitousek Michael M.","year":"2014","unstructured":"Michael M. Vitousek, Andrew Kent, Jeremy G. Siek, and Jim Baker. 2014. Design and evaluation of gradual typing for python. In DLS, 45\u201356."},{"key":"e_1_3_3_81_2","first-page":"28","volume-title":"DLS","author":"Vitousek Michael M.","year":"2019","unstructured":"Michael M. Vitousek, Jeremy G. Siek, and Avik Chaudhuri. 2019. Optimizing and evaluating transient gradual typing. In DLS, 28\u201341."},{"key":"e_1_3_3_82_2","first-page":"762","volume-title":"POPL","author":"Vitousek Michael M.","year":"2017","unstructured":"Michael M. Vitousek, Cameron Swords, and Jeremy G. Siek. 2017. Big types in little runtime: Open-world soundness and collaborative blame for gradual type systems. In POPL, 762\u2013774."},{"key":"e_1_3_3_83_2","volume-title":"ICLR","author":"Wei Jiayi","year":"2020","unstructured":"Jiayi Wei, Maruth Goyal, Greg Durrett, and Isil Dillig. 2020. LambdaNet: Probabilistic type inference using graph neural networks. In ICLR."},{"key":"e_1_3_3_84_2","first-page":"377","volume-title":"POPL","author":"Wrigstad Tobias","year":"2010","unstructured":"Tobias Wrigstad, Francesco Zappa Nardelli, Sylvain Lebresne, Johan \u00d6stlund, and Jan Vitek. 2010. Integrating typed and untyped code in a scripting language. In POPL, 377\u2013388."},{"key":"e_1_3_3_85_2","first-page":"37:1","volume-title":"ECOOP","author":"Yee Ming-Ho","year":"2023","unstructured":"Ming-Ho Yee and Arjun Guha. 2023. Do machine learning models produce TypeScript types that type check? In ECOOP, 37:1\u201337:28. DOI: 10.4230\/LIPIcs.ECOOP.2023.37"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3785004","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T17:03:49Z","timestamp":1773767029000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3785004"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,3,17]]},"references-count":84,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2026,3,31]]}},"alternative-id":["10.1145\/3785004"],"URL":"https:\/\/doi.org\/10.1145\/3785004","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,3,17]]},"assertion":[{"value":"2024-09-17","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-11-17","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-03-17","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}