{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,12]],"date-time":"2026-02-12T13:47:45Z","timestamp":1770904065650,"version":"3.50.1"},"reference-count":27,"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\/"}],"funder":[{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","award":["695412"],"award-info":[{"award-number":["695412"]}],"id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Czech Ministry of Education","award":["CZ.02.1.01\/0.0\/0.0\/15_003\/0000421"],"award-info":[{"award-number":["CZ.02.1.01\/0.0\/0.0\/15_003\/0000421"]}]},{"DOI":"10.13039\/100000006","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["503353"],"award-info":[{"award-number":["503353"]}],"id":[{"id":"10.13039\/100000006","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1759736,1925644,1618732,CCF-1909143,CCF-1908389"],"award-info":[{"award-number":["1759736,1925644,1618732,CCF-1909143,CCF-1908389"]}],"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":[[2021,10,20]]},"abstract":"<jats:p>As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that groundedness enables compiler optimizations, and proves the compiler correct. We also perform a corpus analysis to uncover how these type-related properties manifest in practice.<\/jats:p>","DOI":"10.1145\/3485527","type":"journal-article","created":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T19:18:28Z","timestamp":1634325508000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Type stability in Julia: avoiding performance pathologies in JIT compilation"],"prefix":"10.1145","volume":"5","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8334-8106","authenticated-orcid":false,"given":"Artem","family":"Pelenitsyn","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7490-8500","authenticated-orcid":false,"given":"Julia","family":"Belyakova","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9238-7334","authenticated-orcid":false,"given":"Benjamin","family":"Chung","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7608-4605","authenticated-orcid":false,"given":"Ross","family":"Tate","sequence":"additional","affiliation":[{"name":"Cornell University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4052-3458","authenticated-orcid":false,"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Northeastern University, USA \/ Czech Technical University, Czechia"}],"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.1007\/BFb0053060"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/960112.28712"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133876"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3434327"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428275"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276490"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1137\/141000671"},{"key":"e_1_2_2_8_1","volume-title":"Localized Type Inference of Atomic Types in Python. Master\u2019s thesis","author":"Cannon Brett","unstructured":"Brett Cannon . 2005. Localized Type Inference of Atomic Types in Python. Master\u2019s thesis . California Polytechnic State University . Brett Cannon. 2005. Localized Type Inference of Atomic Types in Python. Master\u2019s thesis. California Polytechnic State University."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/73141.74831"},{"key":"e_1_2_2_10_1","volume-title":"Efficient just-in-time execution of dynamically typed languages via code specialization using precise runtime type inference. Donald Bren School of Information and Computer Science","author":"Chang Mason","year":"2007","unstructured":"Mason Chang , Michael Bebenita , Alexander Yermolovich , Andreas Gal , and Michael Franz . 2007. Efficient just-in-time execution of dynamically typed languages via code specialization using precise runtime type inference. Donald Bren School of Information and Computer Science , University of California , Irvine , 2007 . Mason Chang, Michael Bebenita, Alexander Yermolovich, Andreas Gal, and Michael Franz. 2007. Efficient just-in-time execution of dynamically typed languages via code specialization using precise runtime type inference. Donald Bren School of Information and Computer Science, University of California, Irvine, 2007."},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314642"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/800017.800542"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2542142.2542143"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428288"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158137"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542528"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926450"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178478"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_5"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706313"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192374"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.5500548"},{"key":"e_1_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Artem Pelenitsyn Julia Belyakova Benjamin Chung Ross Tate and Jan Vitek. 2021. Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version). arxiv:2109.01950.  Artem Pelenitsyn Julia Belyakova Benjamin Chung Ross Tate and Jan Vitek. 2021. Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version). arxiv:2109.01950.","DOI":"10.1145\/3485527"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1014007.1014010"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384577.2384587"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542523"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276483"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485527","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485527","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485527","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":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485527"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,10,15]]},"references-count":27,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2021,10,20]]}},"alternative-id":["10.1145\/3485527"],"URL":"https:\/\/doi.org\/10.1145\/3485527","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,10,15]]},"assertion":[{"value":"2021-10-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}